Jei labai jauciasi ant greiciu tai gali tada gal ir laikyt atmintyj, kad ir toje pacioje klaseje sukurt statini memberi saugot tos klases objektui ir 1 statine startavimo funkcija. paprastai statines statinio kintamojo tikrai nenaikins GC, bet cia galima sakyt atbulas anam variantui variantas :) pvz: public class ManoKlase { static ManoKlase _Objektas = null; // c# jeigu nenurodomas access modyfer (t.y. public, private, protected, internal ir pan.) tai pagal nutylejima tai buna private /* Statinis start metodas toje pacioje klaseje inicializuojantis klases objekta - tavo atveju forma su tam tikrais parametrais */ public static [returnType] Start (...parametrai...) { // [returnType] jeigu reikia cia aprasai duomenu tipa koki grazinti, dialogam as paprastai dedu bool - priklausomai ar paspausta YES|OK/NO|Cancel // jeigu ner objekto if(_Objektas == null ) { // sukuriu objekta _Objektas = new _Objektas(...parametrai...); } // objektas yra else { // priskiriame parametrus jau esamam objektui, jie galbut pasikeite _Objektas.Memberis = ...parametrai... } // cia vyks modalinio dialogoo rodymas // Paimu true arba false priklausomai ar paspausta OK ar ne IF _Objektas.ShowDialog() == DialogResult.OK THEN ' Paspausta OK return _Objektas.[FilePath]; // daleiskim musu returnType yra string, jeigu grazinama null reiskia nebuvo spausta ok, jeigu tekstas reiskia tai failas/katalogas ' cia gali dar tikrinti ar realiai egzistuoja failas FileInfo file = new FileInfo(_Objektas.Path); if file.Exist then..... ' taip pat jeigu tai direktorija tai: DirectoryInfo dir = new DirectoryInfo(_Objektas.Path); if dir.exist .... (jei gerai pamenu) ' Nors visumoje file dialogas validuoja pats Else return Null; // VB kiek pamenu tai butu Start = Null vat del VB.net pamirses ;) END IF } /* end of Start */ /* Toliau klases visi kiti memberiai */ } Visumoje isorinis kvietimas atrodytu tada taip: Dim path AS String = ManoKlase.Start(...parametrai...) if Not String.IsNullOrEmpty(path) then ' kazka atidarinejam ....fileOpen(path)... endif "Valdas" <valdonas@super.lt> wrote in message news:ia8be4$4fg$1@trimpas.omnitel.net... > na as parametra path ir filtra laikau globaliai, kiek jau ten jie tos vietos > uzima, o pacios formos turinys generuojamas kekviena karta ja paleidziant. > Dar vat idomu kokiu komponentu nenaudoti kad forma greiciau pasileistu ? > > "Jornada Del Muerto" <agiraTrintI@gmx.co.uk> wrote in message > news:ia6tuq$vvm$1@trimpas.omnitel.net... >> Tai taip ir yra daryti geriausia, o jeigu tu ja nori saugotis atmintyje >> del to kad nepamirst paskutinio vartotojo nurodyto kelio ar kazkokios >> tokios informacijos, geriau pasidaryk nustatymu klasyte ar struktura kuria >> naudotu jis, pvz: >> >> // rasau c# taip greiciau man, bet cia elementari klasyte >> public class MyDialogSettings { >> public string Path; >> public string SelectedExtensions; >> public string LastFile; >> >> public MyDialogSettings(string path) { >> // Jeigu path tuscias ar lygus null tai nukreips i MyDocuments, >> kitu atveju naudos path >> Path = (String.IsNullOrEmpty( path ? >> Environment.SpecialFolder.MyDocuments : path); >> } >> >> ir t.t... >> } >> >> Ir tada sios klases objekta saugai kur nors savo klaseje kuri naudoja >> dialoga, kadangi .NET dirba reference'ais tai i klase bus paduodamas ne >> objektas o tik nuoroda i ji: >> >> MyDialogSettings FileOpenSettings = new MyDialogSettings(null); // >> inicializuojam my documents keliu >> >> ManoDialogas d = new ManoDialogas(Me.FileOpenSettings); >> d.ShowDialog(); >> >> Viska ka darys iskvietus d.ShowDialog tavo klase su settingu objektu ja >> sunaikinus liks FileOpenSettings klases memberyje, tada kita kart >> inicializuojant nauja dialoga paduodi tapati FileOpenSettings ir tavo >> klase naudoja juos vel, taip islaikant visa pries tai buvusio dialogo >> stovi. >> >> Bent jau galima taip daryti, tada nesaugosi ko nereikia o tik ko reikia >> atmintyje. >> >> >> "Valdas" <valdonas@super.lt> wrote in message >> news:ia5mo5$3qb$1@trimpas.omnitel.net... >>> na vienok tas variantas : >>> Dim FileDialog as new Form2 >>> FileDialog.Showdialog() >>> >>> padejo, aciu, galima tema uzdarinet :) >>> >>> "Jornada Del Muerto" <agiraTrintI@gmx.co.uk> wrote in message >>> news:ia470e$thv$1@trimpas.omnitel.net... >>>> GC.[spausk tada ctrl+space] :)) >>>> >>>> "Valdas" <valdonas@super.lt> wrote in message >>>> news:ia35n5$bs4$1@trimpas.omnitel.net... >>>>> Na o tai kaip mano atveju (Visual Studio 5, Visual Basic), prisibrauti >>>>> prie >>>>> to GC (Garbage Collector) ? >>>>> >>>>> "Jornada Del Muerto" <agiraTrintI@gmx.co.uk> wrote in message >>>>> news:i9s1h6$n88$1@trimpas.omnitel.net... >>>>>> Instance tai kazkokio tipo sukurtas objektas, pvz.: DataTable yra >>>>>> tipas, >>>>>> tipas gali buti klase, struktura, ar primityvus tipas pvz int ir t.t.. >>>>>> tai >>>>>> yra tipas, o sio tipo sukurtas objektas yra to tipo object instance, >>>>>> arba >>>>>> tiesiog to tipo instance, pvz.: >>>>>> >>>>>> Daleiskim tu susikurei savo open file dialog klase, ja uzvadinai >>>>>> "ManoFileOpenDialogas" <- kitaip sakant sukurei ManoFileOpenDialogas >>>>>> tipa. >>>>>> >>>>>> ' Deklaruojam >>>>>> Dim a As ManoFileOpenDialogas ' nurodai kad kintamasis a bus >>>>>> ManoFileOpenDialogas tipo >>>>>> >>>>>> ' kintamajame a sukuriu (kiti dar vadina inicializuoju) >>>>>> ManoFileOpenDialogas tipo object instance >>>>>> a = new ManoFileOpenDialogas ' va a ir bus instance (dar kiti vadintu >>>>>> objektu, zodziu kaip nepavadinsi taip nepagadinsi) >>>>>> >>>>>> Siaip terminologijos ipac tokios bazines OOP vertetu pasimokinti, >>>>>> ok >>>>>> toliaujam keliau :) tau ka is esmes norejo pasakyti zmones, kad .NET >>>>>> yra >>>>>> toks dalykas kaip GC (Garbage Collector) grubiai vertus, siuksliu >>>>>> rinkejas, pvz. kokiam nors C++ viska alokuota rankiniu budu atminti >>>>>> skirta >>>>>> kazkokiam programos darbui, po to reikedavo nepamirsti atlaisvinti - >>>>>> kitaip ji uzimdavo ir toliau vieta ir su laiku prisikaupdavo tos >>>>>> rezervuotos/alokuotos atminties daug, nuo ko galedavo luzti programa, >>>>>> .net >>>>>> atvejais tam buna ivairus metodai dispose ir pan.. Bet .NET daugeli >>>>>> tokiu >>>>>> objektu pasalina pats GC pagalba, del to greiciausia su tavuoju >>>>>> objektu >>>>>> taspats atsitinka, tiesiog reik suprasti kokiom aplinkybem .net pats >>>>>> juos >>>>>> naikina. >>>>>> >>>>>> Visumoje .net automatu, kaip jau ir minejau naikina objektus kurie >>>>>> niekur nera saugomi ar isiminti, pvz kazkokiam kintamajame ir >>>>>> panasiai, >>>>>> pvz. turime funkcija: >>>>>> >>>>>> Public Sub ManoFunkcija >>>>>> >>>>>> Dim a As ManoFileOpenDialogas ' >>>>>> a = new ManoFileOpenDialogas >>>>>> >>>>>> ' dirbi su a >>>>>> a.DoModal() ' ir t.t... >>>>>> >>>>>> End Sub >>>>>> >>>>>> Isejus is sios funkcijos a bus automatiskai naikinamas, bet sekanti >>>>>> karta iskvietus sia funkcija (tiksliau metoda) objektas sukuriamas bus >>>>>> is >>>>>> naujo, taip va ir turetu buti daroma, paprastai atmintyje niekas >>>>>> nelaiko >>>>>> inicializuotu OpenFileDialog'u, aplamai kuo maziau laikysi tokio >>>>>> nereikalingo saugoti slamsto tuo tavo programa maziau resursu valgys, >>>>>> o >>>>>> jeigu nori ji saugotis del to kad naudosi labai daznai (nebent) tai >>>>>> saugokis toje klaseje kuri su juo dirbs, tada butu kazkas tokio: >>>>>> >>>>>> ' Klases, bet ne metodo/funkcijos zonoje deklaruotas kintamasis >>>>>> public OpenFile As ManoFileOpenDialogas = Null ' Nepamenu gerai VB.NET >>>>>> sintakses, paskutini kart reikejo pries 5 metus >>>>>> >>>>>> Public Sub ManoFunkcija >>>>>> >>>>>> If Me.OpenFile = Null Then ' rodos VB kitaip tikrinasi ar objektas >>>>>> null >>>>>> Me.OpenFile = new ManoFileOpenDialogas >>>>>> End If >>>>>> >>>>>> ' kreipiesi i savo dialoga >>>>>> Me.DoModal() ' ir t.t... >>>>>> >>>>>> End Sub >>>>>> >>>>>> Tada 1 karta bus sukuriamas dialogas ir veliau pernaudojamas ji >>>>>> nekuriant >>>>>> dar karta, tuo paciu jis saugomas bus klaseje kuri ji naudoja, siaip >>>>>> tai >>>>>> geriausia savo kodo parasytum, tai tada butu aiskiau kas negerai, gal >>>>>> beda >>>>>> visai kitur. >>>>>> >>>>>> >>>>>> Freelancer Developer [R&D] >>>>>> http://www.lythum.lt >>>>>> >>>>>> Naujausias research: >>>>>> http://wiki.lythum.lt/index.php?title=Facebook_integrafimo_galimyb%C4%97s >>>>>> >>>>>> >>>>>> "Valdas" <valdonas@super.lt> wrote in message >>>>>> news:i9rr3e$cre$1@trimpas.omnitel.net... >>>>>>> na as kazko nesuprantu, siaip as ant Visual Basic darau, tai kas tas >>>>>>> instance nezinau :(( >>>>>>> >>>>>>> "Andrius F" <andriusflMORESPAM@gmail.com> wrote in message >>>>>>> news:i9rq8p$bic$1@trimpas.omnitel.net... >>>>>>>> kiekviena karta pries ShowDialog() kurk nauja instance.. >>>>>>>> using(var form = new SomeForm()) >>>>>>>> { >>>>>>>> if(form.ShowDialog(this) == DialogResult.Ok) >>>>>>>> { >>>>>>>> ... >>>>>>>> } >>>>>>>> } >>>>>>>> >>>>>>>> "Valdas" <valdonas@super.lt> wrote in message >>>>>>>> news:i9rf9u$qk9$1@trimpas.omnitel.net... >>>>>>>>> ka reiskia nereusint instance, tai kaip tada naudotis tuo >>>>>>>>> ShowDialog >>>>>>>>> ? >>>>>>>>> man reikalingas tas modaliskumas, nes darau savo open file dialoga, >>>>>>>>> ir >>>>>>>>> kai uzdarau forma, tik tuomet gaunu reiksme... >>>>>>>>> >>>>>>>>> "fakeID" <fakeID@fakeHost.com> wrote in message >>>>>>>>> news:i9rcss$n3d$1@trimpas.omnitel.net... >>>>>>>>>> Nereiktu reusinti formos instance, nebent tau tikrai taip reikia >>>>>>>>>> (pvz >>>>>>>>>> forma kuriasi 15 sek, bet tada turbut kazkas blogai su tavo forma >>>>>>>>>> ;).. >>>>>>>>>> Blogiausiu atveju isitikink, kad GarbageCollector nesunaikins tavo >>>>>>>>>> formos: >>>>>>>>>> a. ikisk instance i static field >>>>>>>>>> b. galbut verta overridint close, ir hidint forma vietoj >>>>>>>>>> base.close() >>>>>>>>>> >>>>>>>>>> bet siaip - nereusink instance. tai bloga architektura >>>>>>>>>> >>>>>>>>>> "Valdas" <valdonas@super.lt> wrote in message >>>>>>>>>> news:i9r6gd$er1$1@trimpas.omnitel.net... >>>>>>>>>>> Sveiki, iskilo tokia beda, bandant is vienos formos atidaryti >>>>>>>>>>> kita >>>>>>>>>>> "Forrm2.ShowDialog()", pradzioje atidaro, bet programai padirbus >>>>>>>>>>> kokia >>>>>>>>>>> valanda ir vel bandant atidaryti, meta klaida >>>>>>>>>>> "ObjectDisposedException", gal nujauciat kur cia beda ? >>>>>>>>>>> >>>>>>>>>>> aciu >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>> >>>>>>> >>>>> >>>>> >>> >>> > >