Текущий архив: 2006.12.31;
Скачать: CL | DM;
ВнизПрорисовка формы на панели другой формы Найти похожие ветки
← →
Сатир (2006-11-09 16:42) [0]Как нарисовать форму на панели другой формы?
пусть у меня есть форма, которую я хочу на рисовать на панели другой формы
type
TPanelForm = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
procedure CreateParams(var Params:TCreateParams);override;
end;
implementation
{$R *.dfm}
procedure TPanelForm.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style:=WS_THICKFRAME or WS_POPUP or WS_BORDER;
//для того, чтобы у формы не было шапки
end;
и есть форма, на которой есть панель, которая должна отображать первую форму
в обработчике OnCreate пишу такой код:
procedure TForm1.FormCreate(Sender: TObject);
var a:TPanelForm;
begin
a:=TPanelForm.Create(Panel1);
a.Parent:=Panel1;
a.ParentWindow:=Panel1.Handle;
a.Align:=alclient;
a.Show;
end;
В результате, форма рисуется не на панели, а сбоку и родительская форма не может принять фокус ввода, поэтому приходится снимать приложение через ctrl+F2
Если не переопределять в дочереней форме метод CreateParams, то всё нормально получается, только на панале=и отображается форма вместе с шапкой, а мне нужно отобразить без шапки.
Кто подскажет, как можно решить эту проблемму?
Заранее благодарен.
← →
clickmaker © (2006-11-09 16:46) [1]а может в сторону фреймов глянуть?
← →
Сатир (2006-11-09 16:49) [2]
> а может в сторону фреймов глянуть?
нельзя. на фреймах невозможно разместить dxBarManager.
оно изначально было реализовано на фреймах, но фреймы органичены по нескольких аспектах
← →
atruhin © (2006-11-09 17:38) [3]constructor TfrmAbstractChild.CreateChild(AOwner: TComponent);
begin
FTempParent := TWinControl(AOwner);
inherited Create (AOwner);
end;
procedure TfrmAbstractChild.CreateParams(var Params: TCreateParams);
begin
inherited;
if FAsChild then
Params.Style := Params.Style or WS_CHILD;
end;
procedure TfrmAbstractChild.Loaded;
begin
inherited;
if FAsChild then begin
Align := alClient;
BorderStyle := bsNone;
BorderIcons := [];
Parent := FTempParent;
Position := poDefault;
end;
end;
← →
atruhin © (2006-11-09 17:38) [4]Описано у Тексейры с Пачеко
← →
DrPass © (2006-11-09 18:06) [5]А чем не устраивает просто TPanelForm.ManualDock(Panel1)
← →
Сатир (2006-11-13 13:50) [6]
> TPanelForm.ManualDock(Panel1)
идеально подошло, пасибо... и не нужно переопределять CreateParams
Страницы: 1 вся ветка
Текущий архив: 2006.12.31;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.039 c