Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Titelleiste der Form abfragen ? (https://www.delphipraxis.net/78877-titelleiste-der-form-abfragen.html)

-=cats=- 12. Okt 2006 14:03


Titelleiste der Form abfragen ?
 
Hi :hi:

Gibt es eine auch für einen Anfänger gut
verständliche Möglichkeit, herauszufinden
welches Symbol in der Titelleiste der
Form angeklickt wurde ?

Z.B. ob der Benutzer auf "Maximieren" geklickt
hat ?
Ich möchte eine bestimmte Aktion ausführen,
wenn auf eines dieser Symbole geklickt wurde.

Vielen Dank schon mal für die Hilfe :)

-=cats=- :coder:

TurboMartin 12. Okt 2006 14:16

Re: Titelleiste der Form abfragen ?
 
Du nutzt ganz einfach ein ApplicationEvents aus Additional / Zusätzlich.
Dann wird dabei ein Event ausgelöst.

-=cats=- 12. Okt 2006 14:22

Re: Titelleiste der Form abfragen ?
 
Hmm ... :gruebel: so ganz
versteh ich das nicht.
Sorry, hab noch nicht viel Ahnung von Delphi ... :?
Also, wie kann ich diesem ActionEvent sagen, das
es was tun soll wenn auf maximieren geklickt wurde ?
Ich verstehe nicht ganz, wie ich an dieses "maximieren"
rankommen soll. Wie ich darauf zugreife.
Woher weiß das Action Event, das darauf geklickt wurde ?
Oder bekommt das generell alles mit ?

:coder2:

Luckie 12. Okt 2006 14:33

Re: Titelleiste der Form abfragen ?
 
Du setzt die Komponente ApplicationEvents auf dein Formular und dann schreibst du deinen Code in das entsprechende Ereignis:
Delphi-Quellcode:
procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
  ShowMessage('Minimieren');
end;
(Doppelklick im Objectinspector in das entsprechende Ereignis, dann wir dir der Methodenrumpf automatisch erstellt.)

TurboMartin 12. Okt 2006 14:37

Re: Titelleiste der Form abfragen ?
 
Zitat:

Zitat von -=cats=-
Hmm ... :gruebel: so ganz
versteh ich das nicht.
Sorry, hab noch nicht viel Ahnung von Delphi ... :?
Also, wie kann ich diesem ActionEvent sagen, das
es was tun soll wenn auf maximieren geklickt wurde ?

Schritt für Schritt:
1. Du öffnest auf der Komponentenleiste den Registerkartenreiter Additional (englische Versionen) oder Zusätzlich (deutsche Version).
2. Nun suchst du das Icon von ApplicationEvents und ziehst es auf die Form.
3. Nun gehst du im Object Inspector auf den Registerkartenreiter Events.
4. Nun wählst du dort ein Event aus und doppelklickst datauf.
5. Nun gibst du im Editor, der sich öffnet den Code ein, denn er bei diesem Event ausführen soll.


Zitat:

Zitat von -=cats=-
Ich verstehe nicht ganz, wie ich an dieses "maximieren"
rankommen soll. Wie ich darauf zugreife.
Woher weiß das Action Event, das darauf geklickt wurde ?
Oder bekommt das generell alles mit ?
:coder2:

Die Komponente findet alles alleine heraus. Beim klicken auf solch ein Button versendet Windows eine Message an das Fenster. Diese fängt die Komponente ab.

PS: Vergess Delphi nicht zu starten :mrgreen:

-=cats=- 12. Okt 2006 14:45

Re: Titelleiste der Form abfragen ?
 
Zitat:

Zitat von TurboMartin
PS: Vergess Delphi nicht zu starten :mrgreen:

:tongue: :lol:

Erst mal vielen Dank für die ausführliche Erklärung :)

Ich denke, jetzt hab ich es begriffen :)

Eine Frage hab ich allerdings noch:
Bei den Ereignissen dieses ActionEvents, da gibt es
ein onMinimize.
Was mach ich wenn ich maximieren möchte ?
Das mit dem Minimieren hat hingehaun. Das er dann z.B.
nen Text anzeigt oder sowas.

TurboMartin 12. Okt 2006 14:53

Re: Titelleiste der Form abfragen ?
 
Zitat:

Zitat von "-=cats
Bei den Ereignissen dieses ActionEvents, da gibt es
ein onMinimize.
Was mach ich wenn ich maximieren möchte ?
Das mit dem Minimieren hat hingehaun. Das er dann z.B.
nen Text anzeigt oder sowas.

Ich versteh es mal als was ist dort OnMaximize: OnRestore! :mrgreen:

-=cats=- 12. Okt 2006 14:55

Re: Titelleiste der Form abfragen ?
 
Naja ... also dieses OnRestore hab ich
natürlich auch mal ausprobiert ;)

Aber das macht ja nur was, wenn das Prog
minimiert war (in die Taskleiste) und Du
dann wieder draufklickts, damit es wieder
maxmiert wird.
Was ich meine ist aber das "Maximieren"-Symbol
in der Titelleiste ...
Oder hab ich das jetzt falsch verstanden ?

TurboMartin 12. Okt 2006 15:00

Re: Titelleiste der Form abfragen ?
 
Probier mal:
Delphi-Quellcode:
procedure TForm1.FormResize(Sender: TObject);
begin
  if WindowState = wsMaximized then
  begin
    //hier der Code
  end;
end;

-=cats=- 12. Okt 2006 15:05

Re: Titelleiste der Form abfragen ?
 
Vielen Dank :)

Die Idee ist nicht schlecht.
Allerdings klappt es jetzt nur, wenn ich
erst auf "Ursprungsgröße" (also die
beiden sich überlappenden Fenster) gehe,
anschließend auf maximieren und dann wieder
auf "Ursprungsgröße".
Sehr sehr verzwickt ...
Mein Programm wird übrigens im Vollbild
ohne Titelleiste gestartet.
Vielleicht liegt es ja daran ... :gruebel:


Ok, ich habe es jetzt hinbekommen so
wie ich es haben möchte.
Jetzt hab ich nur noch ein Problem (hoffentlich nur dieses
eine ... ;)): Wie blende ich die Titelleiste wieder ein?

So blende ich sie aus:

Delphi-Quellcode:
SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) AND NOT WS_CAPTION);
Das habe ich in einem Buch gefunden. Aber wie blende ich sie dann wieder ein ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:18 Uhr.
Seite 1 von 2  1 2      

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