Вниз
Скачать: CL | DM;

Прозрачная панель   Найти похожие ветки 

 
Alex_AA ©   (2006-10-18 07:05) [0]

Добрый день! Подскажите, как сделать панель прозрачной? Чтобы ею можно было накрыть другие компоненты и они были сквозь нее видны. Заранее спасибо!


 
Пользователь   (2006-10-18 12:06) [1]

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...


 
Пользователь   (2006-10-18 12:07) [2]

TGraphicObject

TGraphicControl


 
RASkov   (2006-10-18 12:33) [3]

А для чего это надо? Если для того чтобы компаненты были видны и недоступны, то их можно НА панель кинуть, которую в свою очередь сделать недоступной т.е. Panel.Enable:=False;
А по вопросу смотри TBevel


 
nikola232 ©   (2006-10-18 13:57) [4]

Panel.Visible:=false;
Проще некуда;)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
3-1159550644
Kley
2006-09-29 21:24
2006.12.03
Exel&amp;Delphi


2-1163766009
Grant
2006-11-17 15:20
2006.12.03
ODBC


15-1162911202
SkySpeed
2006-11-07 17:53
2006.12.03
Как в Excel построить следующую поверхность функции:x*x+y*y+z*z=1


15-1163207174
Anatoly Podgoretsky
2006-11-11 04:06
2006.12.03
Послений анонс об APC


15-1163416440
s567
2006-11-13 14:14
2006.12.03
Хэши crc32, md5




   Наверх