PDA

View Full Version : من مي خواهم تمام DBEdit هاي يك فرم Hintشان DataFieldشان را نشان دهد.



ali_abbasi22145
شنبه 24 مرداد 1388, 10:04 صبح
سلام
من مي خواهم تمام DBEdit هاي يك فرم Hintشان DataFieldشان را نشان دهد.
من فعلا در Hint مربوط به employee_number نوشتم employee_number و براي همه DBEdit هاي فرم اين را مجبورم بنويسم و فرم من DBEdit هاي زيادي دارد و اين كار مشكل مي باشد.

Hsimple11
شنبه 24 مرداد 1388, 11:17 صبح
خب با FindComponent تمام Hint ها رو مساوی با نام فیلد قرار بدید. مثلا :


//DBeditCount:= تعداد DBedits
For I:=1 To DBeditCount Do
TِDBEdit(FindComponent('DBEdit'+IntToStr(i))).Hin t :=
MyTable.FieldName.AsString;

ali_abbasi22145
شنبه 24 مرداد 1388, 14:18 عصر
سلام
راهي هست كه تعداد DBEdit را شمرد؟
يا اصلا راه حل بهتري است؟

ali_abbasi22145
جمعه 17 مهر 1388, 09:42 صبح
كسي راه حل بهتري دارد؟

Hamid.Kad
جمعه 17 مهر 1388, 10:11 صبح
میتونید یه کلاس از TDBEdit مشتق کنید و در سازنده اون بنوییسید:

DBEdit1.Hint:= DBEdit1.DataField;
DBEdit1.ShowHint:= true;
البته به شرطی که مقدار DataField رو در زمان اجرا مقداردهی نمی کنید.

یا اینکه بنویسید:

for i:=0 to ComponentCount-1 do
if Components[i] is TDBEdit then
TDBEdit(Components[i]).Hint:= TDBEdit(Components[i]).DataField;

ali_abbasi22145
شنبه 18 مهر 1388, 11:07 صبح
سلام و تشكر
اينهم كاملش در OnCreatev:

for i:=0 to ComponentCount-1 do
begin//for
if Components[i] is TDBEdit then
begin
TDBEdit(Components[i]).ShowHint := True;
TDBEdit(Components[i]).Hint:= TDBEdit(Components[i]).DataField;
end
else if Components[i] is TDBComboBox then
begin
TDBComboBox(Components[i]).ShowHint := True;
TDBComboBox(Components[i]).Hint:= TDBComboBox(Components[i]).DataField;
end
else if Components[i] is TDBMemo then
begin
TDBMemo(Components[i]).ShowHint := True;
TDBMemo(Components[i]).Hint:= TDBMemo(Components[i]).DataField;
end;