delphi - delphi SDI中创建新表单时传递参数

标签 delphi parameters vcl

好吧,如果这有点令人困惑,我很抱歉,但我不知道如何更好地解释它。我有一个聊天表单,在用户之前在 TLoginForm 中进行身份验证后显示。

用户登录后显示聊天表单:

with TChatForm.Create(Application) do
begin
    Show;
end;

我的问题是,如何将用户名传递给 chatForm,以便我可以在聊天中使用它作为昵称,考虑到表单会自动连接到服务器 OnShow,所以我需要已经发送的用户名。

我是delphi新手,如果我的代码有任何错误,请原谅。

最佳答案

如果用户名应该在对象的整个生命周期内固定,那么应该将其传递给构造函数。好处是不可能误用类并忘记分配用户名。

声明一个接收参数中额外信息的构造函数:

type
  TMyForm = class(TForm)
  private
    FUserName: string;
  public
    constructor Create(AOwner: TComponent; 
        const UserName: string);
  end;

constructor TMyForm.Create(AOwner: TComponent; 
        const UserName: string);
begin
  inherited Create(AOwner);
  FUserName := UserName;
end;

创建这样的表单:

MyForm := TMyForm.Create(Application, UserName);

关于delphi - delphi SDI中创建新表单时传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14033023/

相关文章:

c# - 将 Delphi 代码翻译成 C# (Blowfish)

virustotal api 的 Json 解析结果

javascript - 在前端 javascript 中向文档对象添加自定义属性

c++ - 通过 VCL 异常例程捕获 C++ 异常

delphi - 在Delphi中的参数中传递静态字节数组

delphi - 我可以使用 xsd :complexContent with the Delphi XML Binding Wizard?

WordPress 自动生成 "canonical"链接 - 如何添加自定义 URL 参数?

C# 默认可选参数选择器

memory-leaks - 追踪内存泄漏的最佳方法是什么

Delphi - 使用 TApplicationEvents OnShortCut 事件检测 Alt+C 按键