Форум: "Компоненты";
Текущий архив: 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.05 c