PDA

View Full Version : کنترل TTimer در دلفی


GhAeM
29 November 2005, 11:10 AM
سلام
می خواستم بدونم چطور میشه از یه تایمر در یک پروژه بدون فرم استفاده کرد ؟!!!
در حالت بدون فرم میشه از تابع Timer1Timer(Sender: TObject); استفاده کرد تا مثلآ هر 60 ثانیه یکبار یه کار انجام بشه ؟:icon_ques

فكر كنم اگه يه چرخه 1 تا60 تو يونيت اصلي ايجاد كنيد اين امكان باشه! يعني هي از 1 تا 60 بشماره و بعد يه كاري رو انجام بده دوباره صفر بشه و...
البته اگه ميخوايد فقط يه كار انجام بده

Programmer
29 November 2005, 08:30 PM
سلام
منظورتون از چرخه چیه ؟ منظورتون یه حلقه نیست که ؟ !!
راهی نداره که از تایمر استفاده کنم ؟
شاید هم بشه از زمان استفاده کرد.

GhAeM
30 November 2005, 11:32 AM
اين چيزي بود كه به نظر من اومد يعني يه حلقه repeat .
اما متاسفانه فعلا نمينونم تست كنم كه ميشه از تايمر استفاده كرد يا نه! بايد ديد جناب دخت عصمتي چه نظري دارند

Dokht Esmati
14 January 2006, 01:16 AM
ایمیلی بابتِ این پستِ شما به من ارسال نشده بود. به همین دلیل جوابتون رو با تاخیر می فرستم.
اگر درست منظورتون رو متوجه شده باشم جواب رو از پیوست خواهید گرفت.
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ActnList;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);

تا این جا که هیچ!
باید عنوان تابعی که قرار است تکرار شود را این جا بیاورید :
procedure Action1Execute(Sender: TObject);

این ها هم هیچ :
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}{$R windowsXP.res}

متنِ تابع ِ موردِنظر این جا آورده می شود :


procedure TForm1.Action1Execute(Sender: TObject);
begin
form1.Caption:=timetostr(now);
end;


و هر جا قصدِتکرار این تابع را داشتید ، از این کدها استفاده کنید (امیدوارم با مفهموم شئی گرایی آشنا باشید)

procedure TForm1.Button1Click(Sender: TObject);
var
t:TTimer;
begin
t:=TTimer.Create(self);
t.Interval:=100;
t.OnTimer:=Action1Execute;
t.Enabled:=true;
end;
end.


موفق باشید:icon_cool

Dokht Esmati
14 January 2006, 01:18 AM
این هم پیوست