Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Прозрачная панель [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...


Наверх

Титульная страница Поиск, карта сайта Написать письмо