好吧,如果这有点令人困惑,我很抱歉,但我不知道如何更好地解释它.我有一个聊天表单,在用户事先在TLoginForm中进行身份验证后显示.
with TChatForm.Create(Application) do begin Show; end;
我的问题是,如何将用户名传递给chatForm,以便我可以在聊天中将其用作昵称,考虑到表单自动连接到服务器OnShow的事实,所以我将需要已经发送的用户名.
解决方法
如果用户名应在对象的整个生命周期内修复,则应将其传递给构造函数.好处是不能滥用课程而忘记分配用户名.
声明一个在参数中接收额外信息的构造函数:
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);