Witam. Jak powinien wyglądać kod obsługujący takie zdarzenie:
Uruchamiam programik, i po 3 sekundach na formie pojawia się komponent panel?
Ustaw visible panelu na flase.
Wrzuc timer na forme interval ustaw na 3000 i w onTimer:
Panel1.Visible:=True;
Timer1.Enabled:= Flase;
Dzięki działa doskonale [hurra]
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......
timer1.destroy;
timer.free;
raczej - bezpieczniejszy
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?
nic sie nie dzieje jak trafi na zniszczony komponent, po prostu omija go..... i juz :P
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.
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.