** Leo |
Отправлено: 17.11.2005, 16:21 |
|
Не зарегистрирован
|
Как изменять шрифт текста в ячейках в компонентеStringGrid1->Cells |
|
seg_r |
Отправлено: 17.11.2005, 20:40 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 74
|
пишешь обработчик OnDrawCell
в пропертях пишешь DefaultDraw = false
а дальше че та типа этого:
CODE |
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
//..
// задний фон
Form1->StringGrid1->Canvas->Brush->Color=TColor(RGB(253,238,217));
// выделенный ряд
if (Form1->StringGrid1->Row==ARow) Form1->StringGrid1->Canvas->Brush->Color=TColor(RGB(192,120,17));
// 1 ряд
if (ARow==0) Form1->StringGrid1->Canvas->Brush->Color=TColor(RGB(190,190,190));
// PAINT
// Font color
Form1->StringGrid1->Canvas->Font->Color=clBlack;
// цвет шрифта под выделенным рядом
if (Form1->StringGrid1->Row==ARow) Form1->StringGrid1->Canvas->Font->Color=clWhite;
Form1->StringGrid1->Canvas->FillRect(Rect);
Form1->StringGrid1->Canvas->TextOutA(Rect.Left+2,Rect.Top+2,Form1->StringGrid1->Cells[ACol][ARow]);
} |
здеся ряд выделяется, для ячеек сам додумаешься...
да, еще эта
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect,TGridDrawState State)
там :
QGrids
enum Grids__3 { gdSelected, gdFocused, gdFixed };
typedef Set TGridDrawState;
Description
TGridDrawState represents state information about the cell of a grid that is being rendered. It is a set that includes 0 or more of the following:
Value Meaning
gdSelected The cell is currently selected.
gdFocused The cell has input focus.
gdFixed The cell is in the fixed region of the grid. |
|
** Leo |
Отправлено: 18.11.2005, 09:48 |
|
Не зарегистрирован
|
QUOTE (seg_r @ 17/11/2005, 20:40) | пишешь обработчик OnDrawCell
в пропертях пишешь DefaultDraw = false
а дальше че та типа этого:
CODE |
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
//..
// задний фон
Form1->StringGrid1->Canvas->Brush->Color=TColor(RGB(253,238,217));
// выделенный ряд
if (Form1->StringGrid1->Row==ARow) Form1->StringGrid1->Canvas->Brush->Color=TColor(RGB(192,120,17));
// 1 ряд
if (ARow==0) Form1->StringGrid1->Canvas->Brush->Color=TColor(RGB(190,190,190));
// PAINT
// Font color
Form1->StringGrid1->Canvas->Font->Color=clBlack;
// цвет шрифта под выделенным рядом
if (Form1->StringGrid1->Row==ARow) Form1->StringGrid1->Canvas->Font->Color=clWhite;
Form1->StringGrid1->Canvas->FillRect(Rect);
Form1->StringGrid1->Canvas->TextOutA(Rect.Left+2,Rect.Top+2,Form1->StringGrid1->Cells[ACol][ARow]);
} |
здеся ряд выделяется, для ячеек сам додумаешься...
да, еще эта
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect,TGridDrawState State)
там :
QGrids
enum Grids__3 { gdSelected, gdFocused, gdFixed };
typedef Set<Grids_3, gdSelected, gdFixed> TGridDrawState;
Description
TGridDrawState represents state information about the cell of a grid that is being rendered. It is a set that includes 0 or more of the following:
Value Meaning
gdSelected The cell is currently selected.
gdFocused The cell has input focus.
gdFixed The cell is in the fixed region of the grid. |
Спасибо, seg_r. Вроде работает. |
|
gvg |
Отправлено: 18.11.2005, 09:48 |
|
Машинист паровоза
Группа: Участник
Сообщений: 222
|
2seg_r Вообще-то, вопрос про шрифт, а не про цвета.
Но принцип тот-же: менять Canvas->Font->Name(Size, ets) |
|
olegenty |
Отправлено: 18.11.2005, 09:56 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
а я по-прежнему просто порекомендовал бы связку TMemTableEh + TDBGridEh для создания у пользователя ощущения, что он работает в StringGrid.
|
|
gvg |
Отправлено: 18.11.2005, 10:34 |
|
Машинист паровоза
Группа: Участник
Сообщений: 222
|
QUOTE (olegenty @ 18/11/2005, 09:56) | а я по-прежнему просто порекомендовал бы связку TMemTableEh + TDBGridEh для создания у пользователя ощущения, что он работает в StringGrid. |
Это, конечно, удобно. Но, если программа не работает с БД, ее размер вырастет существенно, что нехорошо. |
|
olegenty |
Отправлено: 18.11.2005, 11:29 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
зато окупается сторицей — время разработки уменьшается, сопровождать — одно удовольствие. а для StringGrid надо целую библиотечку руками даписывать, за-ради и повторного использования, и упрощения сопросвождения кода.
|
|
|