如何在移动时保持所有表格位置相同

How do I keep all my forms position the same when moved

您好,我有一个包含多个表单的 delphi 应用程序,我希望这样当用户单击 open/show 一个新表单时,新表单将以 Form.Left 和 Form.Top 从以前的形式复制到新形式。我尝试为此使用 Sender:TObject,但我只有基本的图形 delphi 和面向对象的知识。对于使用 OnClick 事件从主菜单表单打开数据库表单的示例,这就是我每次手动执行此操作的方式:

MainMenuForm.Hide;
DatabaseForm.Left:=MainMenuForm.Left;
DatabaseForm.Top:=MainMenuForm.Top;
DatabaseForm.Show; 

但是我有多个表单,每个表单都有多个 OnClick 事件,所以我每次都必须使用不同的表单来执行此操作。我知道这听起来可能令人困惑,但希望有人知道我在说什么,而且我知道这个问题可能有一个简单的解决方案,谢谢。

可能最简单的方法是将其放入接受两种形式的过程中:

procedure ShowHideForm(OldForm, NewForm: TForm);
begin
  OldForm.Hide;
  NewForm.Left := OldForm.Left;
  NewForm.Top := OldForm.Top;
  NewForm.Show;
end;