00 Stimmen

Delphi: Auf minimieren einer Form reagieren, OnMinimize

Frage von Chematik | 03.08.2012 um 13:43

Ich würde gerne eine Aktion in Delphi ausführen, sobald der Anwender die Form minimiert. Im Objektinspektor finde ich zwar alle möglichen Events, wie zum Beispiel OnClose und so weiter, aber OnMinimize finde ich dort nicht, und das bräuchte ich.

Wie kann man das realisieren? Geht das überhaupt?

AntwortenPositivNegativDatumStimmen
Avatar
11 Stimme

Suche mal nach der Komponente mit dem Namen TApplicationEvents. Diese Komponente stellt allerhand Ereignisse deiner Anwendung bereit, unter anderem auch dein gesuchtes OnMinimize.

Einfach die Komponente auf deine Form ziehen und unter OnMinimize den Code schreiben, der ausgeführt werden soll.
05.08.2012 um 15:54

AntwortenPositiv Negativ
Avatar
0Beste Antwort0 Stimmen

Die Lösung von Computer Experte funktioniert sicher ganz gut, es gibt aber Fälle, in denen die Lösung nicht praktikabel ist, da sich TApplicationEvents immer auf die gesamte Anwendung bezieht. Wenn du aber nur die Ereignisse einer bestimmten Form abfangen möchtest, kannst du folgenden Code verwenden:

//unter private deklarieren
private
  procedure WMSysCommand(var msg: TWMSysCommand);
     message WM_SYSCOMMAND;


//und hier die Prozedur
procedure TForm1.WMSysCommand(var msg: TWmSysCommand);
begin
  if msg.CmdType = SC_MINIMIZE then
  begin
    //hier dein Code, der ausgeführt werden soll
    exit;
  end;

  inherited;
end;

Mit der Prozedur fängst du alle Windows Messages ab, die an das Fenster gesendet werden. Beim Minimieren ist der Typ der Windows Message "SC_MINIMIZE" und du kannst darauf reagieren und deinen entsprechenden Code hinschreiben.

Wenn du das "exit" weglässt, wird danach noch die Standard-Aktion des Minimierens ausgelöst. Ansonsten nicht.
05.08.2012 um 16:10

AntwortenPositiv Negativ
Avatar
00 Stimmen

Danke! Hat mir sehr geholfen. Habe mit dieser Prozedur auf meiner Hauptform das Application-Event für den Minimize von meiner zweiten Form aus aufgerufen. Mein Ziel war es die gesamte Hauptform mit allen Unterformen zu minimieren, wenn ein Teilfenster minimiert wird.
01.08.2014 um 14:02

Positiv Negativ
Antworten
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.