![]() |
Form in Taskleiste anzeigen lassen
Hallo Leute
Ich arbeite an einem Programm was bisher aus 1 Main-Form und 3 weiteren Formularen besteht. Ich möchte gerne 1 dieser Weiteren Formulare in der taskleiste anzeigen lassen... ist das theoretisch möglich? Liebe Grüße stho |
Re: Form in Taskleiste anzeigen lassen
Hallo,
ja das ist möglich. Um dem zweiten Fenster einen eigenen Eintrag in der Taskleiste zu spendieren, musst du folgende Funktion z.B. im FormCreate aufrufen:
Delphi-Quellcode:
Ciao Chris
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_APPWINDOW);
|
Re: Form in Taskleiste anzeigen lassen
Hast Du einmal versucht, CreateParams zu überschreiben?
Delphi-Quellcode:
[edit] Um Sekunden zu spät *grmpf* [/edit]
type
TZweitForm = class(TForm) ... protected procedure CreateParams(var Params: TCreateParams);override; ... end; ... procedure TZweitForm.CreateParams(var Params: TCreateParams); begin inherited; Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW; end; |
Re: Form in Taskleiste anzeigen lassen
Huhuuuuuuuuu *freuuuuuuuuuuuu*
Es klappt :thumb: Vielen Herzlichen Dank!!! [Edit] Aber eine Frage hätte ich trotzdem noch :oops: Die beiden anderen Formulare legen sich immer über das Hauptformular... ich kann das Haupt-Formular also nicht in den Vordergrund holen :-( Wie mache ich das denn? |
Re: Form in Taskleiste anzeigen lassen
Delphi-Quellcode:
oder
Application.MainForm.BringToFront
Delphi-Quellcode:
fallen mir spontan ein. Versuch mal einfach ;)
SetForegroundWindow(Application.MainForm.Handle)
|
Re: Form in Taskleiste anzeigen lassen
nun, ich bedanke mich schonmal bei dir für die schnelle Hilfe :-)
Bin noch relativ unerfahren was Delphi anbelangt,,, :oops: (naja, jeder fängt mal klein an ^^) aber was sind das was du dort benannt hast? Eigenschaften oder Prozeduren? Wo muss ich die auf rufen? Das sieht mir danach aus als würden sie die Haupt-Form in den Vordergrund bringen. (naja, im prinzip will ich das doch am besten nicht als einmaligen aufruf sondern eher als dauerhafte eigenschaft ^^) Denn Momentan verdecken beide meine Formen die Haupt-Form :-( (Wenn man auf den Kopf von einem Fenster klickt soll das automatisch im Vordergrund stehen. So wie bei normalen sich überlappenden Windoof-Ordnern) :gruebel: |
Re: Form in Taskleiste anzeigen lassen
Zeigst du die weiteren Formulare mit Show oder ShowModal?
ShowModal hat nämlich die Wirkung wie du sie beschrieben hast. |
Re: Form in Taskleiste anzeigen lassen
ich rufe die formulare mit
Form2.visible := True; auf... :-( Hoffe das beantwortet deine Frage. Wüsste sonst nicht wie ich sie beantworten sollte... |
Re: Form in Taskleiste anzeigen lassen
Versuchs mal mit
Delphi-Quellcode:
Form2.Show;
|
Re: Form in Taskleiste anzeigen lassen
ja, die form wird ja auch gezeigt. es ist nur leider nicht möglich form1 in den vordergrund zu holen... form 2/3 liegen immer darüber. ich muss die immer umständlich zur seite schieben um an form1 zu kommen (was nen bissel doof ist)
|
Re: Form in Taskleiste anzeigen lassen
Wie wär's mit...
Delphi-Quellcode:
...hilft das?
Form1.formStyle:=fsStayOnTop;
...Es ist leider nicht IMMER im Vordergrund :( Ich hatte da mal irgendwann eine Lösung - ich glaube, man musste das Parent auf 0 (Desktop) setzen :gruebel: Grüße, Der LDer |
Re: Form in Taskleiste anzeigen lassen
Klappt leider nicht :x
Naja, danke für den Versuch... aber wie stelle ich denn den Parent um? ich will das meine 3 Formen alle gleich behandelt werden... So das, wenn ich auf den Kopf von einer Klicke (wir gehen mal davon aus das sie übereinander liegen) das die angeklickte Form dann in den Vordergrund gesetzt wird... :wall: |
Re: Form in Taskleiste anzeigen lassen
Schafft das hier Abhilfe?
![]() |
Re: Form in Taskleiste anzeigen lassen
nein leider nicht :-( wie ich schon sagte brauch ich keine Funktion/Procedure sondern eine Eigenschaft die ich setze... :-(
aber danke für deine Mühe... |
Re: Form in Taskleiste anzeigen lassen
Haben die beiden "Unterfenster" evtl. den FormStyle fsStayOnTop? Das wäre zumindest eine Erklärung.
|
Re: Form in Taskleiste anzeigen lassen
Also zumindest habe ich kein Formstyle gesetzt...
habe nur diesen Aufruf benutzt:
Delphi-Quellcode:
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_APPWINDOW);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 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