![]() |
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 |
Re: Ereignis "Minimieren"
Jo es tauft sich OnMinimze
|
Re: Ereignis "Minimieren"
sorry hab ich vergessen: du musst ApplicationEvents von der Palette Zusätzlich einfügen, da gibts das!
|
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:
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).
procedure TForm1.CreateParams(var Params: TCreateParams);
begin inherited; Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW; end; |
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!
|
Re: Ereignis "Minimieren"
OK! Ich habe den Code einfach in { und } gesetzt, ihn also deaktiviert! Es geht aber trotzdem nicht... :gruebel:
|
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!
|
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:
schreibe, dann wird die Form genauso minimiert wie vorher, es entsteht also so ein komisches Fenster über dem Startbutton. Nix da mit Anwendung minimieren...
procedure TForm2.ApplicationEvents1Minimize(Sender: TObject);
begin application.Minimize; end; |
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!
|
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:
Hoffe du kannst mir weiterhelfen...
procedure TForm2.ApplicationEvents1Minimize(Sender: TObject);
begin application.Minimize; end; |
Re: Ereignis "Minimieren"
vielleicht funzt form1.application.minimze?
|
Re: Ereignis "Minimieren"
Wie soll ich das verstehen? Als extra procedure oder als Befehl (kann ja fast nicht sein!)?
|
Re: Ereignis "Minimieren"
nein du sollst einfach mal statt
Delphi-Quellcode:
procedure TForm2.ApplicationEvents1Minimize(Sender: TObject);
begin application.Minimize; end;
Delphi-Quellcode:
probieren!
procedure TForm2.ApplicationEvents1Minimize(Sender: TObject);
begin form1.application.Minimize; end; |
Re: Ereignis "Minimieren"
Das kann doch gar nicht gehen, da die Form ja nicht die Eigenschaft application hat... :gruebel:
|
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?!
|
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:
Da es das aber nicht gibt, habe ich ein kleines Problem... :lol:
procedure TForm1.FormMinimize(Sender: TObject);
begin application.Minimize; end; Hoffe, mir kann jemand helfen! |
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...
|
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] |
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! |
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:
Ich habe den Code nicht probiert, aber er müsste funzen
procedure TForm1.FormDeactivate(Sender: TObject);
begin if WindowState=wsMinimized then Application.Minimize; end; |
Re: Ereignis "Minimieren"
Cool! Es geht! Vielen Dank! :thuimb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11: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-2025 by Thomas Breitkreuz