السلام عليكم
عندما ننشا حقول في clientdataset ونقوم بسحبها فهي تنشأ لنا dbcontrols بحسب الحقل.
السوال
هل يمكن فعل هذا وقت التنفيذ وكيف، او هل من افكار اخرى في حال تغير مسار datasource عن الجدول المنشأ وقت التصميم
السلام عليكم
نعم يمكن ربط الـ DataSource وقت التنفيذ
PHP كود :
DBEdit1.DataSource := DataSource1;
DBEdit1.DataField := 'Field1';
سلام
شكرا اولا،
ولكن المقصود انه في حال اضيف حقل وقت التنفيذ ان يقوم البرنامج بانشاء dbeditجديد لهذا الحقل
وعليكم السلام و رحمة الله
مثال
كود :
var
I : Integer;
dbedt : TDBEdit;
dbmemo : TDBMemo;
lbl : TLabel;
begin
for I := 0 to ClientDataSet1.Fields.Count-1 do
begin
if ClientDataSet1.Fields[i].DataType=ftMemo then
begin
lbl := TLabel.Create(self);
lbl.Caption:=ClientDataSet1.Fields[i].FieldName;
lbl.Top:=i*50;
lbl.Left:=50;
lbl.Parent:=self;
lbl.Visible:=true;
dbmemo := TDBMemo.Create(self);
dbmemo.DataSource:=DataSource1;
dbmemo.DataField:=ClientDataSet1.Fields[i].FieldName;
dbmemo.Top:=lbl.Top+20;
dbmemo.Left:=50;
dbmemo.Parent:=self;
dbmemo.Visible:=true;
end
else
begin
lbl := TLabel.Create(self);
lbl.Caption:=ClientDataSet1.Fields[i].FieldName;
lbl.Top:=i*50;
lbl.Left:=50;
lbl.Parent:=self;
lbl.Visible:=true;
dbedt := TDBEdit.Create(self);
dbedt.DataSource:=DataSource1;
dbedt.DataField:=ClientDataSet1.Fields[i].FieldName;
dbedt.Top:=lbl.Top+20;
dbedt.Left:=50;
dbedt.Parent:=self;
dbedt.Visible:=true;
end;
end;