Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.29;
Скачать: CL | DM;

Вниз

Прозрачность в TWinControl   Найти похожие ветки 

 
Den_is ©   (2006-07-10 14:35) [0]

Добрый день! У меня простой вопрос. А вот ответ, как оказалось, сложный. Я весь интернет перерыл, ответа не нашел.
Собственно вопрос - как сделать прозрачным компонент, унаследованный от класса TWinControl?
Заранее спасибо.


 
Black Krok ©   (2006-07-10 14:58) [1]

Может это поможет?

procedure TCustomPanel.SetParentBackground(Value: Boolean);
begin
 { TCustomPanel needs to not have csOpaque when painting
   with the ParentBackground in Themed applications }
 if Value then
   ControlStyle := ControlStyle - [csOpaque]
 else
   ControlStyle := ControlStyle + [csOpaque];
 FParentBackgroundSet := True;
 inherited;
end;


Это реализация свойства TPanel.ParentBackground, делающего панель прозрачной
ControlStyle свойство TControl


 
Den_is ©   (2006-07-10 15:32) [2]

Непонятно, почему этот топик перемещен в форум "Основная". Вопрос связан именно с разработкой компонентов.
Я пишу компонент - наследник от TWinControl и столкнулся с проблемой прозрачности при написании этого компонента. Поэтому считаю, что все-таки этой ветке место в разделе "Компоненты"


 
Black Krok ©   (2006-07-10 15:40) [3]

Посмотрите все же свойство ControlStyle и флаги csOpaque, csParentBackground


 
Плохиш ©   (2006-07-10 15:49) [4]


> Den_is ©   (10.07.06 15:32) [2]
> Непонятно, почему этот топик перемещен в форум "Основная".

Скорее всего из-за "Я весь интернет перерыл". Радуйся, что не в "Начинающие".
Посмотри ещё в нашем интернете http://www.yandex.ru/yandsearch?stype=&nl=0&text=delphi+TWinControl+%EF%F0%EE%E7%F0%E0%F7%ED%EE%F1%F2%FC


 
Den_is ©   (2006-07-10 16:05) [5]

Black Krok
Смотрел, менял, крутил эти флаги - не помогает.

Плохиш
В "вашем" инернете нет ответа на мой вопрос. Либо советуют использовать TCustomControl, либо говорят, что это невозможно, либо дают абстрактные советы - типа перепиши обработчик рисования компонента.


 
Плохиш ©   (2006-07-10 18:30) [6]


> Den_is ©   (10.07.06 16:05) [5]

А Вам ответ в каком виде хотелось бы услышать?


 
Ketmar ©   (2006-07-10 19:01) [7]

видимо, в виде кода, готового к copy/paste.


 
Den_is ©   (2006-07-10 19:38) [8]


> Плохиш ©   (10.07.06 18:30) [6]
>
> > Den_is ©   (10.07.06 16:05) [5]
>
> А Вам ответ в каком виде хотелось бы услышать?


1. Я уже написал свой компонент, наследуя от TCustomControl. Причем компонент получился громоздкий, так как пришлось навешивать функциональность TWinControl. Поэтому хочу переделать наследника на TWinControl. Мешает прозрачность.
2. В невозможность сделать прозрачность я не верю. Все возможно!
3. Если советуют переписать "обработчик рисования компонента", то хотелось бы узнать, как это сделать? Ну, дурак я. Мне этой информации недостаточно.


 
Den_is ©   (2006-07-10 19:40) [9]

Сорри в пункте 1 опечатка. Имеется ввиду, что хочу переделать класс-родитель с TCustomControl на TWinControl.


 
Мефисто   (2006-07-10 20:20) [10]

constructor TCustomPl.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 ControlStyle := ControlStyle + [csOpaque];
end;

procedure TCustomP.CreateParams(var Params: TCreateParams);
begin
 inherited CreateParams(Params);
 Params.ExStyle := Params.ExStyle + WS_EX_TRANSPARENT;
end;

procedure TCustomP.WMEraseBkgnd(var Message: TWMEraseBkgnd);
begin
 Message.Result := 1;
end;


 
Юрий Зотов ©   (2006-07-10 21:14) [11]

> Den_is ©   (10.07.06 15:32) [2]
> Непонятно, почему этот топик перемещен в форум "Основная".

Мне тоже. Поэтому перенес обратно.

По сабжу - обратите внимание на [10]. Как минимум, это именно тот путь, по которому и надо двигаться.


 
Ketmar ©   (2006-07-10 21:25) [12]

ещё можно почитать про регионы.


 
DimaBr   (2006-07-11 08:34) [13]


> Юрий Зотов ©

А прикольно получилось. Кликаешь на ссылку "Прозрачность в TWinControl" - "Перемещено в конференцию "Основная". Кликаешь на неё - "Перемещено в конференцию "Компоненты". Получилось два топика - брак.



Страницы: 1 вся ветка

Текущий архив: 2007.04.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.048 c
2-1175109539
arturich
2007-03-28 23:18
2007.04.29
Перевести буквы на другой язык


15-1175788131
Ricks
2007-04-05 19:48
2007.04.29
Не набираются символы...


3-1171025705
Gin2
2007-02-09 15:55
2007.04.29
ADO - большой файл(~184 Мб) в блоб


1-1172831756
Chelovek
2007-03-02 13:35
2007.04.29
Добавление кнопок на TToolBar.


15-1175753648
IMHO
2007-04-05 10:14
2007.04.29
Посоветуйте компонент БД для Delphi