小弟新手,有下列问题,请给出明确的代码! ( 积分: 100 )

  • 主题发起人 清风徐來
  • 开始时间

清风徐來

Unregistered / Unconfirmed
GUEST, unregistred user!
1:主程序呼出登陆界面后,输入密码后,但登陆界面仍然存在,当关掉登陆界面后,主程序才显示出来!怎么解决此问题?
2:怎样动态创建条件选择,然后获得查询数据,还有在哪个控件里面动态创建最好?比如:COMBOBOX+(+EDIT+)+YES/NO。
3:怎样用指定的网站搜索EDIT或BUTTON上显示的需要查询的网页?如:用www.baidu.com来搜索。
 
1:主程序呼出登陆界面后,输入密码后,但登陆界面仍然存在,当关掉登陆界面后,主程序才显示出来!怎么解决此问题?
2:怎样动态创建条件选择,然后获得查询数据,还有在哪个控件里面动态创建最好?比如:COMBOBOX+(+EDIT+)+YES/NO。
3:怎样用指定的网站搜索EDIT或BUTTON上显示的需要查询的网页?如:用www.baidu.com来搜索。
 
1:你要隐藏登陆界面...
2:自己做一个查询控件,我就有一个..
 
[:(!]
怎么没人回答我!!!!!!!!新手的问题大家多多帮忙,我现在也是delphi的支持者,可是站在同一战线上的哟。。。
 
把代码贴出来! 登陆窗体没有释放吧!
 
编辑 *.DPR 文件
begin
Application.Initialize;
Application.Title := 'GL-1000光缆监测';
SplashForm:= TSplashForm.Create(Application);
SplashForm.Show;
SplashForm.Update;
Application.CreateForm(TdmOtdr, dmOtdr);
if Login then
begin
SplashForm.labMsg.Caption:='正在初始化OTDR卡,请稍候...';
SplashForm.labMsg.Visible:= True;
SplashForm.Update;
Application.CreateForm(TMain, Main)
end else
Application.Terminate;
SplashForm.Free;
Application.Run;
end.
 
其中登录窗口应该动态创建,动态释放。
function Login : boolean ;
begin
with TfmLoginDlg.Create(nil)do
begin
try
if ShowModal = mrOk then
Result := True
else
Result := False;
finally
Free ;
end;
end;
end;
 
我在主程序的写入:
procedure TForm1.FormCreate(Sender: TObject);
var
dl:TForm2;
begin
dl:=TForm2.Create(self);
dl.ShowModal;
end;
end.

另外请大家把我后面两个小小的问题也解决一下,非常感谢了
 
给你个示范代码吧:
//**********************************************
//工程
//***********************************************
program Project;
uses
Forms,
SysUtils,
main in 'main.pas' {MainForm},
flash in 'flash.pas' {FlashForm},
login in 'login.pas' {LoginForm};
{$R *.res}
begin
flashform:=tflashform.Create(application);
flashform.Show;
flashform.Update;
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
sleep(3000);  //flashform显示的时间
flashform.Close ;
flashform.Free ;
Application.Run;
end.
//**********************************************
//主窗体 (想做成什么样的程序就自己添加代码吧)
***********************************************
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,login;
type
TMainForm = class(TForm)
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.dfm}
procedure TMainForm.FormActivate(Sender: TObject);
begin
loginform:=tloginform.Create(application);
loginform.ShowModal;
loginform.Free;
end;
end.
//*****************************************************
//flash窗口。(嘻嘻,用来显示自己的LOGO以及软件名称)
//*****************************************************
unit flash;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TFlashForm = class(TForm)
Panel1: TPanel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
FlashForm: TFlashForm;
implementation
{$R *.dfm}
end.
//***************************************************
//登陆窗口。(验证是否为合法用户)
//***************************************************
unit login;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TLoginForm = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
LoginForm: TLoginForm;
loginistrue:boolean;
implementation
{$R *.dfm}
procedure TLoginForm.BitBtn2Click(Sender: TObject);//BitBtn2:退出按钮
begin
application.Terminate;
end;
procedure TLoginForm.BitBtn1Click(Sender: TObject);//BitBtn1:登陆按钮
begin
loginistrue:=true; 
{这里我省去了密码校验部分的过程,其实那个过程很好写的。if (密码正确) then
loginistrue:=true;括号中的部分也可以写成把用户输入的密码和从数据库中取的原始密码校验的过程,也可以写成对密码字符串加密解密的函数}
loginform.Close;
end;
procedure TLoginForm.FormCreate(Sender: TObject);
begin
loginistrue:=false;
end;
procedure TLoginForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if not loginistrue then
application.Terminate;//密码不对,关闭工程
end;
end.
 
