title image


Smiley Na dann werde ich mal wieder tippen...
Du verwendest immer einen Verweis, über den du auf eine Form zugreifst.

Einen Verweis erstellt VB automatisch, wenn du nur über den Formnamen

zugreifst. Wenn du dir deinen eigenen Verweis erstellst und nicht

über den Formnamen zugreifst, dann erstellt VB den automatischen

Verweis nicht.





Formname: meineForm



Möglichkeiten, die Form anzuzeigen:

1. meineForm.Show



2. Dim x As New meineForm

x.show

Im ersten Fall wird der automatische Verweis von VB benutzt, im zweiten

Fall wird ein selbsterstellter Verweis benutzt.



Beim Löschen der Form muß diese eben entladen und der Verweis auf Nothing

gesetzt werden.

1. Unload meineForm

Set meineForm = Nothing



2. Unload x

Set x = Nothing



Zweiter Teil: Wo ist eigentlich der Unterschied zwischen Form.load...

Eine Form besteht immer aus zwei Teilen, erstens die sichtbare Oberfläche

und zweitens der Code-Teil. Der Code-Teil der Form ist eine Klasse und

er verhält sich auch ganz genau so.



Beim Laden einer Form kommen diese Events in genau dieser Reihenfolge:

1. Form_Initialize

'// der Code-Teil der Form wird geladen, ab sofort sind alle

'// Eigenschaften der Form (VB-Eigenschaften, Public Properties, Public Variablen

'// und Methoden (Public Sub, Public Funkction) gültig

'// und auch alle Private-Variablen werden erstellt.

'// Die Steuerelemente sind noch nicht geladen. ein Zugriff auf ein Steuerelement

'// in dieser Phase bewirkt ein "vorziehen" von Form_Load



2. Form_Load

'// die Oberfläche der Form wird geladen und die Steuerelemente erstellt



3. Form_Resize

'// die Größe der Oberfläche wird entsprechend eingestellt



4. Form_Activate

'// die Oberfläche bekommt den Focus

Wenn man eine Form über Form.Load lädt, dann wird nur der Code-Teil geladen,

also Form_Initialize kommt, mehr nicht, aber man kann dann schon auf die

Public-Sachen zugreifen.



Wenn man eine Form über Form.Show lädt, wird geprüft, ob der Codeteil bereits

geladen ist (vorher ein Form.Load) oder nicht.

Wenn der Codeteil bereits da ist, geht's mit Form_Load... weiter, wenn der

Codeteil noch nicht da ist, wird dieser eben zuerst geladen (Form_Initialize).





Beim Entladen einer Form ist das ganze ähnlich. Zuerst wird die Oberfläche

entladen und anschließend der Codeteil.



Folgende Eventreihenfolge:

1. Form_QueryUnload

'// es wird Bescheid gegeben, daß die Form eintladen werden soll

'// Im Parameter UnloadMode ist die Information, warum die Form entladen

'// wird, wenn man den Parameter Cancel auf einen Wert ungleich 0 setzt,

'// kann man das Entladen der Form verhindern

'// alle Steuerelemente sind noch gültig



2. Form_Unload

'// Die Oberfläche der Form und die Steuerelemente werden entladen,

'// Cancel-Parameter wie bei Form_QueryUnload



3. Form_Terminate

'// der Codeteil der Form wird entladen.

Wenn man jetzt eine Form entlädt Unload meineForm, wird die Oberfläche der Form

entladen, aber der Code-Teil der Form ist nach wie vor gültig. Hier kann

man noch auf alle Public-Sachen der Form zugreifen.

Achtung: wenn man jetzt auf ein Steuerelement zugreift (oder zB eine Public Sub

aufruft, die auf ein Steuerelement zugreift), dann wird die Form neugeladen.



Erst wenn man den letzten Verweis auf die Form auf Nothing setzt

Set meineForm = Nothing

wird der Code-Teil der Form entladen. Beachte, daß mehrere Verweise auf eine Form

möglich sind und erst wenn alle Verweise darauf gelöscht sind und die Oberfläche

entladen ist, wird der Code-Teil der Form gelöscht.




Gruß
Gaga

___________________________________________________________________

Profilösungen für VB6
wenn nicht anders angegeben, sind alle Codebeispiele nicht getestet, nur getippt


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: