Форум — Ответы     (  К темам )
 ?  Fant: Как в StringGrid сделать выделение блока мышью? (21-02-2003 09:20:57)
Как в StringGrid сделать выделение блока мышью?
Может кто-нибудь уже это делал...
 Владимир (21-02-2003 20:25:13)
Так и так мышкой все выделяется !
А получить что выделено можно используя свойство Selected

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TGridRect myRect;
myRect = StringGrid1->Selection;

Label1->Caption = myRect.Left;
Label2->Caption = myRect.Top;
Label3->Caption = myRect.Right;
Label4->Caption = myRect.Bottom;
}

//только учтите:
//Selection can only indicate more than one cell when Options includes goRangeSelect.
//-----------------------
 Владимир (21-02-2003 20:27:28)
Можно и самим программно выделить какую-либо область StringGrid

void __fastcall TForm1::Button2Click(TObject *Sender)
{
TGridRect myRect;
myRect.Left = 3;
myRect.Top = 1;
myRect.Right = 2;
myRect.Bottom = 3;
StringGrid1->Selection = myRect;
}
 Fnat (25-02-2003 11:31:40)
Спасибо, за ответы, но у меня немного другая задача...
Надо сделать выделение в StringGrid как в Excel по событию StringGridMouseDown.
К сожалению проект сделан в Builder3, а там StringGrid не поддерживает выделение мышью, придется писать руками через Canva :(
Может у кого есть другие идеи?
 Владимир (25-02-2003 16:26:37)
Перенести проект под C++Builder 6
Если есть исходники, никаких сложностей быть не должно.
 Fant (26-02-2003 09:55:55)
Было бы неплохо поставить C++Builder 6 на работе, но на 133Р и 3-ий идет со скрипом. Отбирать комп у начальника как то не хочется, а дома другие заморочки...
Проблемму я решил! Нарыл очень интересную функцию:
StringGrid->MouseToCell(X, Y, Col, Row);
Дальше дело техники. Спасибо за ответы, тоже пригодились.