AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CanClose ändern???

Ein Thema von Muellermilchtrinker · begonnen am 6. Jun 2010 · letzter Beitrag vom 6. Jun 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#1

CanClose ändern???

  Alt 6. Jun 2010, 14:32
Delphi-Version: 2009
Hallo DP,

erstmal muss ich mich an das neue Design gewöhnen. Alles ist anders .

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:
procedure FClose;
begin
  ...
  close;
end;
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.
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.
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#2

AW: CanClose ändern???

  Alt 6. Jun 2010, 14:36
  PostMessage(Handle, CM_RELEASE, 0, 0); Das könntest du an deine Form schicken - dann wird die Form gefreet.
Lars
  Mit Zitat antworten Zitat
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#3

AW: CanClose ändern???

  Alt 6. Jun 2010, 14:45
Funktioniert leider nicht.
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: CanClose ändern???

  Alt 6. Jun 2010, 14:54
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#5

AW: CanClose ändern???

  Alt 6. Jun 2010, 16:27
Und wie mach ich das. Des würde ich ja gerne wissen.
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

AW: CanClose ändern???

  Alt 6. Jun 2010, 16:30
Kann deine Funktion die ein paar Sachen macht nicht im CanClose-Event aufgerufen werden und das Ergebnis ist dann True?
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#7

AW: CanClose ändern???

  Alt 6. Jun 2010, 16:42
Ich will aber nicht, dass man die Form mit Alt+F4 schließen kann.
PS: Ich will Strg+D auch noch deaktivieren. Ansatz??
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

AW: CanClose ändern???

  Alt 6. Jun 2010, 16:49
Delphi-Quellcode:
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;
Was macht denn Strg+D?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#9

AW: CanClose ändern???

  Alt 6. Jun 2010, 16:51
Delphi-Quellcode:
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;
Ungetestet, da direkt im Editor eingetippt.

[edit] Zu langsam *grmpf* [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#10

AW: CanClose ändern???

  Alt 6. Jun 2010, 16:53
Was macht denn Strg+D?
Upps ich meinte doch Win+D.
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:12 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