PDA

View Full Version : ايجادتايمر بدون گذاشتن كامپوننت رو فرم



mojtabadj
جمعه 28 تیر 1387, 00:25 صبح
سلام به تمام بچه ها من ميخوام بدون اينكه تايمر رو روي فرم بزارم خودم يك تايمر درست

كنم و اون رو اجرا كنم ولي يك قسمت كدش رو بليد نيستم اگه بشه دوستان راهنمايي كنند

متشكر ميشم

كد:





WTimer:=TTimer.Create(WTimer);
with WTimer do
begin
Enabled:=True;
Interval:=1000;
OnTimer:=؟;
end;




من تو onTimer مشكل دارم يك تابع تعريف كردم كار نميكنه . قابل توجه كه تمام كد تو يك


يونيت جداگانه است


تابع:




procedure WTimerTimer(Sender: TObject);
begin
end;

vcldeveloper
جمعه 28 تیر 1387, 07:14 صبح
قبلا بارها در اینباره توضیح داده شده...
تابعی که به عنوان Handler به یک Event اختصاص میدید، باید عضوی از یک کلاس باشه. اگر به تعریف TNotifyEvent دقت کنید، نوشته:

TNotifyEvent = procedure (Sender: TObject); of object;



با این توضیحات مشخص هست که چرا تابعی که تعریف کردید کار نمیکنه؛ چون متعلق به هیچ کلاسی نیست. برای حل مشکل می تونید مثلا تابع مربوطه را به عنوان یکی از متدهای یک از کلاس های موجود در برنامه تان تعریف کنید - مثلا کلاس مربوط به یکی از فرم های برنامه.