‘典型’登陆界面怎么做?
所谓的典型指:首先主界面显示,仅接着,登陆界面以模式小窗体出来验证你的合法性。
是不是很简单,可是我不会。
我的做法:把登陆界面放到了主界面的ONSHOW事件中,主窗体没出来,登陆界面就出来了,很不爽!
问题点数:100、回复次数:9Top
1 楼cuteant(我这张旧床票还能否登上你的破床|涛声是否依旧)回复于 2006-03-06 20:49:56 得分 30
那就改为OnActivate事件试试Top
2 楼myy()回复于 2006-03-06 21:09:08 得分 10
可以这样做:
在Form上放个TButton button1, 隐藏起来,在它的OnClick事件中写弹出登陆界面的代码,
然后在 Form的OnCreate 中写(在OnShow等也可以):
PostMessage(Handle,WM_COMMAND,0,Integer(button1.Handle));
因为PostMessage是异步的,不会阻碍Form的创建和显示等过程。Top
3 楼jinzhili(跑)回复于 2006-03-06 21:26:29 得分 10
在工程文件中写
program project1;
uses
Forms,
Controls,
SysUtils;
begin
Application.Initialize;
try
CurrentPath:=ExtractFilePath(Application.ExeName);
ComputName := GetComputName;
Application.Title := '************ ---- 测试版';
Application.CreateForm(TDM, DM); 数据模块
Application.CreateForm(TfmMain, fmMain); 主窗口
Application.CreateForm(TfmLogin, fmLogin); 验证窗口
fmLogin.ShowModal;
if fmLogin.ModalResult = mrOk then
begin
fmLogin.Free;
fmMain.Show;
Application.Run;
end
else begin
fmLogin.Free;
fmMain.Free;
dm.Free;
end;
except
Application.Terminate;
end;
end.Top
4 楼liangqingzhi(老之)回复于 2006-03-06 21:41:10 得分 10
登陆窗体动态创建,放在主窗体OnActivate事件即可
procedure TForm1.FormActivate(Sender: TObject);
var Fsign:TForm2;
begin
Fsign:=TForm2.Create(self);//动态创建登录窗体
while (Fsign.Edit1.Text<>'abc')and(Fsign.ModalResult<>mrcancel) do
begin
Fsign.ShowModal;
Fsign.Label1.Caption:='密码错误';
end;
if Fsign.Edit1.Text='abc' then
Fsign.Close
else Application.Terminate;
end;
Top
5 楼summersky204608()回复于 2006-03-07 08:57:59 得分 10
学习!Top
6 楼NightCloud()回复于 2006-03-07 14:08:11 得分 10
'所谓的典型指:首先主界面显示,仅接着,登陆界面以模式小窗体出来验证你的合法性。'
这样的话,最好用一个timer来实现Top
7 楼clasj(★知我☆)回复于 2006-03-07 14:41:53 得分 10
放个定时器吧:)
procedure TForm1.FormShow(Sender: TObject);
begin
Timer1.Interval:=1;
Timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled:=false;
Form2.ShowModal;
end;Top
8 楼rasimeno()回复于 2006-03-07 14:59:54 得分 5
放Timer 可以了吧,学习中Top
9 楼cs_winner(翼)回复于 2006-03-07 15:03:36 得分 5
clasj的
……
form2.showModal;
form1.hide
……Top




