Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.16;
Скачать: CL | DM;

Вниз

Вопросы по расоложению панелей и TImage   Найти похожие ветки 

 
Juice ©   (2006-05-31 14:21) [0]

Вот такая задача, как сделать не знаю: есть форма, на фоне формы рисунок в ВЕСЬ РАЗМЕР ФОРМЫ (Stretch). Слева тоненькая панель со сплитером во всю высоту и снизу тоненькая панель во всю ширину формы, тоже со сплитером, что визуально располагаются поверх фоновой картинки, т.е. перекрывают ее а не поджимают. Как расположить панели и TImage чтобы такое получилось? Или такое нельзя сделать? Проблема в том что когда я бросаю TImage с alClient а потом левую панель с alLeft то TImage.Left становится LeftPanel.Width, картинка сдвигается вправо.


 
unknown ©   (2006-05-31 14:27) [1]

Как вариант - убрать у image alClient и его размер подбирать автоматически
при изменении размеров формы (OnCanResize, OnResize)


 
Juice ©   (2006-05-31 14:39) [2]


> Как вариант - убрать у image alClient и его размер подбирать
> автоматически
> при изменении размеров формы (OnCanResize, OnResize)

Вариант. Как Z-order"ом компонентов управлять в рантайм, свойство или метод, то что в designtime наз. Right Click->Control->Bring to front/Send to back ?  

Но эт была первая половина вопроса. Еще надо чтобы все оставшееся от левой и нижней панели пространство заполняла еще одна панель, но чтобы была она прозрачной. Нужна она чтобы на нее кидать некие формы (через Parent) а прозрачная зачем и так понятно, ибо если не прозрачная то бэкграунд вообще видно не будет. Я с рисованием вообще не дружу, а тут еще и событий OnCustomDraw и похожих нету (см. у TPanel). Как быть тут?


 
unknown ©   (2006-05-31 15:02) [3]


> Juice ©   (31.05.06 14:39) [2]
> Как Z-order"ом компонентов управлять в рантайм

Так и управлять -
 Image1.BringToFront;
 Image1.SendToBack;


 
Juice ©   (2006-05-31 16:49) [4]

А как быть с прозрачностью , это самое главное?


 
han_malign ©   (2006-05-31 16:54) [5]

Panel.ControlStyle:= Panel.ControlStyle - [csOpaque];


 
han_malign ©   (2006-05-31 17:01) [6]


> (OnCanResize, OnResize)

Anchors = [akLeft,akTop,akRight,akBottom]


 
unknown ©   (2006-05-31 17:04) [7]


> Juice ©   (31.05.06 16:49) [4]
> А как быть с прозрачностью , это самое главное?


Вот накидал компонент - прозрачная панелька.
На скорую руку, так что не ругайте особо :))

unit TransPanel;

interface

uses
 Classes, Controls, ExtCtrls, SysUtils, Windows;

type
 TTransPanel = class(TWinControl)
 protected
   procedure CreateParams(var Params: TCreateParams); override;
 public
   constructor Create(AOwner: TComponent); override;
 end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents("Samples", [TTransPanel]);
end;

constructor TTransPanel.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 ControlStyle := [csAcceptsControls, csCaptureMouse, csClickEvents,
   csSetCaption, csDoubleClicks, csReplicatable];
end;

procedure TTransPanel.CreateParams(var Params: TCreateParams);
begin
 inherited CreateParams(Params);
 with Params do
   ExStyle := WS_EX_TRANSPARENT;
end;

end.


 
Juice ©   (2006-05-31 17:14) [8]

Panel.ControlStyle:= Panel.ControlStyle - [csOpaque];
Не фурычит


 
Juice ©   (2006-05-31 17:38) [9]

Спасибо большое, все получилось!


 
Juice ©   (2006-05-31 18:26) [10]


> все получилось!

Неправда. Трабл такой что прозрачная панель должа быть контейнером для для маленьких служебных форм, так вот когда я накидываю их то они вроде как и прорисовываются но с большими глюками. Сделал все так как вы сказали, вот так:

TTransPanel = class(TWinControl)
protected
  procedure CreateParams(var Params: TCreateParams); override;
public
  constructor Create(AOwner: TComponent); override;
 published
   property Align;
   //property Alignment;
   property Anchors;
   property AutoSize;
   property BevelInner;
   property BevelOuter;
   property BevelWidth;
   property BiDiMode;
   property BorderWidth;
   //property BorderStyle;
   property Caption;
   property Color;
   property Constraints;
   property Ctl3D;
   property UseDockManager default True;
   property DockSite;
   property DragCursor;
   property DragKind;
   property DragMode;
   property Enabled;
   //property FullRepaint;
   property Font;
   //property Locked;
   property ParentBiDiMode;
   property ParentBackground;
   property ParentColor;
   property ParentCtl3D;
   property ParentFont;
   property ParentShowHint;
   property PopupMenu;
   property ShowHint;
   property TabOrder;
   property TabStop;
   property Visible;
   property OnCanResize;
   property OnClick;
   property OnConstrainedResize;
   property OnContextPopup;
   property OnDockDrop;
   property OnDockOver;
   property OnDblClick;
   property OnDragDrop;
   property OnDragOver;
   property OnEndDock;
   property OnEndDrag;
   property OnEnter;
   property OnExit;
   property OnGetSiteInfo;
   property OnMouseDown;
   property OnMouseMove;
   property OnMouseUp;
   property OnResize;
   property OnStartDock;
   property OnStartDrag;
   property OnUnDock;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents("KINTO", [TTransPanel]);
end;

constructor TTransPanel.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
ControlStyle := [csAcceptsControls, csCaptureMouse, csClickEvents,
  csSetCaption, csDoubleClicks, csReplicatable];
end;

procedure TTransPanel.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do
  ExStyle := WS_EX_TRANSPARENT;
end;


 
unknown ©   (2006-05-31 21:52) [11]

uses
 Windows, SysUtils, ExtCtrls, Classes, Controls, Messages;

type
 TTransPanel = class(TWinControl)
 protected
   procedure CreateParams(var Params: TCreateParams); override;
   procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
 public
   constructor Create(AOwner: TComponent); override;
 published
<skipped>
 end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents("Samples", [TTransPanel]);
end;

constructor TTransPanel.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 ControlStyle := [csAcceptsControls, csCaptureMouse, csClickEvents,
   csSetCaption, csDoubleClicks, csReplicatable];
end;

procedure TTransPanel.CreateParams(var Params: TCreateParams);
begin
 inherited CreateParams(Params);
 with Params do
   ExStyle := WS_EX_TRANSPARENT;
end;

procedure TTransPanel.WMPaint(var Message: TWMPaint);
begin
 inherited;
 if not (csDesigning in ComponentState) then
   Perform(WM_SETREDRAW, 0, 0);
end;



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

Текущий архив: 2006.07.16;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.034 c
2-1151260756
rus0303
2006-06-25 22:39
2006.07.16
использование индекса


5-1124462652
alba
2005-08-19 18:44
2006.07.16
listview пропадает scrollbar


2-1151323955
lobach
2006-06-26 16:12
2006.07.16
Cgi


4-1144067736
Untermensch
2006-04-03 16:35
2006.07.16
Как получить MAC-адреса сетевых плат или другой способ


2-1151646657
Ega23
2006-06-30 09:50
2006.07.16
Ещё раз про фреймы