PDA

View Full Version : چگونگی گرفتن اشیاءی که parent آنها رو نمیشه مشخص کرد؟



Delphi-Man
سه شنبه 24 شهریور 1388, 15:12 عصر
سلام
برای اشیاءی که براشون parent میشه مشخص کرد مثلا می تونیم بنویسیم:


TLabel(FindComponent('label1')).caption:='sth';

حالا من یک تایمر میذارم روی فرم و همینکارو می کنم.... به خوبی میشناستش... ولی یک timer به صورت runtime ایجاد می کنم. اونوقت دیگه نمیشه. چون parent اون مشخص نیست.
برای اشیاءی که parent نمیشه براشون تعیین کرد باید چیکار کرد؟

Mahmood_M
سه شنبه 24 شهریور 1388, 15:44 عصر
برای اشیاءی که parent نمیشه براشون تعیین کرد باید چیکار کرد؟
مشکل از Parent نیست ، برای این کار ابتدا Procedure مورد نظر رو می نویسید و بعد اون رو در زمان ساخت تایمر به رویداد OnTimer مربوط به تایمر مرتبط میکنید :



type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Label1: TLabel;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
procedure OnTimer(Sender: TObject);
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.OnTimer(Sender: TObject);
begin
TLabel(FindComponent('label1')).caption := 'sth';
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
T : TTimer;
begin
T := TTimer.Create(Nil);
T.Enabled := False;
T.OnTimer := OnTimer;
T.Enabled := True;
end;

end.


موفق باشید ...

Delphi-Man
سه شنبه 24 شهریور 1388, 16:33 عصر
مشکل از Parent نیست ، برای این کار ابتدا Procedure مورد نظر رو می نویسید و بعد اون رو در زمان ساخت تایمر به رویداد OnTimer مربوط به تایمر مرتبط میکنید :



type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Label1: TLabel;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
procedure OnTimer(Sender: TObject);
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.OnTimer(Sender: TObject);
begin
TLabel(FindComponent('label1')).caption := 'sth';
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
T : TTimer;
begin
T := TTimer.Create(Nil);
T.Enabled := False;
T.OnTimer := OnTimer;
T.Enabled := True;
end;

end.
موفق باشید ...
با سلام
ممنون ... ظاهرا من منظورم رو خوب بیان نکردم. من می خوام اینکارو انجام بدم:


ttimer(findcomponent('created_timer1'))...

یعنی تایمر رو بگیرم و یه کاری روش انجام بدم. البته میشه از همون اول تایمر رو توی یه متغیر نگه داشت که همیشه بهش دسترسی داشته باشیم ولی من می خوام از اسمش بگیرمش.
با تشکر

Delphi-Man
سه شنبه 24 شهریور 1388, 16:57 عصر
عذر می خوام . حل شد دوستان... مشکل از جای دیگه ای بود.
با تشکر فراوان