小编Mar*_*vic的帖子

调整表单大小并保持纵横比

类似的问题:在保持宽高比的同时调整表格大小

基本上,我想要的是调整窗体大小并保持其宽高比,但我也希望调整大小以跟随光标.上面主题中的答案提供了半满意的解决方案 - 它可以工作,但调整大小比它应该慢2倍.当我开始通过X轴调整表单大小时,您可以看到光标的位置以及表单大小:

http://i.imgur.com/SUIli7N.png

我认为,因为它调整速度慢2倍,我应该省略代码中的0.5乘数,它会工作,但没有骰子.这是我目前正在使用的代码:

type
  TfrmTable = class(TForm)
    procedure FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean);
    procedure FormCreate(Sender: TObject);
  private
    FAspectRatio: Double;
  public
  end;

var
  frmTable: TfrmTable;

implementation

{$R *.dfm}

procedure TfrmTable.FormCreate(Sender: TObject);
begin
  FAspectRatio := Width / Height;
end;

procedure TfrmTable.FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean);
begin
  NewHeight := Round(0.50 * (NewHeight + NewWidth / FAspectRatio));
  NewWidth := Round(NewHeight * FAspectRatio);
end;
Run Code Online (Sandbox Code Playgroud)

我尝试了另一种方法,使用这样的方法:

procedure TfrmTable.FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-xe2

7
推荐指数
1
解决办法
2042
查看次数

标签 统计

delphi ×1

delphi-xe2 ×1