Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Taskleiste (https://www.delphipraxis.net/51121-taskleiste.html)

Logh 6. Aug 2005 11:49


Taskleiste
 
hi,

ich hab folgenden code gefunden
Delphipraxis

es heißt an soll es in die OnShow methode schreiben.
es funzt aber an sieht ier noch, dass das Programm
kurz in der Taskleiste zu sehen ist.

Kann man das besser machen?

100nF 6. Aug 2005 11:54

Re: Taskleiste
 
hi,

probiers mal, indem du den code ins OnCreate-Ereignis schreibst. vielleicht funktionierts so...

gruss
urbanbruhin

Logh 6. Aug 2005 14:45

Re: Taskleiste
 
ne,

bei onCreate geht das irgend wie nich.

Nils_13 6. Aug 2005 15:14

Re: Taskleiste
 
Hi,

geht auch ein anderer Code ?
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var Owner : HWnd;
begin
  Owner:=GetWindow(Handle,GW_OWNER);
  ShowWindow(Owner,SW_HIDE);
end;

Luckie 6. Aug 2005 15:16

Re: Taskleiste
 
Bei mir flackert da nichts kurz in der Taskleiste:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
  ShowWindow(GetWindow(Handle,GW_OWNER),SW_HIDE);
end;

Nils_13 6. Aug 2005 15:18

Re: Taskleiste
 
Zitat:

Zitat von Luckie
Bei mir flackert da nichts kurz in der Taskleiste:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
  ShowWindow(GetWindow(Handle,GW_OWNER),SW_HIDE);
end;

Bei mir schon. Ich sehe kurz och das Icon.

Logh 7. Aug 2005 10:25

Re: Taskleiste
 
ja bei ir auch.

gibt es keine globale Lösung?

Ich mein die Programme die sich nicht in die Taskleiste
minimiren lassen, bei denen sieht man gar nichts in der
Taskleiste.

TStringlist 7. Aug 2005 11:28

Re: Taskleiste
 
Meinst du event. das Application.ShowMainForm? Beim Ausprobieren diese Property bitte vor dem Application.Run in der Haupt-Projektdatei auf False setzen:


Delphi-Quellcode:
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.ShowMainForm := false; // <---====
  Application.Run;
end.

ManuMF 15. Aug 2005 10:15

Re: Taskleiste
 
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ShowWindow(Application.Handle, SW_HIDE);
  SetWindowLong(Application.Handle, GWL_EXSTYLE,
                GetWindowLong(Application.Handle, GWL_EXSTYLE) or
                WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
  ShowWindow(Application.Handle, SW_SHOW);
end;
Das funktioniert bei mir. Kein kurzes Aufblitzen: Bei onShow ist es wohl schon zu spät (was aber von der CPU abhängt, wegen den Ein-/Ausblendeffekten).

Olli 15. Aug 2005 10:24

Re: Taskleiste
 
Normalerweise kann man auch Methoden überschreiben welche das Fenster erst erstellen. Dort muß dann einfach WS_EX_APPWINDOW ausmaskiert werden. Nicht anders macht man das ja bei diversen Controls, wenn die abgeleitet werden.

ManuMF 15. Aug 2005 11:38

Re: Taskleiste
 
Soweit ich verstanden habe, geht es darum, den Taskbareintrag nicht anzuzeigen, das Fenster aber schon.

Für das Fenster selbst würde application.ShowMainform := false; bei OnCreate reichen.

Olli 15. Aug 2005 11:46

Re: Taskleiste
 
Zitat:

Zitat von ManuMF
Soweit ich verstanden habe, geht es darum, den Taskbareintrag nicht anzuzeigen, das Fenster aber schon.

WS_EX_APPWINDOW ist ja genau dafür verantwortlich.

Zitat:

Zitat von ManuMF
Für das Fenster selbst würde application.ShowMainform := false; bei OnCreate reichen.

Na wenn das geht ist's doch wunderbar. Aber wäre diese Anweisung nicht bereits in der DPR besser aufgehoben als in OnCreate()? Oder verfehlt es da seine Wirkung? Ansonsten verstreut man Code, der eigentlich an einem Platz sein sollte, über das ganze Projekt.

ManuMF 15. Aug 2005 16:43

Re: Taskleiste
 
ShowMainForm kann natürlich auch im Projekt angegeben werden, ist beides das Gleiche. Ich schreib es gerne bei onCreate, da ich die DPR-Datei selten von Hand editiere.


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