Главная страница
    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.47 MB
Время: 0.042 c
4-1165140028
Чапаев
2006-12-03 13:00
2007.04.29
Named pipe


15-1175354004
User454531
2007-03-31 19:13
2007.04.29
Чемпионат по поиску в Интернете


15-1175672734
umbra
2007-04-04 11:45
2007.04.29
снять пароль с макроса в экселе


1-1172829879
Igor_Z
2007-03-02 13:04
2007.04.29
Спектр цветов


15-1175760193
ocean
2007-04-05 12:03
2007.04.29
Переписать DVD, подавив один из звуковых каналов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский