form2 это MDIChild. В нем создается обычная форма form3.
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
form2:=Tform2.Create(application);
form3:=Tform3.Create(application);
form3.Show;
Windows.SetParent(form3.Handle, form2.Handle);//ВАРИАНТ 1
//form3.ParentWindow:=form2.Handle; //ВАРИАНТ 2
end;
[Big]Как избежать следующих проблем?[/Big]
ВАРИАНТ 1
Если делать первым вариантом, то когда активна вложеная форма 3,то форма 2 и форма приложения не активны. А если до снятия фокуса с приложения была активна вложеная форма 3, и окно приложения спряталось за окна других приложений, то вывести его на первый план не удается, так как оно какбы так и остается неактивным.И когда активна дочерняя форма 2, то соответственно форма 3 не активна получается и на ней не работают хоткеи (Таб например) и контролы без фокуса.
ВАРИАНТ 2
Все работает с активностью форм нормально, но контролы не получают фокус на вложеной форме 3 и не работаю хот кеи