![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Добрый день. Пишу свой компонент.
создаю рисунки на paintBoxe. Хочу сделать их с возвможностью установки прозрачности. (полупрозрачности) Код:
var
bl:TBlendFunction;
Bl.BlendOp := AC_SRC_OVER;
Bl.BlendFlags := 0;
Bl.SourceConstantAlpha := Blend;
Bl.AlphaFormat := 0; //
Windows.AlphaBlend(Canvas.Handle,0, 0, Width, Height,
TPaintBox(Parent).canvas.handle , 0,0, Width, Height, Bl);
Вопрос - как получить Canvas Parenta без учета canvasa компонента... Заранее спасибо! Последний раз редактировалось max_torent, 08.11.2012 в 13:44. |
|
#2
|
||||
|
||||
|
Используй GetDC(Parent). Только освобождать не забывай.
|
|
#3
|
|||
|
|||
|
Все равно не выходит( Получается что изображение уже отрисовано на родителе и при расчете прозрачности получается что оно накладывается...
т.е. нужно получить canvas или HWND родителя, с исключенным в это время компонентом... |
|
#4
|
||||
|
||||
|
смотри как TLabel сделан
|
|
#5
|
|||
|
|||
|
А подробнее не подскажите? Где именно копать
|
|
#6
|
||||
|
||||
|
Цитата:
Код:
.....
unit StdCtrls;
.....
procedure TCustomLabel.SetTransparent(Value: Boolean);
begin
if Transparent <> Value then
begin
if Value then
ControlStyle := ControlStyle - [csOpaque] else
ControlStyle := ControlStyle + [csOpaque];
Invalidate;
end;
end;
..... |
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
max_torent (10.11.2012)
| ||
|
#7
|
|||
|
|||
|
poli-smen - СПАСИБО! Получилось сделать так как Вы написали. С помощью ControlStyle... Все оказалось очень просто)
|