"Lars Jensen" <streg@post1.tele.dk> skrev i en meddelelse
news:Xns91E691AE61C91stregpost1teledk@130.225.247.90...
> Det har vist været oppe flere gange før, men nu spørger jeg altså igen:
>
> Hvad skal der skrives hvor for at man lukker programmet og alle tilhørende
> forms ned på den korrekte måde ?
At lukke alle forms er ikke så vanskeligt:
Dim f As Form
For Each f In Forms
Unload f
Next
Spørgsmålet er så, hvor det skal gøres. Hvis du har een form, som er
hovedformen, og som skal lukke hele programmet, når den lukkes, så kunne de
placere koden i Form_QueryUnload, som kaldes lige før formen unloades.
Her er også en Cancel-variabel, som, hvis den sættes True, forhindrer, at
formen lukker alligevel - f.eks. noget i retning af.
Dim f Af Form
If MsgBox("Er du sikker på, at du vil afslutte") <> vbYes Then
Cancel = True
Else
For Each f in Forms
Unload f
Next
EndIf
Hvis du derimod vil skulle lukkes app'en fra flere steder, er det måske mest
hensigtsmæssigt at lave en Public Sub Afslut() i et modul og så kalde denne
Sub fra diverse formes Unload eller QueryUnload-events samt fra det/de
menu-punkter, som skal kunne afslutte.
Du kunne give Afslut en parameter:
Public Sub Afslut (RequestingForm as Form)
så du ved, hvilken form, der kalder den:
Afslut Me
Måske skulle du også studere UnloadMode i QueryUnload-eventen - den siger
noget om, hvad der er, der har udløst, at formen er ved at lukke.
Der er faktisk en del at overveje...
--
mvh
Jens Vestergaard
www.railsoft.dk
>
> Det skal selvfølgelig virke lige meget om man vælger et Afslut-menupunkt i
> min Filer-menu, trykker Alt-F4, klikker på luk-krydset i øverste højre
> hjørne af titellinien eller vælger Luk fra øverste venstre hjørne i
> titellinien.
>
>
> Jeg skal til at rette et gammelt program, hvor der netop bliver brugt End,
> og så kan jeg jo ligeså godt lave det rigtigt.
>
> Hilsen Lars