델파인 로그인 구성에서 문의 사항 입니다
program HDesk;
uses
Forms,
main in 'main.pas' {Umain},
ucode in 'ucode.pas' {Form2},
mod_dbcon in 'mod_dbcon.pas' {DM: TDataModule},
login in 'login.pas' {ulogin};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TUmain, Umain);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TDM, DM);
Application.CreateForm(Tulogin, ulogin);
ulogin := tuLogin.Create(Application);
uLogin.ShowModal;
<< 이부분 화면 login 이면 에플리케이션실행
Application.Run;
end.
로그인 창에서 디비 확인 후
창닫기 구현좀
unit login;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, ExtCtrls, jpeg;
type
Tulogin = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Image1: TImage;
Label1: TLabel;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
ulogin: Tulogin;
implementation
{$R *.dfm}
procedure Tulogin.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then ActiveControl := Edit2;
end;
procedure Tulogin.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then Button1Click(NIL);
end;
procedure Tulogin.Button1Click(Sender: TObject);
var id:string;
pass:string;
str:string;
begin
id := edit1.Text;
pass := edit2.Text;
str := 'select * from tc_user where user_id = ''%s'' '
+ ' and user_pass = ''%s'' ';
str := Format(str,[Trim(Edit1.Text),Trim(Edit2.Text)]);
with adoquery1 do
begin
close;
sql.Clear;
sql.Add (str);
end;
try
ADOQuery1.open;
except
ShowMessage('Query Open : Error'+str);
end;
// showmessage(Inttostr(ADOQuery1.RecordCount));
if not ADOQuery1.Eof then
// label2.Caption :='완료'
<<<< 아디패스 확인이느 했는데 어찌 할지 ㅡ.ㅡ
<<,, 창을닫고 메안폼을 불러야 하는데
else
//정규사용자가 아님
label1.Caption :='사용자 ID 및 비밀번호를 확이하여 주새요';
ulogin.Free ;
ulogin := nil; <<< 로그인창이 닫히질 않습니다
end;
end.
// 이곳에는
program HDesk;
Application.Initialize;
Application.CreateForm(TUmain, Umain);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TDM, DM);
Application.CreateForm(Tulogin, ulogin);
Application.ShowMainForm := false; // 메인폼을 표시하지 않는다
ulogin := tuLogin.Create(Application);
try
uLogin.ShowModal;
// 로그인 성공시
if uLogin.ModalResult = mrOk then begin
Application.ShowMainForm := true; // 메인폼을 표시
Application.Run; // 프로그램 실행
end else begin
ShowMessage('로그인 실패로 프로그램을 종료합니다.');
end;
finally
uLogin.Free;
end;
// 로그인 유닛
unit login;
procedure Tulogin.Button1Click(Sender: TObject);
... 생략
if not ADOQuery1.Eof then begin
label2.Caption :='완료';
ModalResult := mrOk;
Close;
end else begin
//정규사용자가 아님
label1.Caption :='사용자 ID 및 비밀번호를 확이하여 주세요';
modalResult := mrCancel;
Close;
end;
end;
end.
이영주님께서 답변다신 방법대로 하셔도 되구요..
위와같이 하셔도 됩니다.
다만 웹에서 친거라 에러가 안나는지는 ... 만일 에러발생한다면 리플주세요 바로 확인해서 올려드릴게요