** Николай |
Отправлено: 16.01.2006, 12:00 |
|
Не зарегистрирован
|
Вообщм пишу такое событие:
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
StringGrid1->Canvas->Font->Color = clGreen;
}
Но почему то ничего не красится... В чем ошибка подскажите??? |
|
Asher |
Отправлено: 16.01.2006, 12:55 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Привет.
StringGrid1->DefaultDrawing = false; сделать не забыл?
Отредактировано Asher — 16/01/2006, 13:56
|
|
** Николай |
Отправлено: 16.01.2006, 13:09 |
|
Не зарегистрирован
|
Поставил
StringGrid1->DefaultDrawing = false;
все равно не закрашивается:( |
|
Asher |
Отправлено: 16.01.2006, 13:15 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Надеюсь в первом посте это был не весь код?
Выбрать цвет мало, надо им еще и воспользоваться.
|
|
gvg |
Отправлено: 16.01.2006, 13:16 |
|
Машинист паровоза
Группа: Участник
Сообщений: 222
|
Так не StringGrid1->Canvas->Font->Color. Это для шрифта (а при DefaultDrawing=false его самому выводить надо). Ячейки — StringGrid1->Canvas->Brush->Color
Отредактировано gvg — 16/01/2006, 13:16 |
|
** Николай |
Отправлено: 16.01.2006, 13:35 |
|
Не зарегистрирован
|
Ну конечно не весь:) Есть еще и форма и текст в StringGrid1, так вот задача покрасить некоторые ячейки в разные цвета. На, что я сделал такое событие.
где пробовал и так
StringGrid1->Canvas->Brush->Color,
и так
StringGrid1->Canvas->Font->Color,
ничего не происходит...
При установке DefaultDraw = false, пропадает текст из списка... |
|
Asher |
Отправлено: 16.01.2006, 13:56 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
QUOTE | При установке DefaultDraw = false, пропадает текст из списка... |
Естественно пропадает.
При этом вы должны ВСЕ рисовать в StringGrid1DrawCell в таблице сами.
StringGrid1->Canvas->Font->Color
StringGrid1->Canvas->Brush->Color
StringGrid1->Canvas->FillRect
StringGrid1->Canvas->TextRect
вам в этом помогут.
|
|
olegenty |
Отправлено: 16.01.2006, 13:59 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
а я опять предлагаю стандартный рецепт: TMemTableEh + TDBGridEh. намного удобнее, да и обработчик OnDrawColumnCell, с учётом DefaultDrawColumnCell, написать гораздо проще.
|
|
Gal |
Отправлено: 16.01.2006, 15:43 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 124
|
предлагаю пример:
CODE |
void __fastcall TMainForm::StrGridCompDrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
TStringGrid* StrGridPtr;
StrGridPtr = (TStringGrid*)Sender;
if (ARow == 0)
{
StrGridPtr->Canvas->Font->Color = clNavy;
StrGridPtr->Canvas->Font->Style = TFontStyles() << fsBold;
StrGridPtr->Canvas->Font->Size = 11;
StrGridPtr->Canvas->TextRect(Rect,Rect.Left,Rect.Top,StrGridPtr->Cells[ACol][ARow]);
}
}
| |
|
Guest |
Отправлено: 16.01.2006, 16:05 |
|
Не зарегистрирован
|
QUOTE (olegenty @ 16/01/2006, 13:59) | а я опять предлагаю стандартный рецепт: TMemTableEh + TDBGridEh. намного удобнее, да и обработчик OnDrawColumnCell, с учётом DefaultDrawColumnCell, написать гораздо проще. |
В каком месте удобнее? Чего такого может TMemTableEh + TDBGridEh чего не умеет TStringGrid, TDrawGrid? |
|