![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прозрачная панель [D7, WinXP]
Alex_AA © (2006-10-18 07:05:00)Добрый день! Подскажите, как сделать панель прозрачной? Чтобы ею можно было накрыть другие компоненты и они были сквозь нее видны. Заранее спасибо!
nikola232 (2006-10-18 13:57:00) [1]Panel.Visible:=false;
Проще некуда;)
RASkov (2006-10-18 12:33:00) [2]А для чего это надо? Если для того чтобы компаненты были видны и недоступны, то их можно НА панель кинуть, которую в свою очередь сделать недоступной т.е. Panel.Enable:=False;
А по вопросу смотри TBevel
Пользователь (2006-10-18 12:07:00) [3]TGraphicObject
TGraphicControl
Пользователь (2006-10-18 12:06:00) [4]type
TTransparentPanel = class(TGraphicObject)
private
FBorderColor: TColor;
procedure SetBorderColor(AColor: TColor);
protected
procedure Paint; override;
public
constructor Create(AOwner: TComponent); override;
published
property BorderColor: TColor read FBorderColor write SetBorderColor;
property Color;
end;
implementation
constructor TTransparentPanel.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
ControlStyle := ControlStyle - [csOpaque];
BorderColor := clBtnShadow;
Color := clNone;
end;
procedure TTransparentPanel.Paint;
begin
if (Color = clNone) then
Canvas.Brush.Style := bsClear
else
begin
Canvas.Brush.Style := bsSolid;
Canvas.Brush.Color := Color;
end;
if (BorderColor = clNone) then
Canvas.Pen.Style := psClear
else
begin
Canvas.Pen.Style := psSolid;
Canvas.Pen.Color := BorderColor;
end;
Canvas.Rectangle(ClientRect);
end;
procedure TTransparentPanel.SetBorderColor(AColor: TColor);
begin
if (AColor <> FBorderColor) then
begin
FBorderColor := AColor;
Invalidate;
end;
end;
P.S. Но это не TPanel...