چه دستوری بنویسم که کل event handler برای تمام DBEdit ها یک کار را انجام دهند؟
سلام
چه دستوری بنویسم که کل event handler مثلا MouseMove ها برای تمام DBEdit ها یک کار را انجام دهند؟
یعنی یکی یکی برای هر کل DBEdit ها ننویسم مثلا :
procedure TDynamicForm.First_nameMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
First_name.Hint := First_name.Text;
end;
نقل قول: چه دستوری بنویسم که کل event handler برای تمام DBEdit ها یک کار را انجام دهند؟
باید از پارامتر Sender برای این کارها استفاده کنی
و همچنین میتونی از یک حلقه for برای نسبت دادن پروسیجر ها استفاده کنی
مثلا اینطوری
for 1 :=0 to form1.controlscount-1 do
if form1.controls[i] is tedbedit then
Tdbedit(Form1.controls[i]).onmouseMove:=First_nameMouseMove;
نقل قول: چه دستوری بنویسم که کل event handler برای تمام DBEdit ها یک کار را انجام دهند؟
سلام
مرسی چک کردم خطا می دهد!
لطفا یک برنامه ساده دلفی کنید و attach کنید اینجا:
فکر کنم اینجا نوشته هاش درهم برهم شده
نقل قول: چه دستوری بنویسم که کل event handler برای تمام DBEdit ها یک کار را انجام دهند؟
اگر منظورتون اينه كار نمي كند
for i:=0 to DynamicForm.ControlCount -1 do
if DynamicForm.Controls[i]is TDBEdit then
begin
TDBEdit(DynamicForm.Components[i]).OnMouseMove := First_nameMouseMove;
end;
نقل قول: چه دستوری بنویسم که کل event handler برای تمام DBEdit ها یک کار را انجام دهند؟
سلام
نمیدونم چرا انقدر سختش میکنید؟
اگر قراره همه ی dbedit ها یک کار انجام دهند مثلا در onclick یکی از dbedit ها یک فرمان بنویسید،بعد در قسمت event بقیه dbedit ها روی مثلث کوچیکه بزنید،تا لیستی بیاید و در آن لیستonclick آن dbedit رو پیدا کنید مثلا:
در dbedit1 یک فرمان نوشته ام.
در آن event یک dbedit2 روی مثلث کوچیکه انتخاب میکنم و onclickdbedit1 رو پیدا میکنم.
حالا dbedit2 هم فرمان dbedit1 رو انجام میدهد.
فقط اگر فرمان برای هر dbedit جداگانه باید انجام بشود باید از اسم کامپوننت component[i].name استفاده شود.
نقل قول: چه دستوری بنویسم که کل event handler برای تمام DBEdit ها یک کار را انجام دهند؟
از evenhandlerها نیز میتونی استقاده کنی
نقل قول: چه دستوری بنویسم که کل event handler برای تمام DBEdit ها یک کار را انجام دهند؟
نقل قول:
نوشته شده توسط
ali_abbasi22145
اگر منظورتون اينه كار نمي كند
for i:=0 to DynamicForm.ControlCount -1 do
if DynamicForm.Controls[i]is TDBEdit then
begin
TDBEdit(DynamicForm.Components[i]).OnMouseMove := First_nameMouseMove;
end;
چه خطایی میده لطفا خطا رو بنویس به ببینم مشکل کجاست
نقل قول: چه دستوری بنویسم که کل event handler برای تمام DBEdit ها یک کار را انجام دهند؟
نقل قول:
نوشته شده توسط
ابوالفضل عباسی
سلام
نمیدونم چرا انقدر سختش میکنید؟
اگر قراره همه ی dbedit ها یک کار انجام دهند مثلا در onclick یکی از dbedit ها یک فرمان بنویسید،بعد در قسمت event بقیه dbedit ها روی مثلث کوچیکه بزنید،تا لیستی بیاید و در آن لیستonclick آن dbedit رو پیدا کنید مثلا:
در dbedit1 یک فرمان نوشته ام.
در آن event یک dbedit2 روی مثلث کوچیکه انتخاب میکنم و onclickdbedit1 رو پیدا میکنم.
حالا dbedit2 هم فرمان dbedit1 رو انجام میدهد.
فقط اگر فرمان برای هر dbedit جداگانه باید انجام بشود باید از اسم کامپوننت component[i].name استفاده شود.
ما سختش نمیکنیم عزیزم
اینی که شما میگی در موقع طراحی کاربرد داره نه اجار
اگه فرضا من صد تا کنترل داشته باشم به نظرت میتونم بیام یکی یکی اینا رو انتخاب کنم و بعد بهشون پروسیجر نسبت بدم؟
این کدی که نوشتم هیچ مشکلی نداره و خودم صد ها بار ازش استفاده کردم
پس اگه خطایی داره مربوط به سینتکس هستش
بفرمایید تا مشکل رو برطرف کنیم
نقل قول: چه دستوری بنویسم که کل event handler برای تمام DBEdit ها یک کار را انجام دهند؟
نقل قول:
نوشته شده توسط
mm26363@yahoo.co.uk
از evenhandlerها نیز میتونی استقاده کنی
شما بفرمایید یعنی چه؟
نقل قول: چه دستوری بنویسم که کل event handler برای تمام DBEdit ها یک کار را انجام دهند؟
ایشون به سوال خودشون جواب میده.
روش اقا هادی کاملا درسته . و امتحان شده است.ولی من برای edit هایی که عملیات های مشابه ای دارند از پروسیجر استفاده میکنم.