با عرض سلام و خسته نباشد خدمت دوستان عزیز.
یک سئوالی داشتم این که چه شکلی این کار زیر انجام بدم؟؟؟
من یک فرم دارم و یک دکمه فقط همین بعد می خواهم وقتی روی دکمه کلیک کردم یک Label روی فرم به مختصات دلخواه که کجای فرم باشه ایجاد کنم.
بعد وقتی روی Label ایجاد شده دو بار کلیک کردم یک پیغام چاپ کنه (منظورم رویداد دو بار کلیک چطوری براش بنویسم).
بعد از این که ساختم می خواهم روی یکی از تب های PageControl1 قرار بگیره.
با تشکر فراوان از شما دوستان عزیز.
خب مهندس شما که گفتی فقط یه دکمه رو فورم هست پس این page control1 از کجا اومد؟ :d
همون اول لیبل رو بزار رو page control
کد زیر رو ببین
کد:
private
procedure dblclick(sender:TObject);
procedure TForm1.dblclick(sender:TObject);
begin
ShowMessage((sender as TLabel).Caption);
end;
procedure TForm1.btn1Click(Sender: TObject);
var
lbl:TLabel;
begin
lbl:=TLabel.Create(self);
lbl.Parent:=ts2;
lbl.Caption:='lord_viper';
lbl.Top:=100;
lbl.Left:=300;
lbl.Width:=55;
lbl.Height:=30;
lbl.OnDblClick:=DblClick;
end;
برای قرار دادن رویداد برای یک کامپوننت در زمان اجرا باید یک تابع مشابه تابع اون رویداد(البته از لحاض پارامتر)بسازی بعد اونو به اون رویداد بدی مثل تابع DblClick که به رویداد OnDblClick لیبل چسبانده شد
سلام
شرمنده این تاپیک رو مجدد آوردم بالا
چند تا سوال دارم
فرض توسط تابه
کد:
procedure TForm1.btn1Click
شما چندین لیبل ساختید.
حالا چه طور میشه در زمان RunTime برای هر کدوم از لیبل ها یه event( مثل رویداد کلیک) تعریف کرد؟؟
چه طور میشه کاری کرد که event تمام کلیدها ساخته شده یکسان باشه؟
فرض کنید که 10 تا لیبل ( یا shape) ساختید ، چطور میشه که رویداد حرکت تمامی لیبل ها رو ایجاد کرد؟چطور میشه یه تابع رو برای چندتا از رویداد ها اختصاص داد؟؟؟)
من یه سوال
اینجاپرسیدم اما تا به الان کسی جواب نداده
(البته جواب رو پیدا کردم اما سوال ، سوال میاره)
.
.
.
می خوام زمانی که چندتا shape در زمان runtime ساختم بتونم هر کدوم رو جداگانه حرکت بدم؟؟
با کد زیر
کد:
private
procedure dblclick(sender:TObject);
procedure TForm1.dblclick(sender:TObject);
begin
ShowMessage((sender as TLabel).Caption);
end;
procedure TForm1.btn1Click(Sender: TObject);
var
lbl:TLabel;
begin
lbl:=TLabel.Create(self);
lbl.Parent:=ts2;
lbl.Caption:='lord_viper';
lbl.Top:=100;
lbl.Left:=300;
lbl.Width:=55;
lbl.Height:=30;
lbl.OnDblClick:=DblClick;
end;
در اینجا رویداد به دابل کلیک (lbl.OnDblClick:=DblClick;)اضافه شده شما میتونین تغییرش بدین به OnClick
و میتونین کلید زیر رو در گوگل جستجو کنید
assign event dynamic object delphi
توی گوگل سرچ کنی کلی مطلب میاره