نحوه استفاده از کنترل Timer مثلا برای ایجاد وقفه زمانی به مدت چند ثانیه چگونه است ؟ اگر کسی میدونه لطفا به من کمک کنه :roll:
نحوه استفاده از کنترل Timer مثلا برای ایجاد وقفه زمانی به مدت چند ثانیه چگونه است ؟ اگر کسی میدونه لطفا به من کمک کنه :roll:
سلام دوست عزیز .
کنترل تایمر در مواقعی استفاده می شود که شما بخواهید که عمل را در وقفه زمانی خاص انجام دهید . کنترل تایمر دارای خاصیتی به نام Interval برای تعیین وقفه زمانی می باشد و بر حسب میلی ثانیه می باشد . مثلا برای تعیین وقفه به مدت 5 ثانیه باید در این خاصیت 5000 را وارد نمایید و پس از True کردن خاصیت Enabled کنترل تایمر (که معلوم می کند کنترل فعال است یا نه)کد مربوطه را که می خواهید هر پنج ثانیه اتفاق بیفتد را در رویداد مربوط به کنترل تایمر وارد نمایید .
من میخواهم که مثلا یک فرم خاص را برای مدت 4 ثانیه نشان بدهم و بعد بقیه برنامه اجرا شود لطفا من را راهنمایی کنید :|
بهترین راه استفاده از روش نشان دادن فرم های اسپلاش و delay دادن به مدت 4 ثانیه است
اینجور که فهمیدم میخوای NagScreen درست کنینوشته شده توسط b_mohammadpoor
در Form ی که میخوای برای مدتی مشخص نمایش داده بشه یک TTimer بزار وبعد به صورت زیر عمل کن
procedure TForm2.FormShow(Sender: TObject);
begin
Timer1.Interval:=5000;
Timer1.Enabled:=True;
end;
procedure TForm2.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled:=False;
Form2.Close;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:= caFree;
end;
procedure TForm2.FormDestroy(Sender: TObject);
begin
Form2:=nil;
end;
و بعد در Form1 در OnShow و Button1Click اینو قرار بده :)
procedure TForm1.FormShow(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
Form2.Show;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Assigned(Form2) then begin
Application.CreateForm(TForm2, Form2);
Form2.ShowModal;
End;
end;
نکته که هست در Form2 خاصیت FormStyle رو بر روی fsStayOnTop قرار بده که همیشه بالا باشه
در کد هم از Form2.Show استفاده کردم و هم از Form2.ShowModal که هر کدموش که به دردت خورد استفاده کنی :wink:
اراداتمند
مشاطان
با سلام
دو تا سوال:
اول اینکه NagScreen چیه همون SplashForm یا یه چیز دیگه.
دوم اینکه چرا بعد از اینکه فرم رو cafree میکنید دوباره در اونت destroy با زاون رو برابر nil میکنید و این کار چه لزومی داره
با تشکر.
1- بله ، به عبارتی همون میشه :)نوشته شده توسط said ali
2- برای اینکه موقع Free کردن تمام Class از Memory برداشته میشه ولی آدرس در Form2 باقی میمونه ! اگر این کار رو نکنید میبینید که <span dir=ltr>Assigned(Form2)</span> درست کار نمیکنه .
ارادتمند
مشاطان
از کمک شما (Mashatan) خیلی ممنونم :wink:
با سلام
و همچنین ممنون :flower: .