Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.03.2022, 16:39
Алышев Андрей Алышев Андрей вне форума
Прохожий
 
Регистрация: 16.03.2022
Сообщения: 1
Версия Delphi: RAD Studio 11
Репутация: 10
По умолчанию StringGrid цвет фона

Как закрасить место без ячеек? При изменении размеров формы (например развернуть) появляются области, где нет ячеек. Как их закрасить?
RAD Studio 11/
Заранее благодарен!!!
Ответить с цитированием
  #2  
Старый 17.03.2022, 01:40
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,056
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Если мне не изменяет память, то без ковыряния в самом компоненте - никак. Эта область есть окно компонента, а у тебя есть только обработчик отрисовки ячейки. Можно попробовать поставить св-во Color, если оно есть, у компонента, но, во первых, это поменяет также и цвет фона ячеек (что можно перекрыть уже отрисовкой самих ячеек), а во вторых, оно, скорее всего, не будет работать при использовании тем (поведение по умолчанию и что-то мне подсказывает, что темы ты отключать не хочешь).

Да, можно не создавать свой компонент полностью, а обойтись простой заглушкой. Сотственно, тут надо перекрыть либо метод EraseBackground, либо Paint, если первого метода нет или он недоступен. А что бы не создавать и не регистрировать свой компонент можно воспользоваться таким трюком:
Код:
unit Unit1;
...
type
  TStringGrid = class(StrGrd.TStringGrid)
  ...
  procedure EraseBackground; override;
  ...
  end;

  TForm1 = class(TForm)
  ...
  StringGrid1 : TStringGrid;
  ...
  end;
...
В этом случае сама Delphi будет работать со стандартным компонентом, а во время исполнения программы будет использоваться твоя версия с перекрытыми методами.

ЗЫ. Имя модуля, где описан исходный TStringGrid, и имя метода написал по памяти, надо проверить точные имена.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:24.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter