AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verfügbarer Platz in der Taskleiste

Ein Thema von Daniel B · begonnen am 29. Okt 2005 · letzter Beitrag vom 29. Okt 2005
Antwort Antwort
Benutzerbild von Daniel B
Daniel B

Registriert seit: 27. Okt 2005
Ort: Dachau
453 Beiträge
 
Delphi 2007 Professional
 
#1

Verfügbarer Platz in der Taskleiste

  Alt 29. Okt 2005, 00:25
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...
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Verfügbarer Platz in der Taskleiste

  Alt 29. Okt 2005, 00:30
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Verfügbarer Platz in der Taskleiste

  Alt 29. Okt 2005, 08:01
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Daniel B
Daniel B

Registriert seit: 27. Okt 2005
Ort: Dachau
453 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Verfügbarer Platz in der Taskleiste

  Alt 29. Okt 2005, 10:01
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.
Miniaturansicht angehängter Grafiken
dp_815.jpg  
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:27 Uhr.
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