Прозрачный групповой блок

Я унаследовал от TGroupBox собственного элемента управления Delphi и переопределил его метод Paint для рисования прямоугольника с закругленными углами.

   procedure TclTransparentGroupBox.CreateParams(var params : TCreateParams);
   begin
     inherited;
     Params.ExStyle := params.ExStyle or WS_EX_TRANSPARENT;
   end;

После переопределения параметров Create метод Paint выглядит следующим образом.

   procedure TclTransparentGroupBox.Paint;
   begin
     // Draw the rounded rect to show the group box bounds
     Canvas.Pen.Color := clWindowFrame;
     Canvas.RoundRect(5, 15, ClientRect.Right - 5, ClientRect.Bottom - 5, 10, 10);
     if Caption <> EmptyStr then
     begin
       Canvas.Brush.Style := bsClear;
       Canvas.TextOut(10, 0, Caption);
     end;
   end;

Основная проблема, с которой я сталкиваюсь, заключается в том, что у меня есть несколько ярлыков поверх прозрачной группы. Когда я открываю форму, метки выглядят нормально, но при изменении текста некоторые ограничивающие прямоугольники меток будут видны. Это странно смотрится на прозрачной коробке.

Даже когда я изменяю размер формы, групповое поле само исчезает, когда я переключаю фокус на другое приложение и возвращаю свое приложение, групповое поле отрисовывается само.

Я что-нибудь упускаю в связи с рисованием? Любые сообщения Windows, о которых мне нужно позаботиться ???

Заранее спасибо Рахул

5
задан RRUZ 19 January 2012 в 15:44
поделиться