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, т.е. нужно использовать "специальную вставку" или придумать еще что-нибудь |
|
Evgenyy |
Отправлено: 05.01.2004, 14:43 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 8
|
СПАСИБО !! |
|