Вниз
Скачать: CL | DM;

Как скопировать в буфер всю строку из Grid?   Найти похожие ветки 

← →
serg128   (2004-08-05 10:40) [0]

Т.е. стоя на одной (или нескольких) строках в DBGrid, и при нажатии Ctrl+C как их скопировать в буфер? Чтобы потом можно было их вставить по Ctrl+V в Excel (или куда-то ещё)? Спасибо.


← →
Ega23 ©   (2004-08-05 10:43) [1]

Разделителями её, родимую, разделителями...


← →
Андрей Сенченко ©   (2004-08-05 10:46) [2]

Ega23 ©   (05.08.04 10:43) [1]

ИМХО так с этими разделителями в Эхель и вставится ... я так понял, что нужно сохранение собственно табличной структуры при копировании в буфер


← →
serg128   (2004-08-05 10:54) [3]

Да, нужно именно с сохранением табличной структуры


← →
REA ©   (2004-08-05 10:59) [4]

Tab = #9. Перевод строки #13#10
Вставляет посильнее Ctrl+v


← →
KSergey ©   (2004-08-05 11:00) [5]

Все там путево вставится
Разделяем табуляциями - и все
Можете при помощи блокнота проверить


← →
Андрей Сенченко ©   (2004-08-05 11:05) [6]

Хозяйке на заметку :)


← →
serg128   (2004-08-05 12:35) [7]

Работает, но в Excel вставляет в DOS-кодировке вставляет! Не подвкажете, как это побороть?


← →
Андрей Сенченко ©   (2004-08-05 12:55) [8]

Перед тем как копировать в буфер - перекодиуй Oem в Ansi


← →
serg128   (2004-08-05 13:04) [9]

Не работает: OemToChar и OemToAnsi


← →
Андрей Сенченко ©   (2004-08-05 13:15) [10]

работает. Код покажи


← →
serg128   (2004-08-05 14:07) [11]

Так работает:

 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";
 // &#224; &#242;&#243;&#242; &#226;&#251;&#227;&#240;&#229;&#225;&#224;&#229;&#236; &#241;&#238;&#228;&#229;&#240;&#230;&#232;&#236;&#238;&#229; &#226;&#251;&#228;&#229;&#235;&#229;&#237;&#237;&#251;&#245; &#240;&#255;&#228;&#238;&#226;
 for(int i=0; i<DBG->SelectedRows->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());
 // &#209;&#238;&#245;&#240;&#224;&#237;&#255;&#229;&#236; &#242;&#229;&#234;&#243;&#249;&#243;&#254; &#240;&#224;&#241;&#234;&#235;&#224;&#228;&#234;&#243; &#234;&#235;&#224;&#226;&#232;&#224;&#242;&#243;&#240;&#251;
 GetKeyboardLayoutName(c.c_str());
 // &#243;&#241;&#242;&#224;&#237;&#224;&#226;&#235;&#232;&#226;&#224;&#229;&#236; &#240;&#224;&#241;&#234;&#235;&#224;&#228;&#234;&#243; &#240;&#243;&#241;&#241;&#234;&#238;&#227;&#238; &#255;&#231;&#251;&#234;&#224;
 LoadKeyboardLayout("00000419", KLF_ACTIVATE);
 // &#241;&#239;&#232;&#241;&#251;&#226;&#224;&#229;&#236; &#241;&#238;&#228;&#229;&#240;&#230;&#232;&#236;&#238;&#229; &#226; &#225;&#243;&#244;&#229;&#240; &#238;&#225;&#236;&#229;&#237;&#224;
 Clipboard()->AsText = s;
 // &#226;&#238;&#231;&#226;&#240;&#224;&#249;&#224;&#229;&#236; &#232;&#241;&#245;&#238;&#228;&#237;&#243;&#254; &#240;&#224;&#241;&#234;&#235;&#224;&#228;&#234;&#243;
 LoadKeyboardLayout(c.c_str(), KLF_ACTIVATE);


← →
Андрей Сенченко ©   (2004-08-05 14:23) [12]

красиво ... минут 10 любовался ... OemToAnsi правда не нашел при этом



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.021 c
1-1091623105
cvg
2004-08-04 16:38
2004.08.22
Длина массива записей -- как???


8-1085508092
xman
2004-05-25 22:01
2004.08.22
Canvas


4-1089277426
Volodya_
2004-07-08 13:03
2004.08.22
CreateProcess


1-1091785644
Aldor_
2004-08-06 13:47
2004.08.22
EOleSysError "Class not registered"


10-1030551543
kavlad
2002-08-28 20:19
2004.08.22
CORBA-сервер, возвращающий файл.




   Наверх