Wysuwające sie okienko w prawym dolnym rogu
milyges
Oto procedura, która pokazuje wysuwające się okienko w prawym dolnym rogu ekranu. Reszta w komentarzach:
procedure ShowTrayForm(F: TForm);
var
i : Integer;
y, x : Word;
h : HWND;
tmp : PWindowPlacement;
begin
h := FindWindow('Shell_TrayWnd', nil); //Uchwyt paska zadań
GetMem(tmp, sizeOf(TWindowPlacement)); //Pamiec na info o oknie
GetWindowPlacement(h, tmp); //Pobieramy info o oknie
//Sprawdzamy gdzie leży pasek
if (tmp.rcNormalPosition.Bottom <> Screen.Height) then //Czy jest na gorze
begin
y := 0;
x := 0;
end
else if (tmp.rcNormalPosition.Top <> 0) then //Czy na dole
begin
x := 0;
y := tmp.rcNormalPosition.Bottom - tmp.rcNormalPosition.Top;
end
else if (tmp.rcNormalPosition.Top = 0) and //Czy z lewej
(tmp.rcNormalPosition.Left = 0) then
begin
x := 0;
y := 0;
end
else //Zostaje prawa
begin
x := tmp.rcNormalPosition.Right - tmp.rcNormalPosition.Left;
y := 0;
end;
FreeMem(tmp); //Zwolnienie pamieci
//Inicjujemy wlasnosci okna
i := 50;
F.Top := Screen.Height - i;
F.Left := Screen.Width - F.Width - x;
F.Show; //Pokazujemy okno
//wysuwamy w petli
repeat
i := i + 10;
Sleep(20);
F.Top := Screen.Height - i;
Application.ProcessMessages;
until i >= F.Height + y;
f.Top := Screen.Height - F.Height - y; //Tak dla pewnosci ze dobrze bedzie na koncu
end;
Poprostu trzeba dodac w OnCreate Form1 taka linijke:
ShowTrayForm(Form1, true);
Taki bajer dający możliwość zamykania. Działa tylko w winXP (chyba) ale super wygląda
i kiedy sie pokazuje te okno??
Przyda się.
Tego szukałem ;)
i kiedy się pokazuje to okno??
Hmm. Maz racje. Już poprawiłem
Jedna sprawa. W tym kodzie nie uwzgledniles tego, ze pasek zadan mozna sobie przesunac na boki i gore ekranu. Nie kazdy ma pasek zadan na dole. :)