PDA

View Full Version : مشکل در تایمر



یک شنبه 12 تیر 1384, 17:22 عصر
سلام
من یه timer بصورت دینامیکی ساختم
ولی وقتی میخوام به رویداد ontimer اون یه کدی نسبت بدم error میگیره
procedure timerexec;
//do something

var T:ttimer
T:=TTimer.create;
t.interval:=1000;
t.enabled:=true;
t.ontimer:=timerexec;// errror!

vcldeveloper
دوشنبه 13 تیر 1384, 04:34 صبح
T:=TTimer.create;


T := TTimer.Create(Self);

hr110
دوشنبه 13 تیر 1384, 07:08 صبح
متد شما باید اینطور تعریف شود:

procdure timerexec(Sender:TObject);
begin
.....
end;

دوشنبه 13 تیر 1384, 21:02 عصر
لطفا بفرمایید اشکال من در کجاست ؟


(procedure exec1(Sender:TObject;
begin
// do something
end


var T:TTimer;
T:=TTimer.Create(Form1);
T.Interval:=1;
T.Enabled:=True;
T.OnTimer:=exec1(Self);

در سطر آخر error زیر را میدهد

Incompatible types: 'TNotifyEvent' and 'procedure,untyped pointer or untyped parameter'
اگه سطر آخر رو اینجوری بنویسم T.ontimer:=timerexec; پیغام زیر میاد:

Incompatible types:'method pointer and regular procedure'
ممنون از توجهتون

vcldeveloper
سه شنبه 14 تیر 1384, 02:07 صبح
در سطر آخر error زیر را میدهد

Incompatible types: 'TNotifyEvent' and 'procedure,untyped pointer or untyped parameter'
شما باید تابع Exec1 رو به عنوان یک متد در کلاس فرم مربوطه تعریف کنید:


type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
procedure Exec1 (Sender:TObject);
public

end;
var
Form1: TForm1;

implementation
{$R *.dfm}
procedure TForm1.Exec1(Sender:TObject);
begin
// do something
end;

procedure TForm1.Button1Click(Sender: TObject);

var T:TTimer;
begin
T:=TTimer.Create(Form1);
T.Interval:=1;
T.Enabled:=True;
T.OnTimer:=exec1;
end;

HELAL301
یک شنبه 20 آذر 1384, 19:49 عصر
با عرض سلام
از یکی از دوستانی که به بحث تایمر مسلط می باشد درخواست کمک می کنم . چگونگی استفاده از تایمر در باز و بسته کردن فرمها بصورت آهسته را به بنده توضیح دهید . با تشکر

m-khorsandi
دوشنبه 21 آذر 1384, 12:04 عصر
HELAL301 به نظرت سئوالت چقدر به این تاپیک مربوط میشه.
شما سئوالتون رو در یک تاپیک جدید مطرح کنید و جواب بگیرید.