Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Verfügbarer Platz in der Taskleiste (https://www.delphipraxis.net/55928-verfuegbarer-platz-der-taskleiste.html)

Daniel B 28. Okt 2005 23:25


Verfügbarer Platz in der Taskleiste
 
Hi,

kommt man an den Platz in der Taskleiste, neben den offenen Fenstern ran, ohne das ganze über die Breite und anzahl offener Fenster auszurechnen?

Gruss...

SirThornberry 28. Okt 2005 23:30

Re: Verfügbarer Platz in der Taskleiste
 
du könntest anhand der Classnames das Handle ermitteln von dem Fenster wo die Programmbtns drauf liegen.
Die Hierarchy ist wie folgt (Klassennamen)
Code:
Shell_TrayWnd
  ReBarWindow32
    MSTaskSwWClass
      ToolbarWindow32
Wenn man also das ToolbarWindow32 mit ShowWindow ausblendet würde man die Buttons für die Programme nicht sehen. Anstelle von Ausblenden kannst du natürlich auch die Breite dann ermitteln.

Mit folgendem Source könnte man also die größe abfragen
Delphi-Quellcode:
  function LGetHandle(AHandleSrc: Cardinal; var AHandleDst: Cardinal): Cardinal;
  begin
    AHandleDst := AHandleSrc;
    result := AHandleDst;
  end;
var LHandle: Cardinal;
    LPlacement: TWindowPlacement;
begin
  if LGetHandle(FindWindow('Shell_TrayWnd', nil), LHandle) <> 0 then
    if LGetHandle(FindWindowEx(LHandle, 0, 'ReBarWindow32', nil), LHandle) <> 0 then
      if LGetHandle(FindWindowEx(LHandle, 0, 'MSTaskSwWClass', nil), LHandle) <> 0 then
        if LGetHandle(FindWindowEx(LHandle, 0, 'ToolbarWindow32', nil), LHandle) <> 0 then
        begin
          if GetWindowPlacement(LHandle, @LPlacement) then
            ShowMessage(inttostr(LPlacement.rcNormalPosition.Right - LPlacement.rcNormalPosition.Left));
        end;
Das Problem ist das man dabei die breite bekommt welche für die Fenster vorgesehen ist. Man weiß aber damit nicht wieviel FensterBtns drauf plaziert sind und wieviel Platz diese In Anspruch nehmen. Man kann also höchstens schauen wieviel Platz neben der Fensterleiste ist.

Wozu brauchst du das ganze? Vielleicht gibt es ja für das Ziel welches du erreichen willst eine bessere Lösung wo dieser Wert keine Rolle spielt.

Luckie 29. Okt 2005 07:01

Re: Verfügbarer Platz in der Taskleiste
 
Es gibt eine API, um die Schaltflächen in der Taskbar zu managen. Frag mich aber nicht, wo du im PSDK die Dokumentation dazu findest. :(

Daniel B 29. Okt 2005 09:01

Re: Verfügbarer Platz in der Taskleiste
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von SirThornberry
Das Problem ist das man dabei die breite bekommt welche für die Fenster vorgesehen ist. Man weiß aber damit nicht wieviel FensterBtns drauf plaziert sind und wieviel Platz diese In Anspruch nehmen. Man kann also höchstens schauen wieviel Platz neben der Fensterleiste ist.

Wozu brauchst du das ganze? Vielleicht gibt es ja für das Ziel welches du erreichen willst eine bessere Lösung wo dieser Wert keine Rolle spielt.

In dem Platz, der neben den Leisten ist, bis nach rechts wo der Tray-Bereich mit der Uhr kommt, dann möchte ich was schreiben, aber dazu müsste ich prüfen ob überhaupt genug platz ist, wenn jemand mit den normalen Breiten arbeitet, dann darf unten nicht alles voll sein, 1-2 Leisten müssen noch fehlen für den Platz, denn wenn kein Platz da ist weil so viele offene Fenster sind, bzw. jemand pro Leiste schon die volle Breite nutzt, wär ja niemals Platz und ich muss meinen Text Alpha-Technisch auf'm Desktop einblenden.

Mal ein Foto gemacht, damit wir auch nicht aneinander vorbei reden, also der Abstand, zwischen den zwei Pfeilen, der ja immer davon abhängig ist, wieviele Fenster gerade offen sind.


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