如何实现复制\粘贴多个DBGrid网格的数据,敬请大家指导学习,特别是数据类型的判断,我不知如何处理?
对于多个网格数据,我不知如何下手。
复制单个网格数据我是这样实现的:
type
Tmydbgrid = class(TDBGrid)
private
public
end;
procedure TmainForm.ToolButton_cutClick(Sender: TObject);
begin
if (dbgrid1.ReadOnly = false) and (ActiveControl is TDBGrid)
then begin
Tmydbgrid(DBGrid1).InplaceEditor.CutToClipboard;
end;
ToolButton_paste.Enabled := true;
end; procedure TmainForm.ToolButton_copyClick(Sender: TObject);
begin
if (dbgrid1.ReadOnly = false) and (ActiveControl is TDBGrid)
then begin
Tmydbgrid(DBGrid1).InplaceEditor.CopyToClipboard;
end;
ToolButton_paste.Enabled := true;
end; procedure TmainForm.ToolButton_pasteClick(Sender: TObject);
begin
if (dbgrid1.ReadOnly = false) and (ActiveControl is TDBGrid)
then begin
try
Tmydbgrid(DBGrid1).InplaceEditor.PasteFromClipboard;
except
end;
end; end; procedure TmainForm.ToolButton_cancelClick(Sender: TObject);
begin
adoquery1.Edit;
try
adoquery1.Cancel;
except
end;
end;
对于多个网格数据,我不知如何下手。
复制单个网格数据我是这样实现的:
type
Tmydbgrid = class(TDBGrid)
private
public
end;
procedure TmainForm.ToolButton_cutClick(Sender: TObject);
begin
if (dbgrid1.ReadOnly = false) and (ActiveControl is TDBGrid)
then begin
Tmydbgrid(DBGrid1).InplaceEditor.CutToClipboard;
end;
ToolButton_paste.Enabled := true;
end; procedure TmainForm.ToolButton_copyClick(Sender: TObject);
begin
if (dbgrid1.ReadOnly = false) and (ActiveControl is TDBGrid)
then begin
Tmydbgrid(DBGrid1).InplaceEditor.CopyToClipboard;
end;
ToolButton_paste.Enabled := true;
end; procedure TmainForm.ToolButton_pasteClick(Sender: TObject);
begin
if (dbgrid1.ReadOnly = false) and (ActiveControl is TDBGrid)
then begin
try
Tmydbgrid(DBGrid1).InplaceEditor.PasteFromClipboard;
except
end;
end; end; procedure TmainForm.ToolButton_cancelClick(Sender: TObject);
begin
adoquery1.Edit;
try
adoquery1.Cancel;
except
end;
end;
DBGRID,好像就是显示你看到那几条数据,其实数据都放在数据集(如adoquery)里
你指得复制是DBGRID的单元格还是DBGRID,如果是单元格的内容,你可以直接从数据集里复制剪切板上,
获得字段类型可用adoquery1.fieldbyname('a').Datatype;