Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Form in Taskleiste anzeigen lassen (https://www.delphipraxis.net/141229-form-taskleiste-anzeigen-lassen.html)

stho 5. Okt 2009 11:49


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

Chris.R 5. Okt 2009 12:19

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:
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_APPWINDOW);
Ciao Chris

DeddyH 5. Okt 2009 12:20

Re: Form in Taskleiste anzeigen lassen
 
Hast Du einmal versucht, CreateParams zu überschreiben?
Delphi-Quellcode:
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;
[edit] Um Sekunden zu spät *grmpf* [/edit]

stho 5. Okt 2009 13:47

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?

DeddyH 5. Okt 2009 13:55

Re: Form in Taskleiste anzeigen lassen
 
Delphi-Quellcode:
Application.MainForm.BringToFront
oder
Delphi-Quellcode:
SetForegroundWindow(Application.MainForm.Handle)
fallen mir spontan ein. Versuch mal einfach ;)

stho 5. Okt 2009 14:07

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:

Miolin 5. Okt 2009 14:16

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.

stho 5. Okt 2009 14:24

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...

Miolin 5. Okt 2009 14:44

Re: Form in Taskleiste anzeigen lassen
 
Versuchs mal mit
Delphi-Quellcode:
Form2.Show;

stho 5. Okt 2009 15:12

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)

LDericher 5. Okt 2009 15:51

Re: Form in Taskleiste anzeigen lassen
 
Wie wär's mit...
Delphi-Quellcode:
Form1.formStyle:=fsStayOnTop;
...hilft das?

...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

stho 6. Okt 2009 08:43

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:

DeddyH 6. Okt 2009 08:50

Re: Form in Taskleiste anzeigen lassen
 
Schafft das hier Abhilfe? http://www.swissdelphicenter.ch/de/showcode.php?id=261

stho 6. Okt 2009 09:31

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...

DeddyH 6. Okt 2009 09:36

Re: Form in Taskleiste anzeigen lassen
 
Haben die beiden "Unterfenster" evtl. den FormStyle fsStayOnTop? Das wäre zumindest eine Erklärung.

stho 6. Okt 2009 10:12

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