先自己定义一个全局记录,便于用户登录后放置用户信息(如ID、姓名、权限等) 然后在工程文件里进行控制,用户满足什么条件就启动相应的窗体 begin frmLogin := TfrmLogin.Create(Application); frmLogin.Update; frmLogin.ShowModal; if frmLogin.ModalResult = mrOK then //登录成功 begin frmLogin.Free; frmLogin.Hide; if 记录.权限 = 1 then begin Application.CreateForm(TfrmMain1,frmMain1); end else if 记录.权限 = 2 then begin Application.CreateForm(TfrmMain2,frmMain2); end . . . . . Application.Run; end else begin Application.Terminate; end; end;以上纯属个人意见,成功与否看你自己了,呵呵
TO del_c_sharp(头大中......) 这个问题我尝试了很多方法,错误提示均为"No MIDForm is Activitied" 只要MIDForm之前有窗体生成的话就会出错. 问题的症结在哪里呢?难道不能这样吗? TO lemon_jyg(lemon) 我现在已经也只能采用这种方法了,但是要搞清楚,上面那种方法到底行不行.
我刚刚帮你进行了一个简单的测试,确定没有任何问题,你上面提到的“No MIDForm is Activitied”错误可能是由于你的设置与代码问题
再加人判断语句来判断用户登录时根据其权限和所在部门的不同,生成不同的工作界面。
楼主不妨换个思路,MDIForm固定,然后动态生成不同的MDIChild
不就可以了
然后在工程文件里进行控制,用户满足什么条件就启动相应的窗体
begin
frmLogin := TfrmLogin.Create(Application);
frmLogin.Update;
frmLogin.ShowModal;
if frmLogin.ModalResult = mrOK then //登录成功
begin
frmLogin.Free;
frmLogin.Hide; if 记录.权限 = 1 then
begin
Application.CreateForm(TfrmMain1,frmMain1);
end
else if 记录.权限 = 2 then
begin
Application.CreateForm(TfrmMain2,frmMain2);
end
.
.
.
.
.
Application.Run;
end
else
begin
Application.Terminate;
end;
end;以上纯属个人意见,成功与否看你自己了,呵呵
这个问题我尝试了很多方法,错误提示均为"No MIDForm is Activitied"
只要MIDForm之前有窗体生成的话就会出错.
问题的症结在哪里呢?难道不能这样吗?
TO lemon_jyg(lemon)
我现在已经也只能采用这种方法了,但是要搞清楚,上面那种方法到底行不行.
有个问题想请教,想编一个MIDI窗口查询程序,第一次查询后弹出查询结果在第一个MIDI窗口,第二次查询后弹出查询结果在第二个MIDI窗口,第三次....,每次MIDI窗口的结果不一样,但我编出的结果却是所有MIDI窗口显示结果均为最后一次的。怎样解决这个问题,期待你的答复。( [email protected] )