![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как скопировать в буфер всю строку из Grid? [D5, Win2k]
serg128 © (2004-08-05 10:40:00)Т.е. стоя на одной (или нескольких) строках в DBGrid, и при нажатии Ctrl+C как их скопировать в буфер? Чтобы потом можно было их вставить по Ctrl+V в Excel (или куда-то ещё)? Спасибо.
Андрей Сенченко (2004-08-05 14:23:00) [1]красиво ... минут 10 любовался ... OemToAnsi правда не нашел при этом
serg128 (2004-08-05 14:07:00) [2]Так работает:
AnsiString s;
AnsiString c = DBG->DataSource->DataSet->Bookmark;
// Ñîáèðàåì çàãîëîâêè
for(int j = 0; j < DBG->Columns->Count; j++)
s += DBG->Columns->Items[j]->Title->Caption + "\t";
s += "\r\n \r\n";
// à òóò âûãðåáàåì ñîäåðæèìîå âûäåëåííûõ ðÿäîâ
for(int i=0; iSelectedRows->Count; i++)
{
DBG->DataSource->DataSet->GotoBookmark((void *)DBG->SelectedRows->Items[i].c_str());
for(int j = 0; j < DBG->Columns->Count; j++)
s += DBG->DataSource->DataSet->Fields->FieldByName(DBG->Columns->Items[j]->FieldName)->Text + " \t ";
s += " \r\n";
}
DBG->DataSource->DataSet->GotoBookmark((void*)c.c_str());
// Ñîõðàíÿåì òåêóùóþ ðàñêëàäêó êëàâèàòóðû
GetKeyboardLayoutName(c.c_str());
// óñòàíàâëèâàåì ðàñêëàäêó ðóññêîãî ÿçûêà
LoadKeyboardLayout("00000419", KLF_ACTIVATE);
// ñïèñûâàåì ñîäåðæèìîå â áóôåð îáìåíà
Clipboard()->AsText = s;
// âîçâðàùàåì èñõîäíóþ ðàñêëàäêó
LoadKeyboardLayout(c.c_str(), KLF_ACTIVATE);
Андрей Сенченко (2004-08-05 13:15:00) [3]работает. Код покажи
serg128 (2004-08-05 13:04:00) [4]Не работает: OemToChar и OemToAnsi
Андрей Сенченко (2004-08-05 12:55:00) [5]Перед тем как копировать в буфер - перекодиуй Oem в Ansi
serg128 (2004-08-05 12:35:00) [6]Работает, но в Excel вставляет в DOS-кодировке вставляет! Не подвкажете, как это побороть?
Андрей Сенченко (2004-08-05 11:05:00) [7]Хозяйке на заметку :)
KSergey (2004-08-05 11:00:00) [8]Все там путево вставится
Разделяем табуляциями - и все
Можете при помощи блокнота проверить
REA (2004-08-05 10:59:00) [9]Tab = #9. Перевод строки #13#10
Вставляет посильнее Ctrl+v
serg128 (2004-08-05 10:54:00) [10]Да, нужно именно с сохранением табличной структуры
Андрей Сенченко (2004-08-05 10:46:00) [11]Ega23 © (05.08.04 10:43) [1]
ИМХО так с этими разделителями в Эхель и вставится ... я так понял, что нужно сохранение собственно табличной структуры при копировании в буфер
Ega23 (2004-08-05 10:43:00) [12]Разделителями её, родимую, разделителями...