Главная страница
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.008 c
3-80782
Mikeee
2002-04-03 16:21
2002.04.25
Что бы это значило :


1-80882
inko
2002-04-14 11:41
2002.04.25
Сохранение .ICO файла...


7-81100
Alex622
2002-01-29 11:46
2002.04.25
Две мыши


3-80817
Zak
2002-04-05 08:38
2002.04.25
Печать МЕМО записей в Qreport


14-81054
Свой
2002-03-07 15:33
2002.04.25
---|Ветка была без названия|---