Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.25;
Скачать: 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 вся ветка

Текущий архив: 2002.04.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.009 c
3-80764
SaperXL
2002-04-03 01:13
2002.04.25
BDLookupComboBox


1-80846
kopachev
2002-04-12 20:08
2002.04.25
Прыгающий курсор


3-80812
fozy
2002-04-05 11:59
2002.04.25
КАРАУЛ MSSQL в Paradox langdriver не могу подобрать плизз


1-80906
sergr
2002-04-11 12:58
2002.04.25
Как сделать форму нестандартных размеров?


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