You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Delphi 10.4中关联两个TEdit组件实现用户名跨窗体传递

Delphi 10.4 跨窗体传递TEdit用户名实现方案

以下方案均适配Delphi 10.4版本,默认命名约定:登录窗体为frmLogin,登录页用户名输入框为edtLoginUsername,后续业务窗体为frmMain,目标显示用户名的输入框为edtMainUsername,可根据你实际的命名替换。


方案1:直接控件引用(适合小型项目,实现最快)

操作步骤:

  • 在登录窗体的代码单元uses节,引入后续窗体的代码单元(如后续窗体单元名为MainUnit,直接添加到uses列表即可)
  • 在登录验证通过的逻辑后,直接给目标窗体的TEdit赋值,登录按钮点击事件示例代码:
procedure TfrmLogin.btnLoginClick(Sender: TObject);
begin
  // 原有账号密码校验逻辑,校验通过后执行以下代码
  if CheckAccountPass() then // 替换为你自己的校验逻辑
  begin
    frmMain := TfrmMain.Create(nil);
    try
      // 直接赋值给下一个窗体的TEdit
      frmMain.edtMainUsername.Text := edtLoginUsername.Text;
      frmMain.ShowModal;
    finally
      frmMain.Free;
    end;
    Close; // 关闭登录窗体
  end;
end;

如果你的后续窗体是项目自动创建的(非动态创建),无需写Create和Free逻辑,直接赋值后调用Show/ShowModal即可


方案2:全局变量中转(适合多窗体需要复用用户名的场景)

操作步骤:

  • 新建公共单元PublicUnit.pas,定义全局变量存储用户名:
unit PublicUnit;

interface

var
  G_CurrentUsername: string; // 全局存储当前登录用户名

implementation

end.
  • 登录窗体引用PublicUnit,校验通过后给全局变量赋值:
G_CurrentUsername := edtLoginUsername.Text;
  • 后续窗体引用PublicUnit,在OnCreate或OnShow事件中给TEdit赋值:
procedure TfrmMain.FormCreate(Sender: TObject);
begin
  edtMainUsername.Text := G_CurrentUsername;
end;

方案3:窗体属性传递(符合封装规范,推荐中大型项目使用)

操作步骤:

  • 在后续窗体的类定义中新增公开的Username属性:
type
  TfrmMain = class(TForm)
    edtMainUsername: TEdit;
  private
    FUsername: string;
    procedure SetUsername(const Value: string);
  public
    property Username: string read FUsername write SetUsername;
  end;
  • 实现SetUsername方法,属性赋值时自动更新TEdit内容:
procedure TfrmMain.SetUsername(const Value: string);
begin
  FUsername := Value;
  edtMainUsername.Text := FUsername;
end;
  • 登录校验通过后给属性赋值即可:
frmMain := TfrmMain.Create(nil);
try
  frmMain.Username := edtLoginUsername.Text;
  frmMain.ShowModal;
finally
  frmMain.Free;
end;

常见问题排查

  • 若提示控件不可访问,检查目标TEdit的Modifiers属性是否为默认的published或public
  • 若出现单元循环引用报错,可将单元引用放到代码单元的implementation节下而非interface节

内容的提问来源于stack exchange,提问作者Franklin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:06:04