![]() |
Fenster schließen - Abfrage
Hi, ich brauch mal Hilfe in Sachen Delphi, und zwar wie kann ich eine Abwahlfrage erstellen, wenn man eine bestimmte Form schließt!? z.b. "Möchten Sie das Formular wirklich schließen? - Ja - Nein -" o.ä.
Wäre nett wenn mir da jemand weiterhelfen könnte. ;) |
Re: Fenster schließen - Abfrage
Kuck dir mal das Ereignis
![]() |
Re: Fenster schließen - Abfrage
Delphi-Quellcode:
Action := cafree; //Form wird geschlossen
Action := canone //Form nicht schließen |
Re: Fenster schließen - Abfrage
Zitat:
Wenn du OnCloseQuery (siehe Luckie) nimmst dann kannst du:
Delphi-Quellcode:
nehmen
CanClose := true; //Kann geschlossen werden
CanClose := false; //Schließen verhindern |
Re: Fenster schließen - Abfrage
Hierzu gibt es in der OH ein Beispiel mit caFree und caNone.
Es müsste die ![]() Einfach mal nachschauen. greetz mytar :) |
Re: Fenster schließen - Abfrage
Ein Beispiel für das FormClose-Event:
Delphi-Quellcode:
greetz
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin if MessageDlg('Beenden?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then Action := caFree else Action := caNone; end; mytar :) |
Re: Fenster schließen - Abfrage
Sehr gut, danke, aber wenn ich einem Button diesen Befehlr + Abfrage erteile kommt ne Fehlermeldung, wie lös ich da das Problem?!
|
Re: Fenster schließen - Abfrage
Zitat:
Was für eine Fehlermeldung kommt denn? |
Re: Fenster schließen - Abfrage
Delphi-Quellcode:
[Error] Unit1.pas(249): Incompatible types: 'TBasicAction' and 'TCloseAction'
procedure TForm1.Label9Click(Sender: TObject);
begin if MessageDlg('Serialarchiv wirklich schiließen?',mtwarning,[mbyes, mbno],0) = mryes then Action := caFree else Action := caNone; end; [Error] Unit1.pas(250): Incompatible types: 'TBasicAction' and 'TCloseAction' [Fatal Error] Project1.dpr(7): Could not compile used unit 'Unit1.pas' |
Re: Fenster schließen - Abfrage
Zitat:
|
Re: Fenster schließen - Abfrage
Zitat:
|
Re: Fenster schließen - Abfrage
Wenn du das so haben willst, dass man aufs label klicken kann und dann kommt die Abfrage, ob geschlossen werden soll, oder nicht, dann mach es doch so:
Delphi-Quellcode:
Wobei
procedure TForm1.Label9Click(Sender: TObject);
begin if MessageDlg('Serialarchiv wirklich schiließen?',mtwarning,[mbyes, mbno],0) = mryes then Close; end; ![]() Wenn du immer alles schließen willst, schlage ich dir statt close ![]() |
Re: Fenster schließen - Abfrage
Moin!
Dann mach lieber auf dem Label9Click einfach nur ein close und nix weiter und die Abfrage wie vorhin gepostet im OnCloseQuery. Die Abfrage kommt dann, wenn man auf das Label klickt genauso als wenn man direkt die Form über [X] schliesst. MfG Muetze1 |
Re: Fenster schließen - Abfrage
Hi,
so geht's auch:
Delphi-Quellcode:
MfG Marc
procedure TForm1.Label9Click(Sender: TObject);
var Knopf: Integer; begin Knopf := Application.MessageBox('Serialarchiv wirklich schließen?', '', 1+16); if Knopf <> IDCancel then Close; end; P.S.: Es müsste ein Warnkreuz in der Abfrage erscheinen. Man kann auch Fragezeichen, Ausrufezeichen oder Infozeichen machen. :wink: |
Re: Fenster schließen - Abfrage
Hi Chegga,
saemtliche Konstanten haben einen Namen. Es gibt also keinen Grund, 1+16 zu schreiben. Ich weiss gar nicht was das sein soll, und er sicher genausowenig ;) Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz