PDA

View Full Version : طریقه کار کردن با کنترل Timer



b_mohammadpoor
پنج شنبه 23 بهمن 1382, 08:24 صبح
نحوه استفاده از کنترل Timer مثلا برای ایجاد وقفه زمانی به مدت چند ثانیه چگونه است ؟ اگر کسی میدونه لطفا به من کمک کنه :roll:

علیرضا مداح
پنج شنبه 23 بهمن 1382, 08:33 صبح
سلام دوست عزیز .
کنترل تایمر در مواقعی استفاده می شود که شما بخواهید که عمل را در وقفه زمانی خاص انجام دهید . کنترل تایمر دارای خاصیتی به نام Interval برای تعیین وقفه زمانی می باشد و بر حسب میلی ثانیه می باشد . مثلا برای تعیین وقفه به مدت 5 ثانیه باید در این خاصیت 5000 را وارد نمایید و پس از True کردن خاصیت Enabled کنترل تایمر (که معلوم می کند کنترل فعال است یا نه)کد مربوطه را که می خواهید هر پنج ثانیه اتفاق بیفتد را در رویداد مربوط به کنترل تایمر وارد نمایید .

b_mohammadpoor
جمعه 24 بهمن 1382, 15:38 عصر
من میخواهم که مثلا یک فرم خاص را برای مدت 4 ثانیه نشان بدهم و بعد بقیه برنامه اجرا شود لطفا من را راهنمایی کنید :|

canvas_for
جمعه 24 بهمن 1382, 15:48 عصر
بهترین راه استفاده از روش نشان دادن فرم های اسپلاش و delay دادن به مدت 4 ثانیه است

Mashatan
جمعه 24 بهمن 1382, 18:14 عصر
من میخواهم که مثلا یک فرم خاص را برای مدت 4 ثانیه نشان بدهم و بعد بقیه برنامه اجرا شود لطفا من را راهنمایی کنید :|

اینجور که فهمیدم میخوای NagScreen درست کنی
در 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:

اراداتمند
مشاطان

said ali
شنبه 25 بهمن 1382, 10:14 صبح
با سلام
دو تا سوال:
اول اینکه NagScreen چیه همون SplashForm یا یه چیز دیگه.
دوم اینکه چرا بعد از اینکه فرم رو cafree میکنید دوباره در اونت destroy با زاون رو برابر nil میکنید و این کار چه لزومی داره
با تشکر.

Mashatan
شنبه 25 بهمن 1382, 10:48 صبح
با سلام
دو تا سوال:
اول اینکه NagScreen چیه همون SplashForm یا یه چیز دیگه.
دوم اینکه چرا بعد از اینکه فرم رو cafree میکنید دوباره در اونت destroy با زاون رو برابر nil میکنید و این کار چه لزومی داره
با تشکر.

1- بله ، به عبارتی همون میشه :)

2- برای اینکه موقع Free کردن تمام Class از Memory برداشته میشه ولی آدرس در Form2 باقی میمونه ! اگر این کار رو نکنید میبینید که <span dir=ltr>Assigned(Form2)</span> درست کار نمیکنه .

ارادتمند
مشاطان

b_mohammadpoor
شنبه 25 بهمن 1382, 16:56 عصر
از کمک شما (Mashatan) خیلی ممنونم :wink:

said ali
یک شنبه 26 بهمن 1382, 04:20 صبح
با سلام
و همچنین ممنون :flower: .