Delphi 2007 の TDBGrid から選択した行を簡単にクリップボードにコピーする方法はありますか?
Steve
質問する
4127 次
1 に答える
5
このメソッドは、内部ライブラリユニットからのものです。
procedure BuildListFromDBGrid(DBGrid: TDBGrid; const FieldName: String; Strings :TStrings);
var
i: Integer;
begin
Strings.Clear();
with DBGrid do
begin
Strings.BeginUpdate(); // If assocated with a UI control (Listbox, etc), this will prevent any flickering
DataSource.DataSet.DisableControls();
try
for i := 0 to (SelectedRows.Count - 1) do
begin
Datasource.DataSet.GotoBookmark(Pointer(SelectedRows[i]));
Strings.Add(DataSource.DataSet.FieldByName(FieldName).AsString);
end;
finally
DataSource.DataSet.EnableControls();
Strings.EndUpdate();
end;
end;
end;
選択したアイテムのリストをクリップボードに取得するには、Clipbrdをuses句に追加し、プロシージャを呼び出します。
var
SelectedItems :TStringList;
begin
SelectedItems := TStringList.Create();
try
BuildListFromDBGrid(MyDBGrid, 'InvoiceID', SelectedItems);
Clipboard.AsText := SelectedItems.Text;
finally
SelectedItems.Free();
end;
end;
もちろん、上記の方法を変更したり、選択したアイテムをクリップボードに直接追加する新しい方法を作成したりすることもできます(たとえば、複数のフィールド、特殊な形式など)。
于 2008-12-29T13:15:42.877 に答える