|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
"Прозрачный" TEdit
Возник такой вопрос.
Хочется сделать, что бы TEdit, лежащий на TTabSheet, был прозрачный, т.е. имел тот же цвет фона, что и TTabSheet, на котором он лежит. Причем хочется сделать это с обычным TEdit. Собственно, проблема в том, что при вкл. темах цвет TTabSheet'а другой, нежели в момент разработки или при выключенных темах. Delphi 7. Собственно, пока ничего лучшего, чем запрос цвета у менеджера тем, я не нашел, но что-то меня в этом решении смущает. Например, если программу запускают на Win2000, то там просто нужной Dll не будет. Есть у кого еще идеи (кроме использования сторонних компонент)? |
#2
|
||||
|
||||
А ParentColor TEdita не помогает? (Нет возможности изменить цветовую схему чтобы проверить).
|
#3
|
|||
|
|||
Нет, не помогает, т.к. в режиме разработки и отображения он разный (ParentColor просто выставляет св-во Color у компонента).
Собственно, идея заключается в том, что бы настроить TEdit так, как будтро бы это TLabel, но есть возможность 1) прокрутить текст, что бы увидеть его весь и 2) выделить кусок/весь и скопировать в буффер обмена. Сейчас сделал обычным контролом, но смотрится "не айс". |
#4
|
||||
|
||||
Мне похожую задачу пришлось решать для TrackBar-а. Использовал CreateParams контрола.
Можно ещё испробовать Edit1.RecreateWnd в OnActivate формы, тогда контрол видит готовые цвета. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 01.12.2013 в 23:54. |
#5
|
|||
|
|||
Угумс, попробую.
А не подскажешь, как использовать CreateParams при статически создаваемых контролах? Что-то то ли я торможу, то ли чего не знаю... |
#6
|
||||
|
||||
Для TrackBar-а
Код:
TTrackBar = class(ComCtrls.TTrackBar) procedure CreateParams(var Params: TCreateParams); override; end; ... procedure TTrackBar.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); // код end; P.S. Форум затормозил и прошло 2 сообщения. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось lmikle, 02.12.2013 в 03:56. Причина: Dub |
#7
|
|||
|
|||
Цитата:
Это поправил. Понятно. Это создание своего компонента. Хотелось обойтись без этого, только стандартным TEdit. Ладно, у меня все-равно используется devEx, посмотрю, может там уже готовое есть... |