Pojawiający się panel

0

Witam. Jak powinien wyglądać kod obsługujący takie zdarzenie:
Uruchamiam programik, i po 3 sekundach na formie pojawia się komponent panel?

0

Ustaw visible panelu na flase.
Wrzuc timer na forme interval ustaw na 3000 i w onTimer:

Panel1.Visible:=True;
Timer1.Enabled:= Flase;

0

Dzięki działa doskonale [hurra]

0

a jabym proponowal:

ustaw timer na 3000

begin
panel1.visible:=true;
timer1.destroy;
end;

ja tego zuywam jesli tylko cos raz chce uzyc za pomoca timera, operacja sie wykona i komponent destroy.. zmniejsza obciazenie systemu.. ale nie wiele......

0

timer1.destroy;

timer.free;
raczej - bezpieczniejszy

0

A czy free nie spowoduje błędu przy zamykaniu programu?? AFAIK forma próbuje zniszczyć wszystkie komponenty sama, a jak trafi na jakiś już zniszczony?

0

nic sie nie dzieje jak trafi na zniszczony komponent, po prostu omija go..... i juz :P

0

A czy free nie spowoduje błędu przy zamykaniu programu?? AFAIK forma próbuje zniszczyć wszystkie komponenty sama, a jak trafi na jakiś już zniszczony?

Wlasnie Destroy wywali blad jesli obiektu nie ma. Free najpierw sprawdza, czy jest co zwolnic, dlatego jest bezpieczniejszy. Warto czasem help czytac :-)

Do not call Destroy directly. Call Free instead. Free verifies that the object reference is not nil before calling Destroy.

0

Można też chyba tak :

[code]
var Panel : TPanel;
begin
Panel := TPanel.Create;
Panel.Left := xxx;
Panel.Top := zzz;
Timer1.Enabled := False;
[/code]

Ten kod oczywiście w Timerze o odpowiednim Intervalu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1