Главная страница
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.017 c
7-81094
Lord BDV
2002-01-28 20:37
2002.04.25
Работа со шрифтами


14-81056
Елена
2002-03-18 09:43
2002.04.25
Паскаль на Западе


3-80831
bobr12
2002-04-05 16:28
2002.04.25
Создание отчетов


3-80795
Draculenok
2002-03-21 12:54
2002.04.25
Вопрос по QReporty!!!!!!!!


1-80840
Jaxtor
2002-04-11 11:35
2002.04.25
Закрытие формы MDIChild программным методом