Ga naar inhoud

Na beindigen VB6 programma nog steeds 'actief'


Aanbevolen berichten

Ik zoek de oplossing die mijn VB programma echt goed afsluit en uit het gehuigen van de PC verwijdert. Wanneer ik mijn programma stopt met 'End' dan stopt het VB programma. Wanneer ik met 'CTRL''ALT''DEL' kijkt wat er nog actief is dan zie ik hier 'nog steeds' dit VB programma. Of te wel wordt niet echt afgeslotenen uit het geheugen verwijdert. Wat doe ik fout? Wat is de juiste procedure? Ik gebruik VB 6.
Link naar reactie
[quote:ba80903c46="janvh"]Ik zoek de oplossing die mijn VB programma echt goed afsluit en uit het gehuigen van de PC verwijdert. Wanneer ik mijn programma stopt met 'End' dan stopt het VB programma. Wanneer ik met 'CTRL''ALT''DEL' kijkt wat er nog actief is dan zie ik hier 'nog steeds' dit VB programma. Of te wel wordt niet echt afgeslotenen uit het geheugen verwijdert. Wat doe ik fout? Wat is de juiste procedure? Ik gebruik VB 6.[/quote:ba80903c46] Het gebruik van 'End' is niet aan te raden. Een goede oplossing is om procedureel te programmeren. Visual Basic heeft de eigenschap dat bij het aanroepen van form-eigenschappen in de code daarbij ook het bijbehorende form automatisch geladen wordt. Je programma zal automatisch stoppen als alle forms 'ge-unload' zijn en er geen code meer volgt die uitgevoerd hoeft te worden. [code:1:ba80903c46]call Unload(form1)[/code:1:ba80903c46] Eventueel kun je hiervoor de forms collectie doorlopen.
Link naar reactie
Deze vraag is hier al verscheidene malen gesteld. Oorzaak van dit verschijnsel is dat in VB objecten, in dit geval forms, voort blijven 'leven' totdat ze expliciet opgeruimd zijn. Zet daarom standaard in de routine waarmee je je programma beëindigt de volgende code: [code:1:0a2d51f07c] dim frmTemp as Form For Each frmTemp in Forms unload frmTemp set frmTemp = Nothing Next frmTemp [/code:1:0a2d51f07c] Met bovenstaande code wordt de formscollection doorlopen en wordt ieder nog bestaande form uit het geheugen gemikt en de referentie naar je het object opgeruimd. Óf, als je je programma beeindigt in de unload van je hoofdform (niet aan te raden, maar veel mensen doen het toch) dan [code:1:0a2d51f07c] dim frmTemp as Form For Each frmTemp in Forms if Me.name <> frmTemp.name then unload frmTemp set frmTemp = Nothing End if Next frmTemp [/code:1:0a2d51f07c] Dit om te voorkomen dat het object waarvandaan deze code loopt wordt vernietigd voordat de boel afgerond is. En als laatste regel van je programma tenslotte: [code:1:0a2d51f07c] Set frmForm (hier je eigen form) = Nothing [/code:1:0a2d51f07c]
Link naar reactie
G'day, Ik moet eerlijk zeggen dat ik nog nooit dat probleem heb gehad. Ik heb al wel het probleem gehad dat ik zei : [code:1:4089c15ee5] Private Sub cmdExit_Click() Unload Me End Sub [/code:1:4089c15ee5] En dat het programma in het geheugen bleef maar door het commando 'End' er bij te steken is dat nooit meer gebeurd : [code:1:4089c15ee5] Private Sub cmdExit_Click() Unload Me End End Sub [/code:1:4089c15ee5] Als dit probleem echt in je programma zit dan ben ik hoogst geinteresseerd, zou je de code naar me kunnen doorsturen (code@bartnet.be)? Greetz, BelgiumBoy_007
Link naar reactie
End is als de noodrem in de trein. Het doel wordt bereikt maar niet zoals oorspronkelijk bedoelt was. De trein staat wel stil, maar alle bagage ligt uit de rekken. Zelfde met End. Alles wordt nogal botweg afgekapt of de boel nou netjes afgehandeld is of niet. Als je zelf netjes je databaseconnecties sluit en je gecreeerde objecten opruimt heb je End niet nodig en is de kans een stuk kleiner dat je in een veel later stadium voor rare problemen komt te staan. Bottomline, gewoon netjes programmeren, heb je geen botte bijl nodig.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...