PDA

View Full Version : تولید تایمر در یک کنسول



Zahed2008
پنج شنبه 26 دی 1387, 17:57 عصر
سلام، می خواستم بدونم چطوری می شه از یه کلاس TTimer در یه کنسول استفاده کرد.
من وقتی می خوام یه روال رو به OnTimer تایمری که Creat کردم، اختصاص بدم پیغام خطا می ده. در حالی که در یه برنامه اجرایی با فرم این خطا رو نمی ده.
ممنون می شم راهنماییم کنید.

arash_ebrahimi_nk
پنج شنبه 26 دی 1387, 23:23 عصر
یه نمونه ضمیمه کردم.

Zahed2008
شنبه 28 دی 1387, 14:50 عصر
سلام، ممنون از جوابتون. اگه می شه به من بگین که روالی که می خوام در هر ثانیه تکرار بشه رو باید کجا قرار بدم؟ من هر چی سعی کردم نشد. با تشکر.

Zahed2008
چهارشنبه 02 بهمن 1387, 10:57 صبح
سلام، کسی نمی دونه تو این نمونه داده شده روالی که می خوام در هر ثانیه تکرار بشه رو باید کجا قرار بدم؟

vcldeveloper
چهارشنبه 02 بهمن 1387, 12:52 عصر
بخوایم کد رو تر و تمیزش کنیم، میشه این:


program sample;

uses
Windows;

const
WM_TIMER = $0113;
TIMER_ID = 1001;
Sec = 1000;

var
mMsg: TMsg;

begin
try
if SetTimer(0, TIMER_ID, 3*Sec {= 3 seconds}, nil) > 0 then
try
while GetMessage(mMsg, 0 , 0, 0) do
begin
TranslateMessage(mMsg);
if (mMsg.message = WM_TIMER) then
begin
// Write your code here
end;
DispatchMessage(mMsg);
end;
finally
KillTimer(0, TIMER_ID);
end;
except E: Exception do
writeln('Error: ' + E.Message);
end;
end.

arash_ebrahimi_nk
چهارشنبه 02 بهمن 1387, 13:46 عصر
جناب Zahed2008 شما فقط میبایست killtimer رو زمانی که میخواستید timer متوقف بشه استفاده کنید، جایی که باید روال اجرا میشد که یه messagebox بود و مشخص بود.