Popularne okienka wyjeżdzające z krawędzi ekranu
Sheitar
Najpierw tuż pod implementation wklejamy kod
procedure WysunForme(Forma: TForm; Speed, Step, Wait: Integer; Wysow: Boolean);
begin
if Wysow then
begin
Forma.Top:=Screen.WorkAreaHeight;
Forma.Left:=Screen.WorkAreaWidth-Forma.Width;
repeat
Forma.Top:=Forma.Top-Step;
Application.ProcessMessages;
Sleep(Speed);
until Forma.Top-Step<=Screen.WorkAreaHeight-Forma.Height;
Forma.Top:=Screen.WorkAreaHeight-Forma.Height;
if Wait>0 then
begin
Sleep(Wait);
WysunForme(Forma, Speed, Step, Wait, not Wysow);
end;
end else begin
Forma.Top:=Screen.WorkAreaHeight-Forma.Height;
Forma.Left:=Screen.WorkAreaWidth-Forma.Width;
repeat
Forma.Top:=Forma.Top+Step;
Application.ProcessMessages;
Sleep(Speed);
until Forma.Top+Step>=Screen.WorkAreaHeight;
Forma.Top:=Screen.WorkAreaHeight;
end;
end;
Gdzie:
Speed - ilość ms pomiędzy kolejnym krokiem im mniej tym szybciej
Step - ilość o ile pixeli przesuwana będzie Forma z każdym krokiem
Wait - ile ms ma odczekać po wyjechaniu; jeśli ustawione na 0 to Forma zostaje w finałowej pozycji, jeśli większe niż 0 to forma czeka daną ilość ms i chowa się po tym czasie.
Wysow - okresla kierunek ruchu; True wysuwa, False chowa
Przykład użycia:
Załóżmy że jest forma [Form1] z tym kodem i jednym przyciskiem [Button1] pod kod zdarzenia OnClick dajemy:
if Button1.Tag=0 then
begin
WysunForme(Form1,10,2,0,True);
Button1.Tag:=1;
end else begin
WysunForme(Form1,10,2,0,False);
Button1.Tag:=0;
end;
Kolejne nacisnięcia przycisku spowodują naprzemienne wysuwanie się formy jak i jej chowanie. Aby wysnąć formę na np. 2s po czym powinna się automatycznie schować należy użyć tego kodu:
WysunForme(Form1,10,2,2000,True);
a jak wysunąć inną formę nie główną? (np. Unit3)????
wywala mi Undeclared Identifier 'WorkAreaHeight' oraz 'WorkAreaWidth' i tyle z kompilacji... Za stare Delphi? (5) :/
Uff jak dawno mnie nie było. Bardzo fajne naprawde mi sie przyda dzieki. Mam tyko pytanko jak nacisnie jeszcze raz Button to mi zjezdza w dół ale za bardzo co trzeba zmienic zeby nie zjezdzalo tak w dół ??
Super!! 5
Fajne!
I działa dzięki :)
Zaraz przetestuję to :)