windows.SetParent()
От: Alex.Che  
Дата: 09.11.05 12:55
Оценка:
Здравствуйте, ВСЕ !

Необходимо отобразить одну форму на другой.
Делаю:
Child := TChild.Create(Main);
windows.SetParent(Child.Handle, Main.Handle);

Форма Child отображается на Main, но ни на какие события не реагирует.

Их перехватывает parent-форма? Или чё?
События придётся пересылать в Child ?

Просветите, кто в курсе, плс.

--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 1.9
Re: windows.SetParent()
От: Softwarer http://softwarer.ru
Дата: 09.11.05 13:17
Оценка:
Здравствуйте, Alex.Che, Вы писали:

Есть смутное воспоминание, что на этом пути Вам придется разобраться еще и со стилем окна (который WS_OVERLAPPED, WS_POPUP итп).

А почему бы не воспользоваться каким-либо более дельфовым способом?
Re[2]: windows.SetParent()
От: Alex.Che  
Дата: 09.11.05 13:18
Оценка:
Привет, Softwarer!
Вы пишешь 09 ноября 2005:

S> Есть смутное воспоминание, что на этом пути Вам придется

S> разобраться еще и со стилем окна (который WS_OVERLAPPED, WS_POPUP итп).

Будем копать...

S> А почему бы не воспользоваться каким-либо более дельфовым способом?


Буду весьма признателен за идеи в данном направлении.

--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 1.9
Re: windows.SetParent()
От: demiurgjr  
Дата: 09.11.05 13:19
Оценка:
Hello, Alex.Che!
You wrote on Wed, 09 Nov 2005 12:55:54 GMT:

AC> Необходимо отобразить одну форму на другой.

AC> Делаю:
AC>
Child := TChild.Create(Main);
 AC> windows.SetParent(Child.Handle, Main.Handle);

AC> Форма Child отображается на Main, но ни на какие события не реагирует.

AC> Их перехватывает parent-форма? Или чё?

AC> События придётся пересылать в Child ?

AC> Просветите, кто в курсе, плс.


Для пробы сделал в пустом приложении, на Form2 есть Edit, все работает

var f:TForm2;
begin
  f:= TForm2.Create(Self);
  windows.SetParent(f.Handle, Self.Handle);
  f.Left:= 10;
  f.Top:= 10;
  f.Show
end;

With best regards, Alexander Nagumanov.
Posted via RSDN NNTP Server 1.9
Re[2]: windows.SetParent()
От: Alex.Che  
Дата: 09.11.05 13:22
Оценка:
Привет, demiurgjr!
Вы пишешь 09 ноября 2005:

d> Для пробы сделал в пустом приложении, на Form2 есть Edit, все работает


Alexander, в какой момент создаёшь TForm2 ?

--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 1.9
Re[3]: windows.SetParent()
От: Softwarer http://softwarer.ru
Дата: 09.11.05 13:22
Оценка:
Здравствуйте, Alex.Che, Вы писали:

S>> А почему бы не воспользоваться каким-либо более дельфовым способом?

AC>Буду весьма признателен за идеи в данном направлении.

Хм. Ну я бы начал с

Child.Parent := Main ;


И подозреваю, им бы и закончил
Re[3]: windows.SetParent()
От: demiurgjr  
Дата: 09.11.05 13:30
Оценка:
Hello, Alex.Che!
You wrote on Wed, 09 Nov 2005 13:22:37 GMT:

d>> Для пробы сделал в пустом приложении, на Form2 есть Edit, все работает


AC> Alexander, в какой момент создаёшь TForm2 ?


Эээ, поставил кнопку и в Button1Click

With best regards, Alexander Nagumanov.
Posted via RSDN NNTP Server 1.9
Re[4]: windows.SetParent()
От: Alex.Che  
Дата: 09.11.05 13:30
Оценка:
Привет, Softwarer!
Вы пишешь 09 ноября 2005:

S> Хм. Ну я бы начал с

S>
Child.Parent := Main ;

S> И подозреваю, им бы и закончил

Судя по всему, я "рано" вызывал SetParent().
Попробовал переместить в OnActivate главной формы и Child ожил.
До этого пытался прицепить его в OnShow.

Глубокое всем мерси. (С)

--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 1.9
Re[4]: windows.SetParent()
От: Alex.Che  
Дата: 09.11.05 13:34
Оценка:
Привет, demiurgjr!
Вы пишешь 09 ноября 2005:

AC>> Alexander, в какой момент создаёшь TForm2 ?


d> Эээ, поставил кнопку и в Button1Click


Так я и думал.
Ты натолкнул меня на мысль.
Пасибо

--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 1.9
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.