Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выравнивание текста в StringGrid, Сохранить стиль Builder 2010 
:(
    Опции темы
efpies
Дата 13.3.2011, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 20.6.2009
Где: СПб

Репутация: нет
Всего: нет



Здравствуйте.

Есть такой вот код для выравнивания текста:
Код

void __fastcall TMainForm::GridDrawCell(TObject *Sender, int ACol, int ARow,
          TRect &Rect, TGridDrawState State)
{
    Grid->Canvas->Brush->Color=clWhite;
    Grid->Canvas->Font->Color=clBlack;
    Grid->Canvas->FillRect(Rect);        // Тут мы закрашиваем канву для удаления старого текста
    
    DrawText(Grid->Canvas->Handle,
             Grid->Cells[ACol][ARow].t_str(),
             Grid->Cells[ACol][ARow].Length(),
             &Rect,
             DT_CENTER | DT_VCENTER | DT_SINGLELINE);
}

Но суть в том, что при закрашивании канвы убирается красивенький прямоугольничек со скруглёнными краями с градиентом внутри, символизирующий выделенную ячейку.
Можно ли как-то оставить его, не перерисовывая отдельно? Если нет, то в каком событии перерисовывать? OnSelectCell?

PM MAIL   Вверх
Usper
Дата 14.3.2011, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 13.4.2007

Репутация: 15
Всего: 15



Параметр State обработчика GridDrawCell показывает (внезапно! smile) в каком "состоянии" отрисовываемая ячейка. Если State.Contains(gdSelected) то значит она выделена и её нужно отрисовать соответствующим образом.


--------------------
На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник.
PM MAIL   Вверх
efpies
Дата 14.3.2011, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 20.6.2009
Где: СПб

Репутация: нет
Всего: нет



Да, это логично, спасибо smile
Блин, поискал примеры - совсем как-то неудобно заливать градиентом :( ну что ж...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0891 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.