يمكن وضع صورة داخل dbgrid باتباع الطريقة المبينة في المثال التالي
1- نبدأ تطبيق جديد.
2- نظيف عنصر : ClientDataSet
3- في الإطار الخاص بخصائص العنصر (Inspector Objects)- نضغط على الثلاث نقاط بجانب الخاضية (TFieldDefs) - وننشأ ثلاثة حقول كما يلي :
5- نظيف العناصر :
1- نبدأ تطبيق جديد.
2- نظيف عنصر : ClientDataSet
3- في الإطار الخاص بخصائص العنصر (Inspector Objects)- نضغط على الثلاث نقاط بجانب الخاضية (TFieldDefs) - وننشأ ثلاثة حقول كما يلي :
- الكود:
Idpers ftAutoInc
Nom ftString
Photo ftTypedBinary
5- نظيف العناصر :
- الكود:
DataSource1,DbGrid1,DBNavigator1,dbImage1,OpenPictureDialog1.
procedure TForm2.FormCreate(Sender: TObject);
begin
DataSource1.DataSet:=ClientDataSet1;
Dbgrid1.DataSource:=DataSource1;
DbNavigator1.DataSource:=Datasource1;
DbImage1.DataSource:=DataSource1;
DbImage1.DataField:='photo';
DbImage1.Visible:=false;
dbimage1.Stretch:=true;
if fileexists('essai.cds') then
ClientDataSet1.LoadFromFile('essai.cds');
ClientDataSet1.Open ;
end;
procedure TForm2.DBGrid1ColExit(Sender: TObject);
begin
dbimage1.Visible:=false;
end;
procedure TForm2.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if column.ID>0 then
if (gdFocused in State) then
with DBImage1 do
begin
Left :=2*Rect.Left + DBGrid1.Left ;
Top :=Rect.Top + DBGrid1.Top ; ;
Visible := True;
bringtoFront ;
end;
end;
procedure TForm2.DBImage1DblClick(Sender: TObject);
begin
if openpicturedialog1.Execute(handle) then
dbimage1.Picture.LoadFromFile(openpicturedialog1.filename);
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ClientDataSet1.SaveToFile('essai.cds',dfbinary);
end;
عدل سابقا من قبل Foxtromike في الثلاثاء أبريل 04, 2017 1:08 pm عدل 1 مرات