Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
15-1165896826
Slider007
2006-12-12 07:13
2006.12.31
С днем рождения ! 12 декабря


3-1161253972
просто_человек
2006-10-19 14:32
2006.12.31
Помогите с растановкой приоритетов


1-1163359257
AlexeyT
2006-11-12 22:20
2006.12.31
Готовый диалог настройки Toolbar?


15-1165816847
vidiv
2006-12-11 09:00
2006.12.31
Создание учетной записи администратора


1-1163360090
RASkov
2006-11-12 22:34
2006.12.31
"Всплывающее окно"





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский