[VB] Programma niet afsluiten dmv Kruisje

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

  • ddkiller0900
  • Registratie: Juli 2001
  • Laatst online: 22-08 19:34
Hoe zorg je ervoor dat de gebruiker je programma niet met het kruisje kan afsluiten. Dit omdat er een verbinding via winsock wordt gemaakt en als je via kruisje doet, wordt die niet afgesloten :? Dus het moet gewoon via het menu afgesloten worden, er wordt eerst tekst gezonden, en daarna wordt normaal de verbinding van winsock afgesloten nadat je op afsluiten hebt geklikt.

  • brokenp
  • Registratie: December 2001
  • Laatst online: 16:42
je kan bij form-properties iets van contol box op false zetten, maar er zijn ook speciale modules voor die het kruisje weg halen

Verwijderd

Optie 1: Set in de properties van je formulier ControlBox, MinButton en Maxbutton op False.

Optie 2:
code:
1
2
3
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
   Cancel = -1
End Sub

  • ddkiller0900
  • Registratie: Juli 2001
  • Laatst online: 22-08 19:34
ok ik zal eens kijken :)

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:13
De grote kracht van Windows is nu juist dat vergelijkbare applicaties en onderdelen van applicaties op vergelijkbare manieren werken. Typisch iets voor een Visual Basic programmeur om de bekende werking van een applicatie te saboteren en gebruikers te dwingen 'standaard' zaken als het afsluiten van applicaties op een afwijkende manier te doen. Dat kruisje zit er niet voor niets - als gebruiker verwacht ik dat 'ie in jou applicatie hetzelfde doet als in ALLE andere Windows applicaties!

En om vervolgens wat constructiefs aan dit bericht toe te voegen: ik neem aan dat je ook in Visual Basic een functie kan koppelen aan het WM_CLOSE bericht, dat verzonden wordt als een gebruiker een venster sluit (hetzij via de taakbalk, hetzij via het kruisje, hetzij via een menu of op een andere manier). In deze functie kun je dan je opruimwerk doen.

  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 14:28

johnwoo

3S-GTE

Op zondag 24 februari 2002 21:07 schreef Sepans het volgende:
code:
1
2
3
4
Private Sub Form_QueryUnload(Cancel As Integer, _
                     UnloadMode As Integer)
   Cancel = -1
End Sub
Ik zou er dan wel dit van maken:
code:
1
2
3
4
5
6
Private Sub Form_QueryUnload(Cancel As Integer, _
                     UnloadMode As Integer)
   If UnloadMode = 0 Then ' System Menu or Close button
    Cancel = -1
   End If
End Sub

Anders wil je form helemaal niet meer ontladen (ook niet meer met Unload frm) en zal in het geheugen blijven tot de app beeindigd wordt.
Het netst is natuurlijk om het kruisje gewoon niet te laten zien als je niet wilt dat erop geklikt kan worden :)

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1


  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
Op zondag 24 februari 2002 22:17 schreef Soultaker het volgende:
ik neem aan dat je ook in Visual Basic een functie kan koppelen aan het WM_CLOSE bericht.
Gebruik de Unload-event van een form.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17:24

Crazy D

I think we should take a look.

Idd, controleer in de form_unload of de verbinding nog open is, en zo ja, sluiten. Eventueel in de query unload een vraag (afhankelijk van het soort programma is dat 'wel handig' of 'reuze irritant') maar laat ajb gewoon lekker het kruisje doen wat ie altijd doet...
(doet me opeens denken aan een niet nader te noemen software pakket waarbij wijzigingen alleen werden opgeslagen via de Sluiten commandbutton, niet via het kruisje... en aangezien die Sluiten button bij wijze van spreken net zo groot was als het kruisje, en op een heel onlogische plek zit, klikte bijna niemand op Sluiten. Leg jij die logica maar eens uit aan een klant, zeker als die klant 2 tellen eerder Word afsloot via het kruisje, en fijn de vraag kreeg of de wijzigingen bewaard moesten blijven. Maar da's wel offtopic ;))

Exact expert nodig?

Pagina: 1