Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi
Online

Registriert seit: 17. Jul 2005
878 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: eigenes Deskband über eigenes Programm steuern

  Alt 26. Nov 2006, 12:05
Ok, ich bin einen kleinen Schritt weitergekommen. Allerdings erscheint mir die Lösung nicht besonders sauber. Vor allem, weil sie nicht 100%ig funktioniert.
Ich kann jetzt (fast) verhindern, dass mein Deskband angezeigt wird, wenn meine andere Anwendung nicht läuft. Dazu setze ich einfach die Größe des Bandes auf 0:
Delphi-Quellcode:
 // in TDemoDeskBand.GetBandInfo
MyProgHandle:= FindWindow('MeinProgrammKlassenName',nil);
if MyProgHandle = 0 then
  begin
    pdbi.ptMinSize.x := 0;
    pdbi.ptMinSize.y := 0;
    pdbi.ptMaxSize.x := 0;
    pdbi.ptMaxSize.y := 0;
    pdbi.ptActual.x := 0;
    pdbi.ptActual.y := 0;
  end;
Es ist allerdings so, dass trotzdem etwas unsichtbares von der Breite eines Pixels gezeichnet wird, da sich das "DE" der Eingabegebietsschemaleiste um einen (oder zwei oder drei) Pixel verschiebt.Damit könnte ich zur Not leben.

Bleibt aber immer noch das andere Problem: Wie kann ich dafür sorgen, dass ggf. das Band aktualisiert wird, d.h. wie kann ich durch mein Programm die Taskleiste dazu bringen, mein Band neu zu zeichnen, wodurch (hoffentlich) die BandInfo-Prozedur aufgerufen wird, und dann (weil mein Fenster dann da ist) die Größe richtig gesetzt wird?
  Mit Zitat antworten Zitat