Как избежать проблем при встраивании TForm в другой TForm?

Я часто встраиваю потомок TForm в другой потомок TForm следующим образом:

var
  Form1: TForm1;
  Form2: TForm2;
begin
  Form2.Parent      := Form1;
  Form2.BorderStyle := bsNone;
  Form2.Align       := alClient;
  Form2.Show;
end;

Обычно это работает нормально, но иногда элементы управления в Form2 не выровнены должным образом. Есть ли общий обходной путь для такого рода проблем?

Кто-нибудь знает, что вызывает это «несовпадение»?

Я знаю, что могу использовать TFrame для такого рода задач, но у меня есть много библиотечного кода, который мне пришлось бы переписать, и я не вижу причин, почему подход TForm в TForm не должен работать?

Изменить: У меня есть идентифицировал компонент TcxListView как виновника, я отправил отчет об ошибке поставщику компонента (DevExpress):

http://www.devexpress.com/issue=B194161

Редактировать 2: Разработчики DevExpress проанализировали проблему и сказали, что на самом деле это дефект в TGridPanel компонент Embarcadero:

http://qc.embarcadero.com/wc/qcmain.aspx?d=90324

7
задан Jens Mühlenhoff 11 January 2011 в 09:57
поделиться