wat is de visual basic code om een programma te beindigen, net zoals het bekende windows X-je, ik heb heb met google gezocht op basic+exit , maar kon niks relevants vinden
Met alleen Unload Me zou je nog wel es bedrogen uit kunnen komen; dat werkt erg goed als je maar een form hebt, maar zodra je meerdere opent en Hide doet ipv Unload, dan sluit je proggel niet af als je je main form afsluit.
Ik zou zeggen, gebruik de o zo onbekende, o zo lastige, o zo onofficiele manier:
Ik zou zeggen, gebruik de o zo onbekende, o zo lastige, o zo onofficiele manier:
code:
1
| End |
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Je moet proberen juist geen End te gebruiken. De objecten die dan openstaan worden dan namelijk niet correct afgesloten. Hij stopt dus gewoon abrupt. Het is hetzelfde als je de application in runt in de IDE en dan op die End button in de IDE drukt.
Als je meerdere forms open hebt moet je ze dus een voor een afsluiten. Heb je nog objecten open dan moet je ze eerst sluiten.
Als je meerdere forms open hebt moet je ze dus een voor een afsluiten. Heb je nog objecten open dan moet je ze eerst sluiten.
Read the Fm en je zou er achter komen dat er handigere manier zijn om de boel te unloaden...Op woensdag 24 oktober 2001 08:38 schreef Xenophage het volgende:
Ik zou zeggen, gebruik de o zo onbekende, o zo lastige, o zo onofficiele manier:
code:
1 End
[afbeelding]
En als je te lui bent om bij te houden welke forms er geladen zijn...
code:
1
2
3
4
5
| Dim f As Form
For Each f In Forms
Unload f
Set f = Nothing
Next 'f |
Exact expert nodig?
Hum... om eerlijk te zijn, als je op forms na geen objecten hebt openstaan vind ik een regel code toch handiger.CrazyD_at_work:
Read the Fm en je zou er achter komen dat er handigere manier zijn om de boel te unloaden...
En als je te lui bent om bij te houden welke forms er geladen zijn...
code:
1 2 3 4 5Dim f As Form For Each f In Forms Unload f Set f = Nothing Next 'f
code:
1
2
3
| 'sluit objecten af End |
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Verwijderd
Maar hiermee sluit je je prog nog niet af. Als je bv start met een Sub Main waarin een form geladen wordt (niet geheel ongebruikelijkOp woensdag 24 oktober 2001 09:12 schreef CrazyD_at_work het volgende:
Read the Fm en je zou er achter komen dat er handigere manier zijn om de boel te unloaden...
En als je te lui bent om bij te houden welke forms er geladen zijn...
code:
1 2 3 4 5Dim f As Form For Each f In Forms Unload f Set f = Nothing Next 'f
Het is heel simpel. Zodra er nix meer in het programma rondhangt wat nog draait dan wordt de applicatie beeindigt. Als jij dus n sub main hebt die n form toont en de form wordt geunload dan stopt het programma als er voor de rest nix meer draait (zoals niet gehide forms, objecten etc.).Op woensdag 24 oktober 2001 12:12 schreef virnoctis het volgende:
[..]
Maar hiermee sluit je je prog nog niet af. Als je bv start met een Sub Main waarin een form geladen wordt (niet geheel ongebruikelijk) en het form wordt geunload, dan is het niet te hopen dat je code stopt. Een prog stopt met een End als je met Sub Main start, of voor een prog met 1 form Unload voldoende is kan ik hier (ik zit nu op de VU) niet testen.
Maar waarom wil je dat het programma nog verder gaat als de form geunload wordt? Het programma start bij de Sub Main. Hij ziet n form.show statement, toont vervolgens de form, gaat verder met de code in Sub Main (die er dus niet is). De applicatie draait verder, want er form is geload dus er is nog wat in geheugen wat kennelijk niet schoon is. Vervolgens klik je op dat [X] en verrekt hij heeft door dat er nix meer is dus programma stopt.
Hoe wil je anders het programma beeindigen??
Alle programma's die ik schrijf voor m'n werk beginnen in Sub Main, en eindigen (netjes, zoals het hoort) als mij frmMain geunload wordt (ik hide forms nooit maar unload ze dus heb geen probleem met in het geheugen hangende forms).Op woensdag 24 oktober 2001 12:12 schreef virnoctis het volgende:
Maar hiermee sluit je je prog nog niet af. Als je bv start met een Sub Main waarin een form geladen wordt (niet geheel ongebruikelijk) en het form wordt geunload, dan is het niet te hopen dat je code stopt. Een prog stopt met een End als je met Sub Main start, of voor een prog met 1 form Unload voldoende is kan ik hier (ik zit nu op de VU) niet testen.
Als je programma nog blijft draaien, heb je nog een form in het geheugen hangen, of er loopt nog ergens een loopje (die vanzelf wel een keertje een error geeft trouwens
Exact expert nodig?
Ik heb hier op aansluitend nog een vraag:
Als ik een form unload, worden de gedefinieerde objecten dan automatisch ook vrij gemaakt? Of moet ik die eerst nog vrijmaken met: Set oObj = Nothing?
Voorbeeld:
Ik definieer lokaal binnen een form (binnen een functie zelfs) een object dat een form is. Dus: Dim myForm as New frmHenk. Nu voer ik een functie uit binnen myForm. Dus: myForm.MyFunction 'blah'. Vervolgens Unload ik vanuit myForm zichzelf. Dus: Unload Me. En daarna unload ik vanuit myForm de form die myForm initieerde. Wordt nu het object myForm binnen *die* form automatisch vrijgemaakt? (Denk het wel aangezien ik hem unload). Of moet je eerst nog Set myForm = Nothing doen?
Of ben ik nu 'een b-tje dom'? Om in de woorden van Maxima te spreken
Als ik een form unload, worden de gedefinieerde objecten dan automatisch ook vrij gemaakt? Of moet ik die eerst nog vrijmaken met: Set oObj = Nothing?
Voorbeeld:
Ik definieer lokaal binnen een form (binnen een functie zelfs) een object dat een form is. Dus: Dim myForm as New frmHenk. Nu voer ik een functie uit binnen myForm. Dus: myForm.MyFunction 'blah'. Vervolgens Unload ik vanuit myForm zichzelf. Dus: Unload Me. En daarna unload ik vanuit myForm de form die myForm initieerde. Wordt nu het object myForm binnen *die* form automatisch vrijgemaakt? (Denk het wel aangezien ik hem unload). Of moet je eerst nog Set myForm = Nothing doen?
Of ben ik nu 'een b-tje dom'? Om in de woorden van Maxima te spreken
Voor zover ik weet wel, al moet ik zeggen dat het niet mijn voorkeur verdient, tenminste, als ik je goed begrijp.Op woensdag 24 april 2002 12:33 schreef red_indian het volgende:
Ik definieer lokaal binnen een form (binnen een functie zelfs) een object dat een form is. Dus: Dim myForm as New frmHenk. Nu voer ik een functie uit binnen myForm. Dus: myForm.MyFunction 'blah'. Vervolgens Unload ik vanuit myForm zichzelf. Dus: Unload Me. En daarna unload ik vanuit myForm de form die myForm initieerde. Wordt nu het object myForm binnen *die* form automatisch vrijgemaakt? (Denk het wel aangezien ik hem unload). Of moet je eerst nog Set myForm = Nothing doen?
Form1 -> laadt via een variabele Form2.
Form2 unload zichzelf, en daarna Form1.
Ik zou er denk ik voor kiezen om nadat Form2 geunload is, terug te keren in de functie in Form1 waar je was, en daar vandaan Form1 te unloaden, maar bij mijn weten worden de variabelen wel gewoon netjes opgeruimt (in de garbage collector gedondert).
Of ben ik nu 'een b-tje dom'? Om in de woorden van Maxima te spreken
Exact expert nodig?
ok, bedankt. het is een asynchroon process (winsock), vandaar. misschien idd beter als ik in form1 in de functie blijf hangen met een loop en dan vanuit form1 netjes form2 unload en dan zichzelf. dan kan ik hem ook netjes op nothing zetten.
is er een manier om te kijken of dit echt zo is?Op woensdag 24 april 2002 13:15 schreef Crazy_D het volgende:
Voor zover ik weet wel
Verwijderd
In dotnet ja, maar in VB6 niet, dus netjes alles zelf opruimen!Op woensdag 24 april 2002 13:15 schreef Crazy_D het volgende:
(in de garbage collector gedondert).
VB6 heeft toch een garbage collector? Oh naja in m'n lokale MSDN staan alleen dingen over .Net bij garbage* dus dat zal wel niet...Op woensdag 24 april 2002 15:50 schreef JeroenDega het volgende:
In dotnet ja, maar in VB6 niet, dus netjes alles zelf opruimen!
Ik heb op verschillende plaatsen gelezen dat als je variabele out of scope gaat, deze automatisch opgeruimt wordt (ook als dit een object is). Maar ja eigenlijk wil ik dat niet weten, gewoon netjes wat je gebruikt weer opruimen, lijkt me beter dan maar vertrouwen op de runtime (ook in .net). Iig een betere gewoonte, en als je dan eens iets moet schrijven in een taal waar je wel netjes de zooi achter je kont moet opruimen
Exact expert nodig?
Pagina: 1