![]() |
![]() ![]() ![]() ![]() |
|
Как выделить окошко DBGrid другим цветомDelphi , Компоненты и Классы , TDBGrid
Оформил: 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 прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||