Delphi:想要在第一次显示表单时运行一些代码

时间:2018-02-28 01:05:39

标签: delphi

使用Delphi RAD Studio 10.2和Object Pascal。

我显示的第一个表单是登录表单。然后,在成功登录后,根据用户类型(基于UserID),将显示另一个表单。我希望在显示表单时使用一些数据填充第二个表单的字段。到目前为止,我还没有办法做到这一点。

我可以使用OnCreate ...但我相信这是在我知道我的用户ID之前很早就被解雇了。

我一直在使用kludge,在表单上有一个按钮,用于填充字段,并且工作正常,但是任何其他尝试都导致“未声明的标识符”和“从此处无法访问”错误消息。我知道这可能是因为我不能正确理解对象模型,但实际上只是在寻找一种方法来完成工作。感谢所有的帮助,但正如你所知,我对这一切都是新手。非常感谢。

1 个答案:

答案 0 :(得分:0)

正如评论中已经提到的,OnShowOnActivate事件是到达这里的方法。
为了确保事件仅执行一次,可以在事件方法本身中使用布尔标志(丑陋)或将适当的表单事件属性设置为nil

procedure TForm1.FormActivate(Sender: TObject);
begin
  OnActivate := nil;
  [...]
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  OnShow := nil;
  [...]
end;