Toon posts:

[vb]programma afsluiten

Pagina: 1
Acties:
  • 422 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
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

  • Splatter
  • Registratie: December 2000
  • Laatst online: 26-11-2021
[topic=256531/1/100]

Verwijderd

Topicstarter
hardstikke bedankt

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

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:
code:
1
End

Afbeeldingslocatie: http://www.forum4u.f2s.com/images/smileys/rtfm.gif

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • tus
  • Registratie: November 2000
  • Laatst online: 05-07-2012

tus

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.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09-09 16:14

Crazy D

I think we should take a look.

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]
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
5
Dim f As Form
For Each f In Forms
    Unload f
    Set f = Nothing
Next 'f

Exact expert nodig?


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

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
5
Dim f As Form
For Each f In Forms
    Unload f
    Set f = Nothing
Next 'f
Hum... om eerlijk te zijn, als je op forms na geen objecten hebt openstaan vind ik een regel code toch handiger. :9 Maar idd met End worden objecten niet goed afgesloten. Dusseh...
code:
1
2
3
'sluit objecten af

End

}:O

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


Verwijderd

Op 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
5
Dim f As Form
For Each f In Forms
    Unload f
    Set f = Nothing
Next 'f
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.

  • tus
  • Registratie: November 2000
  • Laatst online: 05-07-2012

tus

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.
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.).

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??

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09-09 16:14

Crazy D

I think we should take a look.

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.
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).
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 :P). End is imho _nooit_ nodig.

Exact expert nodig?


  • red_indian
  • Registratie: Maart 2000
  • Laatst online: 24-06 16:43

red_indian

 Smokin' Suckz B!

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 :)

Need a cuesheet/tracklisting? (meer dan 500.000 online)


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09-09 16:14

Crazy D

I think we should take a look.

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?
Voor zover ik weet wel, al moet ik zeggen dat het niet mijn voorkeur verdient, tenminste, als ik je goed begrijp.
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 :)
:X :P

Exact expert nodig?


  • red_indian
  • Registratie: Maart 2000
  • Laatst online: 24-06 16:43

red_indian

 Smokin' Suckz B!

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.
Op woensdag 24 april 2002 13:15 schreef Crazy_D het volgende:
Voor zover ik weet wel
is er een manier om te kijken of dit echt zo is?

Need a cuesheet/tracklisting? (meer dan 500.000 online)


Verwijderd

Op woensdag 24 april 2002 13:15 schreef Crazy_D het volgende:
(in de garbage collector gedondert).
In dotnet ja, maar in VB6 niet, dus netjes alles zelf opruimen!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09-09 16:14

Crazy D

I think we should take a look.

Op woensdag 24 april 2002 15:50 schreef JeroenDega het volgende:
In dotnet ja, maar in VB6 niet, dus netjes alles zelf opruimen!
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...
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 :P, vergeet je het uit een soort automatisme...

Exact expert nodig?

Pagina: 1