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

 
TStringGrid
Andrey
Отправлено: 18.06.2003, 20:51


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







как можно изменить цвет фона любой ячейки и что бы текст тоже был виден.
Георгий
Отправлено: 18.06.2003, 21:54


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



сначала рисуем фон, а потом сам текст — в обработчике OnDrawCell пишем так:
CODE

TStringGrid* ptr;
ptr->Canvas->Brush->Color=newcolor;
ptr->Canvas->FillRect(ptr->CellRect(ACol,ARow));
    l=ptr->CellRect(ACol,ARow).Left+(ptr->ColWidths[ACol]-ptr->Canvas->TextWidth(ptr->Cells[ACol][ARow]))/2;
    u=ptr->CellRect(ACol,ARow).Top+(ptr->RowHeights[ARow]-ptr->Canvas->TextHeight(ptr->Cells[ACol][ARow]))/2;
    ptr->Canvas->TextRect(ptr->CellRect(ACol,ARow),l,u,ptr->Cells[ACol][ARow]);
ptr->Canvas->Brush->Color=oldBrush;

StringGrid->DefaultDrawing=false; — чтобы стандартный обработчик не тратил машинное время
Andrey
Отправлено: 19.06.2003, 18:46


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







спасибо

Вернуться в Вопросы программирования в C++Builder