Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi FormCloseQuery(?, true); (https://www.delphipraxis.net/69658-formclosequery-true-%3B.html)

agm65 18. Mai 2006 09:34


FormCloseQuery(?, true);
 
morgen leute....wollte dem close query aus der form close raus sagen , dass er jetzt schließen soll:

dachte einfach so : FormCloseQuery([?], true) aber was ist das sender objekt !

Muetze1 18. Mai 2006 09:36

Re: FormCloseQuery(?, true);
 
Du versuchst einen zugewiesenen Eventhandler aufzurufen. Dies löst aber nicht das Event aus sondern ist eine Folge des Events. Du musst das Schliessen der Form auslösen um dein Ziel zu erreichen:

Delphi-Quellcode:
procedure tform1.button1click(sender ...)
begin
  close;
end;
Die Methode Close löst das CloseQuery Ereignis aus und wenn mit True verlassen auch das schliessen der Form...

agm65 18. Mai 2006 09:38

Re: FormCloseQuery(?, true);
 
eigentlich dachte ich , ich könnte damit dem closequery sagen: CanClose := true damit er es dann schließt

Klaus01 18. Mai 2006 09:40

Re: FormCloseQuery(?, true);
 
mit CanClose:= true gibst Du nur die Erlaubnis
das Fenster zu schließen wenn danach gefragt wird.

Grüße
Klaus

agm65 18. Mai 2006 09:42

Re: FormCloseQuery(?, true);
 
ja genau, deswegen habe ich im query:

Delphi-Quellcode:
CanClose := false;
  if not CanClose then
    hide;

und jetzt wollte ich aus dem form close an form close query sagen canclose = true, damit er weiß jetzt kannste heim gehen ;) !

und da dachte ich an FormCloseQuery([?], true);

mfg

marabu 18. Mai 2006 09:48

Re: FormCloseQuery(?, true);
 
Nix gut so!

Du brauchst eine externe Variable, die du vor dem Aufruf von Close() setzt und im event handler für OnCloseQuery() abfragst. Siehe dein anderer thread.

Grüße vom marabu

agm65 18. Mai 2006 09:49

Re: FormCloseQuery(?, true);
 
ja alles klar dann mach ich das so :) danke :) !

happyaura 18. Mai 2006 11:06

Re: FormCloseQuery(?, true);
 
wenn Du form1.close aufrufst, wird vorher der Closequery durchgeführt.
bei mir kommt es z.B. bei sowas hier zur anwendung:
Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var i : integer;
    F : Textfile;
begin
  begin
    case MessageDlg('Sollen beim Schließen die Daten gespeichert werden?', mtConfirmation, [mbyes, mbno, mbcancel], 0) of
      mrYes:
      begin
        //<daten speichern>
        CanClose := true;
      end; //    mrYes:

      mrNo:
      begin
         //<Daten nicht speichern>
        CanClose := true;
      end; //    mrNo:

      else
      begin
        //<Prog nicht schließen>
        CanClose := false;
      end; //else
    end;//case
  end //if
end; // FormCloseQuery


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz