Форум — Ответы     (  К темам )
 ?  Fant: Как сделать Сut, Copy, Past в StringGrid? (12-02-2003 11:57:44)
Кто нибудь писал функции Сut, Copy, Past в StringGrid? Мне надо перекинуть Clipboard() из Excel в StringGrid. Как это лучше сделать?
 Павел (12-02-2003 13:07:21)
Вряд-ли нормально получится.
Не лучше-ли вместо StringGrid использовать F1Book ?
 Fant (13-02-2003 16:03:52)
Я его победил!!!!!!!!!
Вставка из буфера Excel в StringGrid работает стопудово!
#define Grid(x,y) StringGrid->Cells[x][y]
void __fastcall TUVForm::NPastClick(TObject *Sender)
{
int nb=0, nw=0, x, y;
static char ch, str[7];
x = StringGrid->Col;
y = StringGrid->Row;
try{
do{
ch = Clipboard()->AsText.c_str()[nb];
switch (ch)
{
case '\t':
Grid(x++, y) = str;
while(nw!=0) str[nw--] = NULL;
break;
case '\r':
Grid(x, y++) = str;
while(nw!=0) str[nw--] = NULL;
x = StringGrid->Col;
break;
case '\n': break;
default:
if(ch == ',') ch = '.';
str[nw++] = ch;
}
}while(Clipboard()->AsText.c_str()[nb++]);
}catch(...){};
}
 Павел (14-02-2003 09:16:44)
Поздравляю !
 Alexander (17-03-2003 15:02:04)
Проблема на самом деле не только в этом. Если надо сделать копирование в текущую ячейку, причем в момент ее редактирования, то нужен доступ к свойству InplaceEditor. А оно определено как private в TCustomDrawGrid. Мне пришлось наследовать от TStringGrid и добавлять три метода — cut, copy, paste — из них обращение к inplace editor идет нормально.