Информация об изменениях

Сообщение Что могло измениться в VCL c SetParent ? от 09.11.2016 9:18

Изменено 09.11.2016 9:19 swame

В Delphi используем динамискую компоновку форм с использованием SetParent

В версии скопмилированной в XE2 форма выглядит так:

  Версия XE2


При компиляции в berlin форма выглядит так:

  Версия Berlin


Выпавшая на рисунке форма вставляется в панель на другой форме с помощью кода


class procedure TIFace.InsertPanel (Form: TForm; Panel: TWinControl);
begin
  Assert(Form<>nil);
  Assert(Panel<>nil);
  if (Form<>nil) then begin
    Form.align := alClient;
    Form.parent := Panel;
    Form.BorderStyle := bsNone;
    Form.Visible := true;
  end;
end;


Такой подход работал всегда со старыми вериями Delphi, в berlin не работает с НЕКОТОРЫМИ фоомами.
Есть идеи что изменилось в berlin?
Пробовал менять во вставляемой форме

FSizeDlg.Position := poDesigned


В некоторых случаях помогало, тут нет.
В Delphi используем динамискую компоновку форм с использованием SetParent

В версии скопмилированной в XE2 форма выглядит так (так должно быть):

  Версия XE2


При компиляции в berlin форма выглядит так:

  Версия Berlin


Выпавшая на рисунке форма вставляется в панель на другой форме с помощью кода


class procedure TIFace.InsertPanel (Form: TForm; Panel: TWinControl);
begin
  Assert(Form<>nil);
  Assert(Panel<>nil);
  if (Form<>nil) then begin
    Form.align := alClient;
    Form.parent := Panel;
    Form.BorderStyle := bsNone;
    Form.Visible := true;
  end;
end;


Такой подход работал всегда со старыми вериями Delphi, в berlin не работает с НЕКОТОРЫМИ фоомами.
Есть идеи что изменилось в berlin?
Пробовал менять во вставляемой форме

FSizeDlg.Position := poDesigned


В некоторых случаях помогало, тут нет.