icewind |
Отправлено: 18.07.2004, 20:45 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 12
|
Необходимо использовать StringGrid для отображения матриц (также должна быть возможность выделения/настройка цвета и т.д). Намучившись с параметрами компонента, в хелпе и на этом форуме нашел методы для "ручной прорисовки" Grid'а. Проблема в использовании метода DrawSell, он определен как виртуальный для класса TCustomGrid:
virtual void __fastcall DrawCell(int ACol, int ARow, const Types::
TRect &ARect, Grids::TGridDrawState AState);
Пожайлуста помогите использоать его для написания, например в Col0 и Row0 объекта StringGrid1, слова Hello. Раскажите подробнее о последних двух параметрах метода. По возможности дайте ссылки на статьи/ветки форумов по этому вопросу. |
|
MDM |
Отправлено: 19.07.2004, 08:29 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 23
|
QUOTE (icewind @ 18/07/2004, 21:47) | нашел методы для "ручной прорисовки" Grid'а. Проблема в использовании метода DrawSell, он определен как виртуальный для класса TCustomGrid:
virtual void __fastcall DrawCell(int ACol, int ARow, const Types::
TRect &ARect, Grids::TGridDrawState AState);
|
Нашел не то используй событие OnDrawCell();
/*Метод DrawCell нужен если ты пишешь свой компонент произв. от TCustomGrid*/
Пример найдешь так F1->Index->OnDrawCell->Enter или вот:
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, long Col, long Row, TRect &Rect, TGridDrawState State)
{
if(Col == 1 && Row == 1)
StringGrid1->Canvas->TextOut(0, 0, "Hello");
if (State.Contains(gdFocused))
StringGrid1->Canvas->DrawFocusRect(Rect);
}
|
|
|