Delphi-PRAXiS
Seite 5 von 5   « Erste     345   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Tray Icon von fremden Programm verschwinden lassen! (https://www.delphipraxis.net/60510-tray-icon-von-fremden-programm-verschwinden-lassen.html)

bitsetter 4. Mär 2008 08:08

Re: Tray Icon von fremden Programm verschwinden lassen!
 
zu 1.
Funktioniert bei mir unter WinXP das Icon wird unsichtbar. Damit die Toolbar um die Breite des versteckten Buttons kleiner wird musste ich allerdings erst auf den Button mit den Pfeil neben der Toolbar klicken.

Edit: Wenn man die Breite des übergeordneten Fensters um die Breite eines Toolbar- Buttons reduziert, dann kommt man auch ohne eine Klick auf den Button mit den Pfeil aus, habe es ausprobiert.


zu 2. :
Das du vor Sendmessage die Werte von TTBButtonInfo in den Prozess der Toolbar schreiben musst ist dir doch sicherlich klar?
Auch kannst du als letzten Prameter nicht einfach die Adresse einer Variablen aus deinem eigenen Prozess nehmen, das sieht bei dem Code von dir zumindest so aus.
Welchen Rückgabewert hat denn da Sendmessage?

Edit: TBSTATE_INDETERMINATE hatte keinen weiteren Vorteil gebracht.
2. funktioniert genauso wie 1. wenn man den Code entsprechend anpasst, habe es jetzt ausprobiert.

toms 9. Mär 2008 13:07

Re: Tray Icon von fremden Programm verschwinden lassen!
 
Zitat:

Zitat von bitsetter
Edit: TBSTATE_INDETERMINATE hatte keinen weiteren Vorteil gebracht.
2. funktioniert genauso wie 1. wenn man den Code entsprechend anpasst, habe es jetzt ausprobiert.

Könntest du mal die angepasste Version posten?

bitsetter 9. Mär 2008 20:50

Re: Tray Icon von fremden Programm verschwinden lassen!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von toms
1. + 2. scheinen keine Wirkung zu haben:

Habe gerade festgestellt wenn das Icon ganz links ist, dass das Verstecken des Button tatsächlich fehlschlägt. Kann sein, dass es unter anderen deshalb bei dir nicht funktionierte, ansonsten geht es aber. Eventuell kann man dann aber kurz vor dem Verstecken mit TB_MOVEBUTTON arbeiten.

toms 10. Mär 2008 18:10

Re: Tray Icon von fremden Programm verschwinden lassen!
 
Zitat:

Zitat von bitsetter
Zitat:

Zitat von toms
1. + 2. scheinen keine Wirkung zu haben:

Habe gerade festgestellt wenn das Icon ganz links ist, dass das Verstecken des Button tatsächlich fehlschlägt. Kann sein, dass es unter anderen deshalb bei dir nicht funktionierte, ansonsten geht es aber.

Ach so, darum hat es nicht funktioniert, weil mein Testicon immer ganz links war...

Für was genau sollte dieser Code gut sein?
Die TNA erscheint dann ganz links oben (meine Taskleiste ist links aligned)

Delphi-Quellcode:
if GetWindowRect(hTrayNotify, r) then
 if Windows.GetClientRect(hTrayNotify, r2) then
   if SetWindowPos(hTrayNotify, HWND_TOP,
     r.Left+ 16, r2.Top, r2.Right- 16, r2.Bottom,
     _NOZORDER or SWP_NOACTIVATE or SWP_NOCOPYBITS) then

bitsetter 10. Mär 2008 18:39

Re: Tray Icon von fremden Programm verschwinden lassen!
 
Zitat:

Zitat von bitsetter
Funktioniert bei mir unter WinXP das Icon wird unsichtbar. Damit die Toolbar um die Breite des versteckten Buttons kleiner wird musste ich allerdings erst auf den Button mit den Pfeil neben der Toolbar klicken.

Dafür, soviel Arbeit habe ich mir dann aber doch nicht gemacht, den Code bei jeder möglichen Position der Taskleiste auszuprobieren.
Meine Taskleiste sitzt ganz normal unten, dann geht es. Den Teil des Codes brauchst du ja nur auskommentieren, dann siehst du was ich meine.

Nachdem man das Icon wieder sichtbar gemacht hatte, musste ich die Breite des übergeordneten Fensters auch wieder entsprechend anpassen, ansonsten kam das Icon nicht zum Vorschein.

toms 23. Mär 2008 20:30

Re: Tray Icon von fremden Programm verschwinden lassen!
 
Zitat:

Zitat von bitsetter
Zitat:

Zitat von toms
1. + 2. scheinen keine Wirkung zu haben:

Habe gerade festgestellt wenn das Icon ganz links ist, dass das Verstecken des Button tatsächlich fehlschlägt. Kann sein, dass es unter anderen deshalb bei dir nicht funktionierte, ansonsten geht es aber. Eventuell kann man dann aber kurz vor dem Verstecken mit TB_MOVEBUTTON arbeiten.

Das erste sichtbare Icon könnte den Index x > 0 haben.
Dann wird beim Versuch das Icon mit Index 0 zu verstecken eben nicht das erste sichtbare Icon versteckt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:01 Uhr.
Seite 5 von 5   « Erste     345   

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