Pasibandziau visus budus, ir ziurint per taskmanager`i rezultatai keisti, nesvarbu kaip uzdarineju, naudojamos atminties nesumazeja, o kelis kartus atidarius ir vel uzdarius su kiekvienu kartu naudojamos atminteis kiekis auga, kokia tai mistika... "Valdas" <valdonas@super.lt> wrote in message news:iaav8b$e3s$1@trimpas.omnitel.net... > Na taip, o vat kaip uzdarineti, kuriuo budu geriau ? > Dim OpenFileDialog as new Form2 > ------------------------------------- > Form2.close > OpenFileDialog.close > Me.Close > > ? > > "Jornada Del Muerto" <Jornada@Lythum.lt> wrote in message > news:ia99tp$dch$1@trimpas.omnitel.net... >> 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 >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>> >>>>>>> >>>>> >>>>> >>> >>> > >