Вниз
Скачать: CL | DM;

Прозрачный потомок TCustomControl   Найти похожие ветки 

 
SergeyB ©   (2002-04-04 13:47) [0]

Подскажите, как добиться, чтобы фон потомка TCustomControl был прозрачным?
csOpaque в ControlStyle почему-то не помогает, может быть есть тонкости его использования?
Всем спасибо.


 
Song ©   (2002-04-04 16:12) [1]

Вы не правильно поимаете смысл csOpaque.
Это подмножество предназначена для "неперерисовки" фона. Но это фраза не означает, что он не будет рисоваться вообще, и фон будет прозрачным, а обозначает то, что при перерисовке компонента, например на onPaint, фон не будет изменяться. Это делают иногда, чтобы какой-то элемент не моргал при частом обновлении его содержимого.


 
SergeyB ©   (2002-04-11 13:33) [2]

Наконец я нашел один способ как это сделать - . Если кому будет интересно - ниже функция Paint потомка TCustomControl (здесь просто игра с формой - эллипс с дыркой). Дополнительно нужно будет переопределять регионы в procedure Resize(); override;.

procedure TShapedControl.Paint();
const
RegionSet: boolean = false;
var
rgn: HRGN;
begin
if not RegionSet then begin
region:=CreateEllipticRgn(0,0,Width,Height); // region - определен в TShapedControl
rgn:=CreateEllipticRgn(Width div 3,Height div 3,2*Width div 3, 2 * Height div 3);
CombineRgn(rgn, region, rgn, RGN_DIFF);
SetWindowRgn(Handle, rgn, true);
DeleteObject(rgn);
RegionSet:=true;
end;
// Основная прорисовка ...
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.008 c
3-80778
DEJRGU
2002-04-04 14:51
2002.04.25
Есть ли в TSQL какая-нибудь pause ? (чтобы проверить sp)


14-81052
Наивный
2002-03-18 22:52
2002.04.25
Пожалуйста помогите или дайте совет по этой теме!


14-81085
VictorT
2002-03-13 14:36
2002.04.25
Болванка с картинкой


3-80777
Sewix
2002-04-04 12:05
2002.04.25
Б Д не работает на другом компе


6-81024
reki
2002-02-14 15:59
2002.04.25
ФТП сервер?




   Наверх