Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fenster schließen - Abfrage (https://www.delphipraxis.net/27776-fenster-schliessen-abfrage.html)

aerotech 15. Aug 2004 16:39


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

Luckie 15. Aug 2004 16:53

Re: Fenster schließen - Abfrage
 
Kuck dir mal das Ereignis Delphi-Referenz durchsuchenOnCloseQuery von deinem Formular an.

MasterC 15. Aug 2004 16:55

Re: Fenster schließen - Abfrage
 
Delphi-Quellcode:
Action := cafree; //Form wird geschlossen
Action := canone //Form nicht schließen

Die Muhkuh 15. Aug 2004 16:58

Re: Fenster schließen - Abfrage
 
Zitat:

Zitat von MasterC
Delphi-Quellcode:
Action := cafree; //Form wird geschlossen
Action := canone //Form nicht schließen

Das geht aber nur in OnClose!


Wenn du OnCloseQuery (siehe Luckie) nimmst dann kannst du:

Delphi-Quellcode:
CanClose := true; //Kann geschlossen werden
CanClose := false; //Schließen verhindern
nehmen

mytar 15. Aug 2004 16:59

Re: Fenster schließen - Abfrage
 
Hierzu gibt es in der OH ein Beispiel mit caFree und caNone.

Es müsste die Delphi-Referenz durchsuchenTCloseAction sein.

Einfach mal nachschauen.

greetz
mytar :)

mytar 16. Aug 2004 10:27

Re: Fenster schließen - Abfrage
 
Ein Beispiel für das FormClose-Event:

Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin

  if MessageDlg('Beenden?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    Action := caFree
  else
    Action := caNone;

end;
greetz
mytar :)

aerotech 15. Jan 2005 15:02

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

toms 15. Jan 2005 15:05

Re: Fenster schließen - Abfrage
 
Zitat:

Zitat von aerotech
kommt ne Fehlermeldung

Hi,

Was für eine Fehlermeldung kommt denn?

aerotech 15. Jan 2005 15:11

Re: Fenster schließen - Abfrage
 
Delphi-Quellcode:
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(249): Incompatible types: 'TBasicAction' and 'TCloseAction'
[Error] Unit1.pas(250): Incompatible types: 'TBasicAction' and 'TCloseAction'
[Fatal Error] Project1.dpr(7): Could not compile used unit 'Unit1.pas'

malo 15. Jan 2005 15:13

Re: Fenster schließen - Abfrage
 
Zitat:

Zitat von aerotech
Delphi-Quellcode:
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(249): Incompatible types: 'TBasicAction' and 'TCloseAction'
[Error] Unit1.pas(250): Incompatible types: 'TBasicAction' and 'TCloseAction'
[Fatal Error] Project1.dpr(7): Could not compile used unit 'Unit1.pas'

Der Code muss auch ins OnClose nicht ins Label-OnClick ;)

aerotech 15. Jan 2005 15:16

Re: Fenster schließen - Abfrage
 
Zitat:

Zitat von malo
Zitat:

Zitat von aerotech
Delphi-Quellcode:
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(249): Incompatible types: 'TBasicAction' and 'TCloseAction'
[Error] Unit1.pas(250): Incompatible types: 'TBasicAction' and 'TCloseAction'
[Fatal Error] Project1.dpr(7): Could not compile used unit 'Unit1.pas'

Der Code muss auch ins OnClose nicht ins Label-OnClick ;)

Ja klar, aber ich möchte "auch" meinem Label mit der Caption -> Programm schließen diese Abfrage erteilen.....also n' Closelabel inkl Abfrage ob man wirklich schließen will. :|

malo 15. Jan 2005 15:20

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:
procedure TForm1.Label9Click(Sender: TObject);
begin
if MessageDlg('Serialarchiv wirklich schiließen?',mtwarning,[mbyes, mbno],0) = mryes then
Close;
end;
Wobei Delphi-Referenz durchsuchenclose nur das jeweilige Formular schließt, es sei denn, es ist das MainForm. Wenn das MainForm geschlossen wird, ist alles geschlossen.

Wenn du immer alles schließen willst, schlage ich dir statt close Delphi-Referenz durchsuchenApplication.Terminate vor ;)

Muetze1 15. Jan 2005 15:51

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

Chegga 15. Jan 2005 16:10

Re: Fenster schließen - Abfrage
 
Hi,

so geht's auch:

Delphi-Quellcode:
procedure TForm1.Label9Click(Sender: TObject);
var Knopf: Integer;
begin
  Knopf := Application.MessageBox('Serialarchiv wirklich schließen?', '', 1+16);
  if Knopf <> IDCancel then Close;
end;
MfG Marc

P.S.: Es müsste ein Warnkreuz in der Abfrage erscheinen.
Man kann auch Fragezeichen, Ausrufezeichen oder Infozeichen machen. :wink:

alcaeus 15. Jan 2005 17:32

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