Vraag & Antwoord

Programmeren

Sluitknop opvangen

8 antwoorden
  • Ik wil dat als mijn hoofdform wordt gesloten met het kruisje de rest ook weggaat. Ik heb eens in een voorbeeld gezien dat je de klik kan opvangen en er dan voor zorgen dat de andere form worden geunload. Hoe doe ik dit? (Mp3Player is main Mp3selector is een bij form)
  • OnClose event of iets soortgelijks :-? Ligt er nog aan welke OS en welke programmeertaal.
  • Welke taal?
  • Dit kan op 2 manieren, met 2 manieren... Ten eerste kan je door het volgende bij de sub van het hoofdform te typen: [code:1:e677567fc7]Private Sub Form_Unload(Cancel As Integer) mp3selector.hide End Sub[/code:1:e677567fc7] of: [code:1:e677567fc7]Private Sub Form_Unload(Cancel As Integer) unload mp3selector End Sub[/code:1:e677567fc7] Je kan het ook bij de volgende sub van het hoofdform typen: [code:1:e677567fc7]Private Sub Form_Terminate() mp3selector.hide End Sub[/code:1:e677567fc7] of: [code:1:e677567fc7]Private Sub Form_Terminate() unload mp3selector End Sub[/code:1:e677567fc7] Wat het verschil is tussen deze mogelijkheden en wat jij wilt gebruiken moet je zelf uitzoeken... Groeten, Wouter
  • Of misschien gewoon [code:1:e7a117abcd]end[/code:1:e7a117abcd] als je wil dat je programma eindigd...
  • Blijkbaar gan we er vanuit dat de taal VB is. Goed, in dat geval: [quote:44c2de4d74] mp3selector.hide [/quote:44c2de4d74] Dit heeft helemaal niets met het opruimen van een form te maken. Dit als mogelijke oplossing aanbieden slaat nergens op. Het is gewoon fout. [quote:44c2de4d74="Wouter Broekhuizen"]Of misschien gewoon [code:1:44c2de4d74]end[/code:1:44c2de4d74] als je wil dat je programma eindigd...[/quote:44c2de4d74] End gebruik je alleen als je een 'noodstop' wilt maken, in een error_handler bij opstarten bijv. Je ziet het nog wel eens in slecht geschreven programma's als wanhoopsoplossing omdat het programma bij afsluiten niet uit de tasklist verdwijnt en de programmeur niet meer weet wat hij moet doen. End is meestal een slecht idee. Je sluit niets af, ruimt geen geheugen op etc. Eigenlijk mag het alleen gebruikt worden als laatste statement bij afsluiten, maar is dan eigenlijk niet meer nodig. Als je alle open forms wilt opruimen bij het opruimen van het programma kan dat eenvoudig als volgt. In de Form unload event van je hoofdform loop de je de forms-collection af. Iedere form die je daarin aantreft unload je en ruim je netjes op door het object te destroyen. Als volgt dus (uit de losse pols, dus er kan een foutje in zitten): [code:1:44c2de4d74] private sub Form_Unload(Cancel as integer) Dim frmForm As Form For Each frmForm In Forms 'Loop door de Forms-collection if frmForm.name <> me.name then Unload frmForm 'Form unloaden. Set frmForm = Nothing 'Object vernietigen. end if Next frmForm 'Vul voor frmMain de naam van je hoofdform in. set frmMain = Nothing End Sub [/code:1:44c2de4d74]
  • Niets met het opruimen van forms nee, maar hij is niet meer zichtbaar. Nou weet ik niet wat de bedoeling is... Of hij niet meer zichtbaar moest zijn of helemaal "opgeruimd" (raar woord :roll: ) moet worden. Met end heb je trouwens wel gelijk. In de boeken die ik van visual basic heb staat het trouwens wel. Het zijn trouwens boeken voor beginners, misschien ligt het daar aan. Groeten, Wouter
  • [quote:5b0548783e="Wouter Broekhuizen"]Niets met het opruimen van forms nee, maar hij is niet meer zichtbaar. Nou weet ik niet wat de bedoeling is... Of hij niet meer zichtbaar moest zijn of helemaal "opgeruimd" (raar woord :roll: ) moet worden. Met end heb je trouwens wel gelijk. In de boeken die ik van visual basic heb staat het trouwens wel. Het zijn trouwens boeken voor beginners, misschien ligt het daar aan. Groeten, Wouter[/quote:5b0548783e] Kreet opruimen gebruik ik alleen als ik beginners vermoed. Je maakt in je programma een object, en als je het niet meer nodig hebt ruim je het op. Als je direct in OO termen als creator's en destructors gaat praten ben je ze gelijk kwijt, en daar is niemand bij gebaat. (Om opmerkingen voor te zijn, ja, ik weet dat VB niet echt OO is).

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.