2009-10-12 11 views

Antwort

16

Was Sie wollen, ist ein application desktop toolbar

Sie müssen verwenden Sie die TAppBarData Objekt deklariert in der ShellAPI Einheit und die SHAppBarMessage Funktion aufgerufen.

Siehe dieses einfache Beispiel.

type 
    TApplicationTaskBar = class(TForm) 
    procedure FormCreate(Sender: TObject); 
    procedure FormDestroy(Sender: TObject); 
    private 
    procedure CreateParams(var Params: TCreateParams); override; 
    public 
    { Public declarations } 
    end; 

var 
    ApplicationTaskBar: TApplicationTaskBar; 

implementation 

{$R *.dfm} 

Uses 
ShellAPI; 

procedure TApplicationTaskBar.CreateParams(var Params: TCreateParams); 
begin 
    inherited; 
    Params.ExStyle := Params.ExStyle or WS_EX_TOOLWINDOW; 
    Params.Style := (Params.Style OR WS_POPUP) AND (NOT WS_DLGFRAME); //Remove title Bar 
end; 

procedure TApplicationTaskBar.FormCreate(Sender: TObject); 
var 
    MyTaskBar : TAppBarData; 
begin 
    GlassFrame.Enabled  :=True;//Activate Glass , optional 
    GlassFrame.SheetOfGlass :=True;//optional 
    Left:=0; 
    Top :=0; 
    Width := 300; 
    Height:= Screen.Height; 
    FillChar(MyTaskBar, SizeOf(TAppBarData), 0); 
    MyTaskBar.cbSize := SizeOf(TAppBarData); 
    MyTaskBar.hWnd := Handle; 
    MyTaskBar.uCallbackMessage := WM_USER+777; //Define my own Mesaage 
    MyTaskBar.uEdge := ABE_LEFT; 
    MyTaskBar.rc  := Rect(0, 0, Width, Height); 
    SHAppBarMessage(ABM_NEW, MyTaskBar); 
    SHAppBarMessage(ABM_ACTIVATE, MyTaskBar); 
    SHAppBarMessage(ABM_SETPOS, MyTaskBar); 
    Application.ProcessMessages; 
end; 


procedure TApplicationTaskBar.FormDestroy(Sender: TObject); 
var 
    MyTaskBar : TAppBarData; 
begin 
    FillChar(MyTaskBar, SizeOf(TAppBarData), 0); 
    MyTaskBar.cbSize := SizeOf(TAppBarData); 
    MyTaskBar.hWnd := Self.Handle; 
    SHAppBarMessage(ABM_Remove, MyTaskBar); 
end; 

prüfen diese Links

Bye.

+0

Danke. Genau das, was ich brauchte –