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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.12.2013, 20:43
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию "Прозрачный" TEdit

Возник такой вопрос.
Хочется сделать, что бы TEdit, лежащий на TTabSheet, был прозрачный, т.е. имел тот же цвет фона, что и TTabSheet, на котором он лежит. Причем хочется сделать это с обычным TEdit.

Собственно, проблема в том, что при вкл. темах цвет TTabSheet'а другой, нежели в момент разработки или при выключенных темах.

Delphi 7.

Собственно, пока ничего лучшего, чем запрос цвета у менеджера тем, я не нашел, но что-то меня в этом решении смущает. Например, если программу запускают на Win2000, то там просто нужной Dll не будет.

Есть у кого еще идеи (кроме использования сторонних компонент)?
Ответить с цитированием
  #2  
Старый 01.12.2013, 20:58
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

А ParentColor TEdita не помогает? (Нет возможности изменить цветовую схему чтобы проверить).
Ответить с цитированием
  #3  
Старый 01.12.2013, 22:57
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Нет, не помогает, т.к. в режиме разработки и отображения он разный (ParentColor просто выставляет св-во Color у компонента).

Собственно, идея заключается в том, что бы настроить TEdit так, как будтро бы это TLabel, но есть возможность 1) прокрутить текст, что бы увидеть его весь и 2) выделить кусок/весь и скопировать в буффер обмена. Сейчас сделал обычным контролом, но смотрится "не айс".
Ответить с цитированием
  #4  
Старый 01.12.2013, 23:51
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Мне похожую задачу пришлось решать для TrackBar-а. Использовал CreateParams контрола.
Можно ещё испробовать Edit1.RecreateWnd в OnActivate формы, тогда контрол видит готовые цвета.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 01.12.2013 в 23:54.
Ответить с цитированием
  #5  
Старый 02.12.2013, 01:05
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Угумс, попробую.
А не подскажешь, как использовать CreateParams при статически создаваемых контролах? Что-то то ли я торможу, то ли чего не знаю...
Ответить с цитированием
  #6  
Старый 02.12.2013, 01:17
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Для TrackBar-а
Код:
  TTrackBar = class(ComCtrls.TTrackBar)
    procedure CreateParams(var Params: TCreateParams); override;
  end;
...
procedure TTrackBar.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  // код
end;
Для Edit-а аналогично.

P.S. Форум затормозил и прошло 2 сообщения.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось lmikle, 02.12.2013 в 03:56. Причина: Dub
Ответить с цитированием
  #7  
Старый 02.12.2013, 03:57
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от angvelem
P.S. Форум затормозил и прошло 2 сообщения.

Это поправил.

Понятно. Это создание своего компонента. Хотелось обойтись без этого, только стандартным TEdit. Ладно, у меня все-равно используется devEx, посмотрю, может там уже готовое есть...
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter