本人写一程序,用到了用户登陆,连接的数据库是远程的MSSQL,用的是Soketconn。本地的数据窗口form添加了数据库连接控件,在程序运行时,因为首先要连接远程数据库,所以总是要等一段时间,才能显示出登陆界面,这样觉得很不顺畅。怎么写,可以运行时,先显示登陆窗口,待验证登陆信息时,再连接数据库,验证?
解决方案 »
- 向在线html编辑器提交表单,其采用iframe内嵌的编辑区,怎样向textarea提交数据,给出delphi代码,分不够再开贴给
- readfile 无法赋值动态二维数组????
- 问个弱弱的问题
- 郁闷呐,,为什么getprinter得到的打印机的状态都是0啊。。。
- 应网友的要求,请大家在提问题的时候最好能明确写出数据库类型。
- 急]毕业论文摘要翻译,300分(不够再加),一天内结贴
- 数据导出
- 怎么进行设计开发一个新的组件!
- 加硬盘,盘符能直接累增吗?
- 在Delphi中有没有调用网上邻居搜查在线电脑并保存到控件中的API函数
- 关于SPCOMM在接收数据的同时,发送命令出现滞后的问题!
- 从数据库中取出来内容转成Stream后,不生成xml文件直接放到ADOQuery
Forms,
Controls,
Unit1 in 'Unit1.pas' {Form1},
uWebIntface in 'uWebIntface.pas',
uWebInc in 'uWebInc.pas',
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {DataModule3: TDataModule};{$R *.res}begin
Application.Initialize;
Application.Icon := nil;
Application.CreateForm(TDataModule3, DataModule3);
Application.CreateForm(TForm1, Form1);
Form2 := TForm2.Create(nil);
try
if Form2.ShowModal = mrOk then begin
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
finally
Form2.Free;
end;end.怎么修改合适?
为了更人机一些,在成功连到数据库之前,登陆界面上显示正在登陆,请等待字样就好了。
begin
if Unit3.DataModule3.SocketConnection1.Connected = false then
Begin
Unit3.DataModule3.SocketConnection1.Connected := True;
End;
end;经过我测试,是可以的。
这样的话,如果在其他窗体中,也有用到数据库的,是不是也得先放一个timer,这样做啊?如果有多个表单,岂不是很麻烦,有没有这样的,就是将数据库连接的搞一个文件,凡是需要数据库连接的表单,只要引用一下就可以了?
你的adoconnection先不要连接啊。active:=false然后等窗体显示出来了,也就是timer启动了,用timer来将adoconnection.open
begin
Application.Initialize;
Application.Icon := nil;
with TForm2.Create(nil) do begin
if ShowModal = mrOK then begin
Application.CreateForm(TDataModule3, DataModule3);
Application.CreateForm(TForm1, Form1);
end ;
Free ;
end;
Application.Run;
end.
可以在登录界面的OnActive事件中执行连接操作
try
Unit3.DataModule3.SocketConnection1.Connected := True;
连接标志 := true;
except
连接标志 := false;
end;