![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа с буфером данных [D6]
ArtemB © (2003-03-26 07:25:00)Имеется таблица с записями...
Пользователь выделяет какие-то записи (Ctrl+Click мышки),
далее эти записи по Ctrl+C надо скинуть в буфер, чтобы потом их всавить в Exel, например...
Как это можно сделать???
(Да, еще хорошо бы чтоб шапка была как у таблицы в DBGrid)
Спасибо.
Наталия (2003-03-26 12:10:00) [1]Потому что:
1) В вопросе это явно прозвучало
2) Если объём текста большой, то через Clipboard значительно быстрее, чем при обращении к листу для каждого значения
_Shade (2003-03-26 10:21:00) [2]Наталия, а зачем Clipboard? Почему бы сразу не сложить в ёксель?
Наталия (2003-03-26 08:25:00) [3]делаешь цикл по выделенным записям и формируешь текстовую строку с разделителями:
Buff:=Buff+<нужные тебе данные>+"#9"+...+"#13"
Затем копируешь в Clipboard
Clipboard.clear;
Clipboard.astext:=Buff;
W.cells[16,1].select;
E.activesheet.paste;
BorisUK (2003-03-26 08:22:00) [4]Вот пример из DbGridEh
procedure TForm1.bbCopyClick(Sender: TObject);
begin
DBGridEh_DoCopyAction(DBGridEh1,False);
end;
procedure DBGridEh_DoCopyAction(DBGridEh: TCustomDBGridEh; ForWholeGrid: Boolean);
var ms: TMemoryStream;
begin
ms := nil;
Clipboard.Open;
DBGridEh.DataSource.Dataset.DisableControls;
try
ms := TMemoryStream.Create;
WriteDBGridEhToExportStream(TDBGridEhExportAsText, DBGridEh, ms, ForWholeGrid);
ms.WriteBuffer(PChar("")^, 1);
Clipboard_PutFromStream(CF_TEXT, ms);
ms.Clear;
WriteDBGridEhToExportStream(TDBGridEhExportAsCSV, DBGridEh, ms, ForWholeGrid);
ms.WriteBuffer(PChar("")^, 1);
Clipboard_PutFromStream(CF_CSV, ms);
ms.Clear;
WriteDBGridEhToExportStream(TDBGridEhExportAsRTF, DBGridEh, ms, ForWholeGrid);
ms.WriteBuffer(PChar("")^, 1);
Clipboard_PutFromStream(CF_RICH_TEXT_FORMAT, ms);
ms.Clear;
WriteDBGridEhToExportStream(TDBGridEhExportAsVCLDBIF, DBGridEh, ms, ForWholeGrid);
Clipboard_PutFromStream(CF_VCLDBIF, ms);
ms.Clear;
finally
ms.Free;
Clipboard.Close;
DBGridEh.DataSource.Dataset.EnableControls;
end;
end;
Если немного доработать то можно и шапку туда же вставлять...
ArtemB (2003-03-26 07:55:00) [5]Да любая таблица (что это важно?)
В DBGrid отображаем её, полльзователь выделяет записи какие он хочет скинуть в буфер (к примеру, по Cntrl+ClickMouse по заиси в DBGrid)...
Как мне скопировать то все выделенные записи (строки) BGrid,а
в бефер, а потом их там всавить в Exel???
_Shade (2003-03-26 07:39:00) [6]Пробовал читать мантры, но меня так и не просветлило на предмет того, что ты хотел сказать. Какая таблица, где имеется?