Текущий архив: 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.48 MB
Время: 0.008 c