![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGridEh. Как программно скопировать в буфер обмена?
noob_one © (2011-01-19 09:59:00)Клавишами это делается Ctrl+A, Ctrl+C.
Выделение всего нашел DBG.Selection.SelectAll;
Не могу найти как скопировать (
noob_one (2011-01-19 11:10:00) [1]Большое спасибо.
Дело в том что у DBGridEh копируются заголовки с форматированием, к тому же dataset у меня много полей которых нет в гриде.
Я нашел модуль DBGridEhImpExp а в нем процедуру DBGridEh_DoCopyAction. Работает медленно, но красиво.
Slym (2011-01-19 10:39:00) [2]procedure TForm1.EditCopy1Execute(Sender: TObject);
var Safe,s:string;
i,j:integer;
begin
with DBGrid1 do
begin
if SelectedRows.Count>0 then
begin
s:='';
DataSource.DataSet.DisableControls;
try
Safe:=DataSource.DataSet.Bookmark;
for i:=0 to SelectedRows.Count-1 do
begin
DataSource.DataSet.Bookmark:=SelectedRows.Items[i];
for j:=0 to DataSource.DataSet.FieldCount-1 do
begin
s:=s+DataSource.DataSet.Fields[j].AsString;
if j<DataSource.DataSet.FieldCount-1 then
s:=s+#9;
end;
s:=s+#13#10;
end;
DataSource.DataSet.Bookmark:=Safe;
finally
DataSource.DataSet.EnableControls;
end;
if s<>'' then
begin
Clipboard.Open;
try
Clipboard.AsText:=s;
finally
Clipboard.Close;
end;
end;
end;
end;
end;