Как выделить окошко DBGrid другим цветомDelphi , Компоненты и Классы , TDBGridКак выделить окошко DBGrid другим цветом
Оформил: DeeCo procedure TForm1.DBGridDrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState); begin if gdFocused in State then with (Sender as TDBGrid).Canvas do begin Brush.Color := clRed; FillRect(Rect); TextOut(Rect.Left, Rect.Top, Field.AsString); end; end; Here is the translation of the text into Russian: Код, который вы предоставили, является частью обработчика события В этом конкретном случае цель - выделить фокусированную строку (т. е. текущую выбранную строку) изменением ее фонового цвета на красный. Код делает именно это:
Результат - ячейки фокусированной строки рисуются с красным фоном. Вот альтернативное решение, которое достигает того же эффекта:
В этом альтернативном решении я добавил новый обработчик события для события Код внутри этого обработчика похож на оригинальный: он проверяет, установлен ли бит состояния фокусировки, и если да, то устанавливает кисть цвета красного. Однако вместо рисования текста напрямую, он просто устанавливает кисть для канваса, которая будет использоваться grid при рисовании заголовков столбцов. Это решение достигает того же эффекта, что и оригинальный код, но предоставляет более гибкий способ обрабатывать различные состояния (например, фокусировка, выбор). В статье описано, как выделить окошко в DBGrid другим цветом, для этого необходимо обработать событие "OnDrawCellData" и использовать метод FillRect для изменения цвета фона. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |