Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо