Я унаследовал от TGroupBox нативного элемента управления Delphi и переопределил его метод Paint для рисования скругленного прямоугольника.
procedure TclTransparentGroupBox.CreateParams(var params : TCreateParams);
begin
inherited;
Params.ExStyle := params.ExStyle or WS_EX_TRANSPARENT;
end;
После переопределения параметров «Создать» метод 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, о которых мне нужно позаботиться ???
Спасибо заранее
Рахул