Vraag & Antwoord

Programmeren

Na beindigen VB6 programma nog steeds 'actief'

8 antwoorden
  • 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.
  • Gewoon op kruisje klikken :D... Gebeurt dat bij al je programma's of alleen bij eentje ? Misschien zit er een fout in je progrramma, dat hij hem op Visible = False zet, ipv Exit...
  • Ik zal eens proberen.
  • [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.
  • Bedankt voor je informatie. Ik ga het zo eens aanpakken. Bedankt
  • 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]
  • Ook met deze laatste adviezen ga ik aan de slag. Ik verwacht nu al dat mijn 'probleem' is opgelost. Bedankt
  • 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

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.