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

 
TAdvStringGrid, Изменение шрифта
telepath
Отправлено: 15.02.2005, 17:20


Станционный диспетчер

Группа: Участник
Сообщений: 132



Не поскажете, можно ли менять в TAdvStringGrid шрифт в строчке или ячейке без обработки OnDraw?
Stan
Отправлено: 16.02.2005, 11:31


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







QUOTE (telepath @ 15/02/2005, 18:22)
Не поскажете, можно ли менять в TAdvStringGrid шрифт в строчке или ячейке без обработки OnDraw?

Это делается в обработчике события OnGetCellColor
Например,
CODE

void __fastcall TfmMain::TableGetCellColor(TObject *Sender, int ARow,
     int ACol, TGridDrawState AState, TBrush *ABrush, TFont *AFont) {

  if (ARow>0) {
    if (ACol==0) {
      AFont->Style = TFontStyles() << fsBold;
      if (WorkData[ARow].PortEbable) AFont->Color = clTeal;
      else AFont->Color = clGray;
    }

    else if (ACol==1) {
      if (Table->Cells[ACol][ARow] == "Да") {
        AFont->Color = clBlue;
        AFont->Style = TFontStyles() << fsBold;
      }
      else {
        AFont->Color = clBlack;
        AFont->Style = TFontStyles() >> fsBold;
      }
    }

    else {
      if (ACol==8)  AFont->Style = TFontStyles() << fsBold;
      switch(WorkData[ARow].Options[ACol]) {
        case -1: AFont->Color = clGray;  break;
        case  0: AFont->Color = clBlue;  break;
        case  1: AFont->Color = clGreen; break;
        case  2: AFont->Color = clRed;   break;
      }
    }
  }
}
//---------------------------------------------------------------------------
telepath
Отправлено: 16.02.2005, 12:45


Станционный диспетчер

Группа: Участник
Сообщений: 132



Спасибо огромное, а что есть WorkData?
Stan
Отправлено: 16.02.2005, 14:21


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







QUOTE (telepath @ 16/02/2005, 13:47)
Спасибо огромное, а что есть WorkData?

WorkData — это мой массив, не имеющий ни малейшего отношения к TAdvStringGrid. Это внешняя переменная, которая определяет какую ячейку TAdvStringGrid каким цветом закрасить.
telepath
Отправлено: 16.02.2005, 14:39


Станционный диспетчер

Группа: Участник
Сообщений: 132



Понятно, еще раз спасибо smile.gif

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