Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.07.16;
Скачать: [xml.tar.bz2];

Вниз

Вопросы по расоложению панелей и 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.017 c
15-1150579053
Ломброзо
2006-06-18 01:17
2006.07.16
Помогите победить девайс


15-1150451957
HeadHunter
2006-06-16 13:59
2006.07.16
Qulix Systems (БелХард, Минск) приглашает наработу программистов


15-1150423842
Думкин
2006-06-16 06:10
2006.07.16
Bill Gates


2-1151252255
JTAG
2006-06-25 20:17
2006.07.16
Сделал иконку в Image Editor, подскажите плз, как сделать


1-1149593869
tasha
2006-06-06 15:37
2006.07.16
WebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский