Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ereignis "Minimieren" (https://www.delphipraxis.net/20885-ereignis-minimieren.html)

Spurius 24. Apr 2004 18:24


Ereignis "Minimieren"
 
Hallo,
gibts es ein Ereignis was ausgelöst wird wenn man ein Formular minimiert, d.h. es ist nur noch in der Taskleiste sichtbar?
Ich will, dass wenn man rechts oben auf Minimieren klickt, ein bestimmtes Ereignis ausgelöst wird.
Gruß
Spurius

Meflin 24. Apr 2004 18:29

Re: Ereignis "Minimieren"
 
Jo es tauft sich OnMinimze

Meflin 24. Apr 2004 18:32

Re: Ereignis "Minimieren"
 
sorry hab ich vergessen: du musst ApplicationEvents von der Palette Zusätzlich einfügen, da gibts das!

S2B 24. Apr 2004 19:06

Re: Ereignis "Minimieren"
 
Geht das auch, wenn die Form keine MainForm der Anwendung ist? Bei mir nämlich nicht...
Ich hab für die Form mit
Delphi-Quellcode:
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
end;
einen Eintrag in der Taskbar erstellt. Wenn ich jetzt die Form minimiere, wird nur diese Form minimiert, die anderen bleiben im Vordergrund (auch, wenn ich in OnMinimize "application.minimize;" reinschreibe).

Meflin 24. Apr 2004 19:45

Re: Ereignis "Minimieren"
 
ich nehm an wenn du extra nen taskbar eintrag für ein childfenster erstellst, wirst du jedes fenster manuell minimieren müssen, wenn du eins minimierst!

S2B 24. Apr 2004 20:22

Re: Ereignis "Minimieren"
 
OK! Ich habe den Code einfach in { und } gesetzt, ihn also deaktiviert! Es geht aber trotzdem nicht... :gruebel:

Meflin 24. Apr 2004 20:34

Re: Ereignis "Minimieren"
 
hä wie was? wenn du ein applicationevents auf deine form plazierst und dort etwas ins OnMinimize Event schreibst, wird das auch ausgeführt sobald die form minimiert wird auf der sich die applicationevents befindet!

S2B 24. Apr 2004 21:46

Re: Ereignis "Minimieren"
 
Tut mir leid wenn ich dir widersprechen muss aber bei mir funzt des net! Wenn ich in einer nicht-Mainform
Delphi-Quellcode:
procedure TForm2.ApplicationEvents1Minimize(Sender: TObject);
begin
  application.Minimize;
end;
schreibe, dann wird die Form genauso minimiert wie vorher, es entsteht also so ein komisches Fenster über dem Startbutton. Nix da mit Anwendung minimieren...

Meflin 25. Apr 2004 12:00

Re: Ereignis "Minimieren"
 
ich glaube du verstehst da was falsch: OnMinimize wird ausgeführt, wenn die form minimiert wird, und hat prinzipiell erstmal garnix damit zu tun, WIE die form minimiert wird!

S2B 25. Apr 2004 12:12

Re: Ereignis "Minimieren"
 
:wiejetzt:
Ja, so hab ich das eigentlich auch verstanden (glaub ich :gruebel:). Also ich mag, dass wenn meine Nicht-Mainform Form1 minimiert wird, alle Formen minimiert werden, also "application.minimize;". Das müsste doch so gehen:
Delphi-Quellcode:
procedure TForm2.ApplicationEvents1Minimize(Sender: TObject);
begin
  application.Minimize;
end;
Hoffe du kannst mir weiterhelfen...

Meflin 25. Apr 2004 12:14

Re: Ereignis "Minimieren"
 
vielleicht funzt form1.application.minimze?

S2B 25. Apr 2004 12:22

Re: Ereignis "Minimieren"
 
Wie soll ich das verstehen? Als extra procedure oder als Befehl (kann ja fast nicht sein!)?

Meflin 25. Apr 2004 12:24

Re: Ereignis "Minimieren"
 
nein du sollst einfach mal statt
Delphi-Quellcode:
procedure TForm2.ApplicationEvents1Minimize(Sender: TObject);
begin
  application.Minimize;
end;
Delphi-Quellcode:
procedure TForm2.ApplicationEvents1Minimize(Sender: TObject);
begin
  form1.application.Minimize;
end;
probieren!

S2B 25. Apr 2004 12:29

Re: Ereignis "Minimieren"
 
Das kann doch gar nicht gehen, da die Form ja nicht die Eigenschaft application hat... :gruebel:

Meflin 25. Apr 2004 12:33

Re: Ereignis "Minimieren"
 
auch wieder war. aber erlich gesagt erkenn ich bis jetzt null sinn in dem was du vorhast :roteyes: villeicht gibts da auch ne bessere lösung?!

S2B 25. Apr 2004 12:40

Re: Ereignis "Minimieren"
 
Also dann sag ich's halt nochmal. :mrgreen:
Ich habe eine Form, die am Start meines Programms gelanden wird, die ist die MainForm des Programms. Wenn ich die minimiere, dann wird die ganze Anwendung minimiert! Nach ca. 5 Sekunden wird diese Form aber ausgeblendet und die eigentliche "Hauptform" des Programms wird sichtbar. Wenn ich die jetzt minimiere, dann wird nur diese Form minimiert, nicht aber alle anderen geöffneten Formen. Ich bräuchte also sowas:
Delphi-Quellcode:
procedure TForm1.FormMinimize(Sender: TObject);
begin
  application.Minimize;
end;
Da es das aber nicht gibt, habe ich ein kleines Problem... :lol:
Hoffe, mir kann jemand helfen!

Meflin 25. Apr 2004 12:42

Re: Ereignis "Minimieren"
 
dann musst du das minimize eben von der mainform ausführen. vielleicht funzt ja with form1 do begin minimize end? glaub ich zwar jetz auch net aber wer weis...

alcaeus 25. Apr 2004 12:48

Re: Ereignis "Minimieren"
 
Es gibt einen Grund, wieso die Komponente ApplicationEvents heißt, und nicht FormEvents. Das OnMinimize-Ereignis wird nur ausgelöst, wenn dein MainForm minimiert wird. Wie du es auf andere Forms erweitern kannst, weiß ich leider auch nicht...

[add]Das heißt, du willst sowas ähnliches wie bei Delphi machen? Sobald das Fenster mit dem Menü minimiert wird, geht der Rest auch weg...nur dass das bei allen Dialogen funzen soll?[/add]

S2B 25. Apr 2004 12:55

Re: Ereignis "Minimieren"
 
@Meflin: Das minimieren auszuführen wäre ja kein Problem, aber ich kann es nicht beim Minimieren der Nicht-MainForm ausführen lassen :!:

@alcaeus (zum add) Ja! Genauergesagt muss das nur mit einer Form funktionieren, aber das kommt ja aufs gleiche raus!

alcaeus 25. Apr 2004 13:01

Re: Ereignis "Minimieren"
 
Ich glaub ich hab was:

Das OnDeactivate-Ereignis des Forms wird ausgelöst, wenn der Focus zu einem anderen Form geht.
Die Eigenschaft WindowState gibt an, in welchem Status das Fenster ist.

In der Praxis müsste das dann so aussehen:
Delphi-Quellcode:
procedure TForm1.FormDeactivate(Sender: TObject);
begin
  if WindowState=wsMinimized then
    Application.Minimize;
end;
Ich habe den Code nicht probiert, aber er müsste funzen

S2B 25. Apr 2004 13:06

Re: Ereignis "Minimieren"
 
Cool! Es geht! Vielen Dank! :thuimb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 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