Avatar billede bierchen Nybegynder
25. september 2004 - 16:41 Der er 4 kommentarer og
1 løsning

Åbning af Forms under splash skærm

Heysan

Jeg har en splash skæm som jeg åbner når formen loades. Når så splash skærmens timer er udløbet, vises frmlogin.

Kan jeg udnytte den ventetid jeg har (som timeren kører i) til at åbne min frmlogin, og evt også min efterfølgende frmmain. Sådan at der ikke skal bruges tid på at åbne disse når timeren er udløbet?  På denne måde vil programmet jo komme frem med det samme når timeren er udløbet.

Lige nu åbner jeg frmlogin med:
dim frmlogin as new frmlogin
frmlogin.show
me.hide (Vælger jeg close her, lukker programmet)

Er ovenstående "måden" at åbne/lukke forms på ?

Hvad sker der med me når jeg skjuler den ?? Optager den ikke fortsat ressourcer ?

Med Venlig hilsen
Bjørn
Avatar billede aaberg Nybegynder
30. september 2004 - 17:01 #1
Den rigtige måde at lukke et program på, er sådan her:
me.dispose()

hvis du bare skjuler den, bruger den højest sandsynligt stadig rescourser.

Hvis du vil gøre det med splash skærmen, skal i stedet for Hide metoden, gøre sådan her:
me.visible = false;

Når timeren er udløbet, skriver du bare:
me.visible = true;

Når du gør det på den måde, er formen der stadigvæk, og kører stadig væk, men er usynlig.

Var det svar nok?
Avatar billede bierchen Nybegynder
01. oktober 2004 - 23:08 #2
1. Hvad gør me.dispose() 

2. Jeg er ude på at lukke frmsplash, når den er færdig med at vise indholdet, og så gå videre til frmlogin. Kan jeg på nogen måde sende brugeren videre til frmlogin, derefter lukke frmsplash, uden at lukke programmet ?
Avatar billede aaberg Nybegynder
02. oktober 2004 - 22:06 #3
1. I alle .NET programmer er der en Dispose() metode. Den er nedarvet fra Object klassen, så vidt jeg husker. Det den gør, er at den lukker din form, og rydder op i hukommelsen. Det er en af de store forskelle på .NET programmeringssprogene og sprog som C++ o.l. Oprydningsrutinerne er lavet for en, og man skal ikke holde styr på, hvad der står i hukommelsen. Hvis du kalder me.Dispose() fra en anden form end din hovedform, vil det være den form du arbejde med nu der lukkes. Man kan kalde Dispose() fra alle objekter. Hvis du ikke kalder Dispose() når du stopper med at bruge et object, vil .NET gøre det for dig.

2. Hvis jeg forstår dit spørgsmål korrekt, skal splash formen vises i et lille stykke tid, hvorefter den skal lukke, og din login form skal åbne? Det jeg ville gøre, var at have en hovedform der er åben hele tiden, men måske usynlig. Den kan så kalde de andre forme. Så sender du ikke programmet videre til næste form, men har en form der styrer det hele tide.
Avatar billede bierchen Nybegynder
03. oktober 2004 - 11:02 #4
1. Mange tak ! Er forskellen på ne.dispose og me.close, at me.dispose selv rydder op ved luk, og at ved me.close sørger GC for at rydde op ?

2. Også Mange tak! Jeg havde selv overvejet denne løsning, men tænkte på om der var en anden løsning.

Tak for hjælpen. Læg et svar så, vil jeg komme med nogle point.
Avatar billede aaberg Nybegynder
03. oktober 2004 - 14:53 #5
Jeg tror kun me.Close kan kaldes på en form. me.Dispose kan kaldes fra alle objekter for at lukke dem. Hvis du f.eks. har en timer, kan du skrive
me.Timer1.Dispose()

Men du kan ikke:
me.Timer1.Close()

Men jeg tror også din form bliver lukket ordentligt hvis du bruger close, men jeg er ikke helt sikker på hvad forskellen præcist er (Måske det står i dokumentationen). Jeg har vænnet mig til at bruge Dispose, da denne kan bruges på alle objekter.

PS. Man behøver for det meste ikke at kalde Dispose på f.eks. en timer. Runtime maskinen vil automatisk "Dispose" dine objekter, når de ikke bruges mere. Det er en af de geniale ting ved .NET programmering.

God arbejdslyst
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester