Главная страница
    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.037 c
1-1172831756
Chelovek
2007-03-02 13:35
2007.04.29
Добавление кнопок на TToolBar.


1-1173178321
vir
2007-03-06 13:52
2007.04.29
onFocusChange


15-1175435176
isasa
2007-04-01 17:46
2007.04.29
Многопоточная задача канадских лесорубов.


2-1176202422
vegarulez
2007-04-10 14:53
2007.04.29
Подскажите как правильно задекларировать процедуру.


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