Programm beenden



  • Hi.

    Ich habe mir ein Menü gemacht.
    Ich habe ein Mneü File->Exit
    Sobald ich auf Exit klicke, beendet er das Programm, aber er fragt vor ob der jenige es wirklich beenden will.
    Wenn ich aber auf das X (rechts oben) klicke, soll er mich das auch fragen. Wie kann ich das abfangen??



  • schau dir mal das ereignis OnClose des hauptformulars an. insbesondere den Parameter TCloseAction &Action;

    Bsp.:

    if (SchliessenFrage = Nein)
    { Action = caNone;  
    }
    


  • Oder im OnCloseQuery-Ereignis



  • Ok, soweit habe ich das geschafft.
    Aber ich habe dann ein Problem mit dem Menü File->Exit.

    void __fastcall TForm1::Exit1Click(TObject *Sender)
    {
      FormClose(Sender,caHide);
    }
    
    void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
    {
      if(MessageBox(NULL,TEXT("Really exit???"),TEXT("Bonk Player"), MB_YESNO) == IDNO)
        Action = caNone;
      else
        Action = caFree;
    }
    

    Aber wenn ich über das Menü gehe, beendet der das nicht. Er bleibt immer gestartet..



  • Du musst bei deinem Menü nur noch "Close()" schreiben.
    Dann wird automatisch das FormClose-Ereignis ausgeführt!



  • Original erstellt von JeGr:
    Du musst bei deinem Menü nur noch "Close()" schreiben.
    Dann wird automatisch das FormClose-Ereignis ausgeführt!

    Oh, danke. Stimmt, habs vergessen. Ich glaub ich mach ne Pause.


Anmelden zum Antworten