View Full Version : اين كد چطوريه TLabel(ctrl).OnClick:= Label1_[array]click
علیرضا110
یک شنبه 26 مهر 1394, 14:05 عصر
باسلام
سوالم اينه كه چطوري ميشه procedure رابه صورت array نوشت كه نتيجه آن شبيه پايين بشه
procedure Label1_1click(Sender: TObject);
procedure Label1_2click(Sender: TObject);
در اصل
TLabel(ctrl).OnClick:= Label1_[array]click
يك چيزي تو اين مايه
پيشا پيش تشكر مي كنم
یوسف زالی
دوشنبه 27 مهر 1394, 10:27 صبح
سلام.
اونچه که در فکر دارید به نظر اشتباه می رسه.
با استفاده از Sender به سادگی می تونید همه رو در یک متد کنترل کنید:
for i := low(labelsArray) to high(labelsArray) do
begin
labelsArray[i].Tag := i;
labelsArray[i].OnClick := HandleClicks;
end;
procedure TForm1.HandleClicks(Sender: TObject);
begin
case TLabel(Sender).Tag of
0: DoSomething;
1: DoSomething;
2: DoSomething;
3: DoSomething;
4: DoSomething;
.
.
end;
end;
علیرضا110
دوشنبه 27 مهر 1394, 11:27 صبح
ممنون از جوابتون
ولي من مي خواهم ببينم آيا ميشود procedure به صورت array تعدادش را زياد كرد
مثلا:
procedure HandleClicks(Sender: TObject):array;
تا بتوان به طور جدا گانه يكي داشته باشيم
یوسف زالی
دوشنبه 27 مهر 1394, 12:06 عصر
نخیر. دلیلش هم اینه که پیاده سازی اون ها رو باید داشته باشید. اما می تونید متغیری از نوع پروسیجر داشته باشید:
var
procs: array of procedure;
or
array of TNotifyEvent
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.