我在主程序的写入:
procedure TForm1.FormCreate(Sender: TObject);
var
dl:TForm2;
begin
dl:=TForm2.Create(self);
dl.ShowModal;
end;
end.
改为:
procedure TForm1.FormCreate(Sender: TObject);
var
dl:TForm2;
begin
dl:=TForm2.Create(self);
if dl.ShowModal= mrOK then
dl.free
else
Application.terminate;
end;
end.
在你的TForm2里面验证密码。
 
只要HIDE登录窗就可;
除了登录窗和数据模板,我都选择手工生成;
procedure TfmUserLogin.btnOkClick(Sender: TObject);
begin
if (DM1.OPERATORTab.Locate('Operatorid',edtOperatorID.Text,[loCaseInsensitive]))
and (DM1.OPERATORTab.FieldByName('OPassword').AsString=edtPassword.Text) then
//Uppercase(edtPassword.Text)
begin
Screen.Cursor :=crHourGlass;
// UserLog:= TUserLog.Create();
UserLog.SetUserID(edtOperatorID.Text);
UserLog.SetPassword(edtPassword.Text);
ModalResult := mrOk;
fmUserLogin.Hide;
// inlogs('½øÈëϵͳ',0);//写日志
frmShow(frmmain,Tfrmmain);
//自编窗口手工生成函数,
{//自动生成窗口
try
frmmain.ShowModal;//Èç¹ûfrmmainÊÇÔÚ¹¤³ÌÖÐ×Ô¶¯´´½¨
finally
Screen.Cursor := crDefault;
end;
}
end else
begin
inc(incount);
if incount>3 then
begin
application.MessageBox('¶Ô²»Æð,ÄãÎÞȨʹÓñ¾ÏµÍ³!','¾¯¸æ',MB_ICONSTOP OR MB_OK);
Application.Terminate;
end;
application.MessageBox('Î޴˲Ù×÷Ô±/¿ÚÁî´íÎó',pchar(Application.Title),MB_OK or MB_ICONStop);
edtOperatorID.SetFocus;
end;
end;
 
关于第一个问题,有待我验证。
后面的问题,请各位帮忙解决下,我也在不断的摸索中,但没得出答案。。。
 
TO YANGWER0308:
谢谢,您的第一个问题回答我已经接受!请您继续回答后面两个问题。等所有问题解决完毕,我将为您所回答的第一个问题加上30分。
 
我晕,不行,第一个问题还是没解决!密码输入正确后登陆界面还是存在。
//form2登陆界面:
如果密码正确
begin
Form1.ModalResult:=mrok;//form1为主界面
Form1.ShowModal;
Self.Close;//或动态创建form1也可以,但还是无法达到效果
end
else
begin
Application.MessageBox('用户名或密码错误,请重新输入!','警告',mb_iconwarning+mb_ok);
edit1.Clear;
edit1.SetFocus;
end;
//主界面form1:
procedure TForm1.FormCreate(Sender: TObject);
var
dl:TForm2;
begin
dl:=TForm2.Create(self);
if dl.ShowModal= mrOK then
dl.free
else
Application.terminate;
end;
end.
请各位再帮帮小弟解决啊。。。。
 
procedure TForm2.btnOKClick(Sender: TObject);
begin
if edtPassword= '1234' then
ModalResult:= mrOK
else
begin
edtPassword.Clear;
edtPassword.SetFocus;
end;
end;

procedure TForm2.btncancelClick(Sender: TObject);
begin
ModalResult:= mrCancel;
end;

再结合Form1的程序
procedure TForm1.FormCreate(Sender: TObject);
var
dl:TForm2;
begin
dl:=TForm2.Create(self);
if dl.ShowModal= mrOK then
dl.free
else
Application.terminate;
end;
 
另外的话,建议你多看看Delphi的教材,打好基础。
 
怎么还没解决?告诉我你的信箱,给你发例子
 
哎,问了三个问题,结果连一个问题都没解决,郁闷!
我一直在看《DELPHI7从入门到精通》。。。
如果实在没人帮忙回答,我就收分了咯。。。
 
TO:YANGWEI0308
谢谢你,最终还是你帮了我,感谢感谢。后面两个问题一直没发解决,我把书都看遍了,一直找不到合理的答案,可能是我太笨了
 
第一个问题很详细了
2、可以用一个listview来保存已经生存的条件,
具体显示就是一个combox放字段,一个combobox 放操作,一个日期空间,一个edit,还有写辅助的按扭,那些东西根据字段类型决定显示与否
3、
用ShellExecute打开一个网页
function Searchgoogle(_strSearch: string);
var
strSearch : string;
begin
strSearch := 'http://www.google.com/search?sourceid=navclient&hl=zh-CN&ie=UTF-8&rls=GGLD,GGLD:2005-30,GGLD:zh-CN&q=';

strSearch := strSearch + URL转化函数(_strSearch);
ShellExecute(Handle, 'open', PChar(strSearch),nil,nil, SW_SHOWNORMAL);

这里有个url编码函数
http://www.7880.com/Info/Article-62590080.html
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
回复
0
查看
1K
天地弦
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部