try
Application.Initialize;
Application.Title := '123';
Application.CreateForm(TfrmMain, frmMain);
Application.CreateForm(TfrmFlash, frmFlash);
frmFlash.Show;
frmFlash.Refresh;
finally
frmFlash.Free;
end;
Application.Run;
Application.Initialize;
Application.Title := '123';
Application.CreateForm(TfrmMain, frmMain);
Application.CreateForm(TfrmFlash, frmFlash);
frmFlash.Show;
frmFlash.Refresh;
finally
frmFlash.Free;
end;
Application.Run;
登录窗口可以放在pdr文件的MainForm.Create之前,或者在MainForm的onShow中处理。
2:在工程文件中的Applicatio.run 前写:
application.initialize;
Application.createForm(Form1,Tform1);
100:
Form1.Show;
if edit1.text<>'yourpassword' then
goto 100
else
begin
form1.close;
.....
end;
unit frmLogin;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls,frmFull,unit1;type
TForm4 = class(TForm)
imgAthena: TImage;
lblUserName: TLabel;
lblPassword: TLabel;
edtUserName: TEdit;
edtPassWord: TEdit;
btnOK: TButton;
btnCancel: TButton;
procedure btnOKClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form4: TForm4;implementation{$R *.DFM}procedure TForm4.btnOKClick(Sender: TObject);
begin
//==============打开oracle记录集
DataSet.Connection:=Cnn;
DataSet.CommandText:='select * from pwd where usrname=' + edtUserName.Text + ' and passwd=' + edtPassWord.Text + '';
DataSet.Open;
if dataset.Fields.Count<>0 then
begin
showmessage('用户名或密码不正确!');
close;
end
else
begin
form4.hide;
form1.show; //这个是我要显示的主窗体。
end
end;
//project1的代码
program Project1;uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
frmFull in 'frmFull.pas' {Form3},
frmLogin in 'frmLogin.pas' {Form4};{$R *.RES}begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.Run;
end.
procedure TMainForm.FormShow(Sender: TObject);
var
LogonForm : TLogonForm;
i : integer;
MyIniFile : TiniFile;
begin
LogonForm := TLogonForm.Create(self);
with DataMod.TblManager do
begin
Open;
First;
while not eof do
begin
LogonForm.CmbBoxLogName.Items.Add(Fieldbyname('Name').AsString);
Next;
end;
end;
for i:=0 to 3 do
begin
if i=3 then
begin
showmessage('登录失败!!!');
Application.Terminate;
end
else begin
if LogonForm.ShowModal=mrOK then
begin
LogonName := LogonForm.CmbBoxLogName.Text;
if LogonName = 'SYSADMINISTRATOR' then
begin
MyIniFile := TiniFile.Create(GetSysDirectoryPath+'\slower.ini');
try
if not MyIniFile.SectionExists('manager') then
MyIniFile.WriteString('manager','pwd','8037925');
if LogonForm.EditPassword.Text = MyIniFile.ReadString('manager','pwd','ErrorPWD') then
begin
// Popedom:= 0;
Break
end
else
showmessage('密码错误!');
finally
MyIniFile.Free;
end;
end
else
with DataMod.TblManager do
begin
if Locate('Name',vararrayof([LogonName]),[]) then
begin
if LogonForm.EditPassword.Text = Fieldbyname('password').AsString then
begin
// PopedomSingle := Fieldbyname('popedom1').AsBoolean;
Break;
end
else
Showmessage('密码错误!');
end
else
showmessage('用户名不存在!!!')
end;
end
else begin
Application.Terminate;
Exit;
end;
end;
end;
StatusBar1.Panels[2].Text := '当前操作员:' + LogonName;
StatusBar1.Panels[1].Text := '当前日期:' + DateToStr(Now);
ActionSaveLogon.Execute;
end;
Application.CreateForm(Tdm1, dm1); // 数据模块
Application.CreateForm(TFrmLogin, FrmLogin); // 登录窗口
if FrmLogin.Login(...)=mrok then // 登录函数,返回值正确
begin
FrmLogin.Hide;
FrmLogin.Free;
FrmLogin:=Nil;
Application.CreateForm(TForm1, Form1); // 真正的主窗口
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm6, Form6);
Application.Run;
end
else Application.Terminate;
form4.hide;
form1.show;
改为
canlogin:=true;
form4.close;
在close事件中加入如下代码
action:=cafree;
修改项文件为
begin
Application.Initialize;
Application.CreateForm(TForm4, Form4);
form4.hide;
form4.showmodal;
if canlogin=true then
begin
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.Run;
end
else
application.terminate;
end.
Application.Initialize;
Application.Title := '123';
Application.CreateForm(TfrmMain, frmMain);
Application.CreateForm(TfrmFlash, frmFlash);
frmFlash.Show;
frmFlash.Refresh;
finally
frmFlash.Free;
end;
Application.Run
改成:
try
Application.Initialize;
Application.Title := '123';
frmFlash = TfrmFlash.Create(Application)
frmFlash.Show;
frmFlash.Update;
Application.CreateForm(TfrmMain, frmMain);
finally
frmFlash.Hide
frmFlash.Free;
end;
Application.Run