C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Копирование в буфер из DBGrid, Копирование в буфер из DBGrid
Evgenyy
Отправлено: 04.01.2004, 16:44


Ученик-кочегар

Группа: Участник
Сообщений: 8



В DBGrid можно выделить несколько строк.
А как их можно скопировать в буфер обмена, чтобы потом вставить, например в excel ?
*Helly*
Отправлено: 05.01.2004, 13:09


Не зарегистрирован







void __fastcall TForm1::Button1Click(TObject *Sender)
{
TStringList* Str = new TStringList;
Clipboard()->Open();
Clipboard()->HasFormat(CF_TEXT);
Str->Clear();

if (DBGrid1->SelectedRows->Count> 0)
{
AnsiString s = "";
TDataSet *pDS = DBGrid1->DataSource->DataSet;
for (int i=0; i < DBGrid1->SelectedRows->Count; i++)
{
pDS->GotoBookmark((void *)DBGrid1->SelectedRows->Items[i].c_str());
for (int j = 0; j < pDS->FieldCount; j++)
{
if (j>0)
s = s+"\t";

s = s + pDS->Fields->Fields[j]->AsString;
}
Str->Add(s);
s = "";
}
}
Clipboard()->SetTextBuf(Str->Text.c_str());
delete Str;
Clipboard()->Close();
}

Разве что при вставке Excel воспринимает этот текст по умолчанию в кодировке Unicode, т.е. нужно использовать "специальную вставку" или придумать еще что-нибудь smile.gif
Evgenyy
Отправлено: 05.01.2004, 14:43


Ученик-кочегар

Группа: Участник
Сообщений: 8



СПАСИБО !!

Вернуться в Работа с базами данных в C++Builder