Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Szybkie wyłączanie wszystkich form
anonim




Typ: Nie zarejestrowany
Szybkie wyłączanie wszystkich form

Jak za jednym zamachem wyłączyć wszystkie formy?
W moim programie jest dość dużo form, a wyłączanie wszystkich unload frmX jest dość uciążliwe :/

10-03-2005 09:16
  
Pawelw




Typ: neutral
Postów: 23
Zarejestrowany: Jan 2004
-

Hej

Ja widzę dwie możliwości (choć pewnie może być ich więcej ).

1. Jeżeli program ma duzo form, ale nie chcesz go jeszcze wyłączyć, tylko wykonać unload określonej ilości okien - napisz w module procedure typu:

Sub wylacz_te_okna()
unload frm1
unload frm2
.....
End sub

a tam gdzie ma zostać wywołana procedura zamknięcia tych okien - po prostu

wylacz_te_okna


2. Jeżeli aplikacja ma zostać zamknięta:

napisz w miejscu, w którym ma zostać wyłączoa aplikacja  - po prostu:

end

np.

private sub form Unload
end
end sub

---------
Powyższe piszę z pamięci - mogłem coś pokręcić

Powodzenia


_____________________________________________
Pozdrawiam
Paweł

10-03-2005 11:22
Pokaż profil Pawelw  Wyślij email do Pawelw   
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Dim f as variant

For Each f In Forms
    Unload f
Next



_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

10-03-2005 11:39
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
anonim




Typ: Nie zarejestrowany

Ten ostatni pomysł jest dobry Ale teraz mam inny problem...
Powiedzmy, że mam go w jakimś module, w funkcji "WylaczFormy". Po naciśnięciu danego przycisku program przechodzi do funkcji i wykonuje tą pętlę, ale wyłącza wszystkie formatki oprócz niektórych. Np. przycisk cmd1 wyłącza wszystkie formatki oprócz frm1 i frm2, a cmd2 oprócz frm3 i frm4.

12-03-2005 11:16
  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Rozumiem, że to miało być pytanie, jak zrobić, żeby nie były wyłączane wszystkie formy.

Widzę dwa dosyć proste rozwiązania:
Sub UnloadForms(sSet As String)
    Dim vCForm As Variant
   
    For Each vCForm In Forms
        If InStr(vCForm.Tag, sSet) Then Unload vCForm
    Next
End Sub


To wyładuje wszystkie formy, które będą miały we własciwości .tag ciag znaków wpisany w argumencie sSet. Np.:
frm1.Tag = "Zestaw1"
frm2.Tag = "Zestaw1"
frm3.Tag = "Zestaw2"
frm4.Tag = "Zestaw2"

UnloadForms "Zestaw1"  'usunie frm1 i frm2.

Drugie rozwiazanie opiera się na podobnej zasadzie, ale usuwa formy o podanych w parametrze nazwach. Jest już zdecydowanie mniej użyteczne, ale na wszelki wypadek też dodam:

Sub UnloadForms(sForms As String)
    Dim vCForm As Variant
   
    For Each vCForm In Forms
        If InStr(sForms, vCForm.Name) Then Unload vCForm
    Next
End Sub


Tutaj z kolei w sForms podajesz listę form, które mają zostać usunięte, kolejne nazwy oddzielając np. spacją albo średnikiem - czymkolwiek, co na pewno nie wystąpi w nazwie formy.

Np.:

UnloadForms "frm1;frm2"  'usunie frm1 i frm2


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

12-03-2005 11:45
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Wszystkich odpowiedzi: 4 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1