Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2007.04.29;
Скачать: [xml.tar.bz2];

Вниз

Прозрачность в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.043 c
3-1171338914
analyst
2007-02-13 06:55
2007.04.29
картинка BLOB в строку


15-1175503029
X9
2007-04-02 12:37
2007.04.29
Ну наконец-то...


1-1172832342
DenisNew
2007-03-02 13:45
2007.04.29
Предотвращение изменения размеров TToolButton


2-1176131687
Ezorcist
2007-04-09 19:14
2007.04.29
Приоритет потока TThread и самой программы.


3-1171031359
ANB
2007-02-09 17:29
2007.04.29
(Оракл) Как заставить вьюху слопать нужный мне тип ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский