调整宽度约束的帧大小

时间:2017-04-04 08:23:13

标签: delphi delphi-xe6

我有简单的TForm1形式,有2个面板。首先是Align := alLeft,第二个是Align := alClient,空框架TFrame1。当我在表单中添加以下过程时,一切都可以正常运行。

procedure TForm1.FormCreate(Sender: TObject);
var
  lFrame1, lFrame2 : TFrame1;
begin
  lFrame1 := TFrame1.Create(nil);
  lFrame1.Parent := pnl1;
  lFrame1.Align  := alClient;
  lFrame2 := TFrame1.Create(nil);
  lFrame2.Parent := pnl2;
  lFrame2.Align  := alClient;
end;

procedure TForm1.FormResize(Sender: TObject);
begin
  pnl1.Width := ClientWidth div 2;
end;

enter image description here

但是当我为Constrains设置TFrame1时,例如TFrame1.Contraints.MinWidth := 100并最大化并恢复表单,那么表单将不会返回其先前的状态。无论帧大小,表单大小或约束值如何,它始终以相同的方式结束。在我的情况下,默认表单有300宽度,在最大化和恢复后,它以1062结束。但是没有ConstraintsFormResize它可以工作。有人可以解释这种奇怪的行为吗?

enter image description here

0 个答案:

没有答案