![]() |
Delphi-Version: 2009
CanClose ändern???
Hallo DP,
erstmal muss ich mich an das neue Design gewöhnen. Alles ist anders :-D. Aber back to topic: Ich setzte im CloseQuery Ereignis einer meiner Forms Canclose auf False. Jetzt ist das aber so. Ich möchte diese Form nur mit einer eigenen Prozedur beenden. D.h. ich hab meine Prozedur und die nenne ich jetzt mal als Beispiel FClose.
Delphi-Quellcode:
In dieser hab ich ein paar Anweisungen und danach soll sich die Form schließen. Da ich aber CanClose auf False gesetzt habe muss ich es ja wieder auf True setzen um die Form zu schließen.
procedure FClose;
begin ... close; end; Mein Problem ist aber, wie setze ich CanClose außerhalb vom CloseQuery Ereignis wieder auf True??? Ach und Application.Terminate kann ich nicht nutzen, weil mein Programm noch laufen soll. :stupid: |
AW: CanClose ändern???
Delphi-Quellcode:
Das könntest du an deine Form schicken - dann wird die Form gefreet.
PostMessage(Handle, CM_RELEASE, 0, 0);
|
AW: CanClose ändern???
Funktioniert leider nicht.
|
AW: CanClose ändern???
Wäre auch sinnfrei.
Wenn du Close selbst aufrufst, dann musst du vorher dafür sorgen, dass dein Ereignishandler CanClose dabei dann nicht auf False setzt. Fertig. Dafür bietet sich ein boolsches Feld des Formulars an. |
AW: CanClose ändern???
Und wie mach ich das. Des würde ich ja gerne wissen. :gruebel:
|
AW: CanClose ändern???
Kann deine Funktion die ein paar Sachen macht nicht im CanClose-Event aufgerufen werden und das Ergebnis ist dann True?
|
AW: CanClose ändern???
Ich will aber nicht, dass man die Form mit Alt+F4 schließen kann.
PS: Ich will Strg+D auch noch deaktivieren. Ansatz?? |
AW: CanClose ändern???
Delphi-Quellcode:
Was macht denn Strg+D?
type
TForm10 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); private { Private-Deklarationen } FCanClose: Boolean; public { Public-Deklarationen } end; var Form10: TForm10; implementation {$R *.dfm} procedure TForm10.Button1Click(Sender: TObject); begin FCanClose := True; Close; end; procedure TForm10.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose := FCanClose; end; procedure TForm10.FormCreate(Sender: TObject); begin FCanClose := False; end; |
AW: CanClose ändern???
Delphi-Quellcode:
Ungetestet, da direkt im Editor eingetippt.
type
TDeinForm = class(TForm) private FCloseAllowed: Boolean; ... procedure TDeinForm.CloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose := FCloseAllowed; end; procedure TDeinForm.MachZu; begin FCloseAllowed := true; Close; end; [edit] Zu langsam *grmpf* [/edit] |
AW: CanClose ändern???
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 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 by Thomas Breitkreuz