Tema: Re: Visual studio 5 ir modaline forma
Autorius: Valdas
Data: 2010-10-27 07:56:36
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
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>>
>>>>
>>
>>