Q&A

  • Logon윈도우에서 실명 확인 후 ...
[질문] Logon윈도우에서 실명 확인 후 다음 윈도우로 가기

안녕하세요 이상석이라고합니다.

저는 시사영어사 토익위원회 재직중에 있습니다.

사내 프로그램을 개발 중인데 MDI폼에서 자식윈도우로 LOGIN

윈도우를 만들었습니다. 그리고 ID와 Password가 맞으면 다른

윈도우로 넘어가도록 하는데, LOGIN윈도우에서 ID,Password확인하는

것까지는 되었는데, 다른 자식윈도우가 만들어 지지 않습니다.

어떻게 해야하는지요?

부탁드립니다.. 그럼 20000.

--LOGIN 확인 버튼 부분 소스------------------

procedure TFormLogin.BtnOkClick(Sender: TObject);

begin

with DMtwt.QueryUser do begin

close;

Sql.Clear;

Sql.ADD('Select ID From User ');

Sql.Add('Where ID= "' + EditID.Text + '" ');

Open;

end;



with DMtwt.QueryUser2 do begin

close;

Sql.Clear;

Sql.ADD('Select Password From User ');

Sql.Add('Where Password= "' + EditPassword.Text + '" ');

Open;

end;

//------>로그인 시작 부분

If Length(EditID.Text) = 0 Then

begin

Application.Messagebox('ID를 넣어주세요','확인',MB_OK);

Exit;

end

Else If Length(EditPassword.Text) = 0 Then

begin

Application.Messagebox('패스워드를 넣어주세요','확인',MB_OK);

Exit;

end

Else If DMtwt.QueryUser.FieldByName('ID').Asstring = EditID.Text Then//and

if DMtwt.QueryUser2.FieldByName('Password').Asstring = EditPassword.Text Then

close

Else

begin

Application.Messagebox('사용자나 패스워드가 틀립니다.','확인',MB_OK);

Exit;

EditID.Setfocus;

end;

//-----> 로그인 확인 끝 부분

end;



2  COMMENTS
  • Profile
    모승열 1999.05.24 20:11
    메인윈도우의 name이 FrmMain, 자식윈도우 name이 FrmChild라면

    .

    .

    .

    implementation

    uses uChild;//FrmChild의 유니트명

    .

    .

    .

    var

    FrmChild:TFrmChild;

    begin

    FrmChild:=TFrmChild.Create(self);

    FrmChild.Show; //없어도 되는데 없으면 경고메세지 나옴.

    .

    .

    .



    도움이 되었으면 합니다.

    end;



    이상석 wrote:

    > 안녕하세요 이상석이라고합니다.

    > 저는 시사영어사 토익위원회 재직중에 있습니다.

    > 사내 프로그램을 개발 중인데 MDI폼에서 자식윈도우로 LOGIN

    > 윈도우를 만들었습니다. 그리고 ID와 Password가 맞으면 다른

    > 윈도우로 넘어가도록 하는데, LOGIN윈도우에서 ID,Password확인하는

    > 것까지는 되었는데, 다른 자식윈도우가 만들어 지지 않습니다.

    > 어떻게 해야하는지요?

    > 부탁드립니다.. 그럼 20000.

    > --LOGIN 확인 버튼 부분 소스------------------

    > procedure TFormLogin.BtnOkClick(Sender: TObject);

    > begin

    > with DMtwt.QueryUser do begin

    > close;

    > Sql.Clear;

    > Sql.ADD('Select ID From User ');

    > Sql.Add('Where ID= "' + EditID.Text + '" ');

    > Open;

    > end;

    >

    > with DMtwt.QueryUser2 do begin

    > close;

    > Sql.Clear;

    > Sql.ADD('Select Password From User ');

    > Sql.Add('Where Password= "' + EditPassword.Text + '" ');

    > Open;

    > end;

    > //------>로그인 시작 부분

    > If Length(EditID.Text) = 0 Then

    > begin

    > Application.Messagebox('ID를 넣어주세요','확인',MB_OK);

    > Exit;

    > end

    > Else If Length(EditPassword.Text) = 0 Then

    > begin

    > Application.Messagebox('패스워드를 넣어주세요','확인',MB_OK);

    > Exit;

    > end

    > Else If DMtwt.QueryUser.FieldByName('ID').Asstring = EditID.Text Then//and

    > if DMtwt.QueryUser2.FieldByName('Password').Asstring = EditPassword.Text Then

    > close

    > Else

    > begin

    > Application.Messagebox('사용자나 패스워드가 틀립니다.','확인',MB_OK);

    > Exit;

    > EditID.Setfocus;

    > end;

    > //-----> 로그인 확인 끝 부분

    > end;

    >





  • Profile
    이상석 1999.05.24 22:04
    모승열 wrote:

    > 메인윈도우의 name이 FrmMain, 자식윈도우 name이 FrmChild라면

    > .

    > .

    > .

    > implementation

    > uses uChild;//FrmChild의 유니트명

    > .

    > .

    > .

    > var

    > FrmChild:TFrmChild;

    > begin

    > FrmChild:=TFrmChild.Create(self);

    > FrmChild.Show; //없어도 되는데 없으면 경고메세지 나옴.

    > .

    > .

    > .

    >

    > 도움이 되었으면 합니다.

    > end;

    >

    > 이상석 wrote:

    > > 안녕하세요 이상석이라고합니다.

    > > 저는 시사영어사 토익위원회 재직중에 있습니다.

    > > 사내 프로그램을 개발 중인데 MDI폼에서 자식윈도우로 LOGIN

    > > 윈도우를 만들었습니다. 그리고 ID와 Password가 맞으면 다른

    > > 윈도우로 넘어가도록 하는데, LOGIN윈도우에서 ID,Password확인하는

    > > 것까지는 되었는데, 다른 자식윈도우가 만들어 지지 않습니다.

    > > 어떻게 해야하는지요?

    > > 부탁드립니다.. 그럼 20000.

    > > --LOGIN 확인 버튼 부분 소스------------------

    > > procedure TFormLogin.BtnOkClick(Sender: TObject);

    > > begin

    > > with DMtwt.QueryUser do begin

    > > close;

    > > Sql.Clear;

    > > Sql.ADD('Select ID From User ');

    > > Sql.Add('Where ID= "' + EditID.Text + '" ');

    > > Open;

    > > end;

    > >

    > > with DMtwt.QueryUser2 do begin

    > > close;

    > > Sql.Clear;

    > > Sql.ADD('Select Password From User ');

    > > Sql.Add('Where Password= "' + EditPassword.Text + '" ');

    > > Open;

    > > end;

    > > //------>로그인 시작 부분

    > > If Length(EditID.Text) = 0 Then

    > > begin

    > > Application.Messagebox('ID를 넣어주세요','확인',MB_OK);

    > > Exit;

    > > end

    > > Else If Length(EditPassword.Text) = 0 Then

    > > begin

    > > Application.Messagebox('패스워드를 넣어주세요','확인',MB_OK);

    > > Exit;

    > > end

    > > Else If DMtwt.QueryUser.FieldByName('ID').Asstring = EditID.Text Then//and

    > > if DMtwt.QueryUser2.FieldByName('Password').Asstring = EditPassword.Text Then

    > > close

    > > Else

    > > begin

    > > Application.Messagebox('사용자나 패스워드가 틀립니다.','확인',MB_OK);

    > > Exit;

    > > EditID.Setfocus;

    > > end;

    > > //-----> 로그인 확인 끝 부분

    > > end;

    > >

    >

    >

    많은 도움이 되었습니다.

    그런데 어느부분에 써 주어야하난요? Login은 MDIChild이고, 확인 부분에

    위의 코드를 넣어보니 다음 열리는 창도 닫아지는데...

    다음과 같이 넣었습니다.

    ------------------------전체 소스 코딩---------------

    unit login;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls, Db, DBTables, Buttons;



    type

    TFormLogin = class(TForm)

    GroupBox1: TGroupBox;

    BtnOk: TBitBtn;

    BtnCancel: TBitBtn;

    Label1: TLabel;

    Label2: TLabel;

    EditID: TEdit;

    EditPassword: TEdit;

    procedure BtnCancelClick(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

    procedure BtnOkClick(Sender: TObject);



    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    FormLogin: TFormLogin;



    implementation



    {$R *.DFM}

    uses

    DM_TWT,iniFiles, FormExam;





    procedure TFormLogin.BtnCancelClick(Sender: TObject);

    begin

    close;

    end;



    procedure TFormLogin.FormClose(Sender: TObject; var Action: TCloseAction);

    begin

    Action := caFree;

    end;



    procedure TFormLogin.BtnOkClick(Sender: TObject);

    var ForExamInsert:TFormExamInsert;

    begin

    with DMtwt.QueryUser do begin

    close;

    Sql.Clear;

    Sql.ADD('Select ID From User ');

    Sql.Add('Where ID= "' + EditID.Text + '" ');

    Open;

    end;



    with DMtwt.QueryUser2 do begin

    close;

    Sql.Clear;

    Sql.ADD('Select Password From User ');

    Sql.Add('Where Password= "' + EditPassword.Text + '" ');

    Open;

    end;

    //------>로그인 시작 부분

    If Length(EditID.Text) = 0 Then

    begin

    Application.Messagebox('ID를 넣어주세요','확인',MB_OK);

    Exit;

    end

    Else If Length(EditPassword.Text) = 0 Then

    begin

    Application.Messagebox('패스워드를 넣어주세요','확인',MB_OK);

    Exit;

    end

    Else If DMtwt.QueryUser.FieldByName('ID').Asstring = EditID.Text Then//and

    if DMtwt.QueryUser2.FieldByName('Password').Asstring = EditPassword.Text Then

    begin

    close

    end

    Else

    begin

    Application.Messagebox('사용자나 패스워드가 틀립니다.','확인',MB_OK);

    Exit;

    EditID.Setfocus;

    end;

    //-----> 로그인 확인 끝 부분

    FormExamInsert:=TFOrmExamInsert.Create(self);

    FormExamInsert.Show; //없어도 되는데 없으면 경고메세지 나옴.

    end;



    end.

    ---------------------------------------------

    죄송하지만 다시 알려주십시요. 그럼 즐거운 하루되세요.

    20000.

    • 이상석
    • 1999.05.24 19:17
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 모승열
      1999.05.24 20:11
      메인윈도우의 name이 FrmMain, 자식윈도우 name이 FrmChild라면 . . . implementation uses uChild;//...
    • 이상석
      1999.05.24 22:04
      모승열 wrote: > 메인윈도우의 name이 FrmMain, 자식윈도우 name이 FrmChild라면 > . > . > . > imple...
    • 조용덕
    • 1999.05.24 19:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.24 22:04
      아래를 참고하세요. 알맞게 고쳐서 사용하세요. procedure DrawIcon(Fs: String); var Icon ...
    • 이미영
    • 1999.05.24 18:07
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.24 18:40
      GetFocus를 사용해 보세요. GetFocus를 하면 현재 키보드입력상태에 있는 콘트롤의 핸들값을 반환합니다. ...
    • 이미영
      1999.05.24 22:08
      Procedure MessageHandler(mm: Tmessage); var CHandle: HWND; Begin CHandle := GetFocus(); ...
    • 이정욱
      1999.05.24 22:22
      아래를 참고하세요. 쩝.. 근데 저 안 멋져요.. ^^; procedure SendData(TargetWnd : HWnd; StrMsg: str...
    • 최장민
    • 1999.05.24 17:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.24 18:57
      TMediaPlayer를 보면 OnNotify 이벤트가 있습니다. 이곳에서 코딩을 해주시면 되는데... 예를들면.. pro...
    • 하명훈
    • 1999.05.24 15:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.24 18:43
      데이타베이스는 어떤것을 사용하셨나요? 혹시 ODBC로 연결을 하셨는지요? 짐작이 가는것이라면 맨 처음 ...
    • 이정현
    • 1999.05.24 11:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.24 18:45
      AsMemo말고 AsString으로 해보세요. Query1.ParamByName('N3').AsString := Memo1.Text; //메모... 그리...
    • VMNT
    • 1999.05.24 08:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.24 19:05
      아마도 생성은 하셨지만 어느순간에 지워야 하는지를 여쭙는것 같습니다. 그렇다면 이렇게 해보세요. Chi...
    • 영인
    • 1999.05.24 06:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.05.24 08:42
      영인 wrote: > 집합형 변수중에서 궁금한게 있는데요...빨리 답을 좀 알아야 하는 상황이라서......어느 ...
    • 박용근
    • 1999.05.24 02:37
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 모승열
      1999.05.24 19:56
      박용근 wrote: > 안녕하세요. > 스트링그리드에서 정렬을 할려고 하는데 잘 되지 않아요. > 정렬하는 ...
    • 김우철
      1999.05.24 11:21
      정확히 어떤 내용인지 모르겠지만, 혹시 도움이 될까 해서 적습니다. db에 있는 데이터라면 SQL의 Order B...
    • 이호선
    • 1999.05.23 23:32
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.24 01:08
      이호선 wrote: > 안녕하세요.. > 시스템 디렉토리(예 : C:Windows 또는 C:WINDOWSSYTEM )을 얻어올수 있...
    • 초심
      1999.05.24 00:15
      이호선 wrote: > 안녕하세요.. > 시스템 디렉토리(예 : C:Windows 또는 C:WINDOWSSYTEM )을 얻어올수 있...
    • 조진희
    • 1999.05.23 21:02
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.05.24 01:16
      조진희 wrote: > 제가 델파이 헬펑에서 음력양력 로직을 받아서 작업을 하고 있어요.. > 근데 아무리 봐...
    • 초보
      1999.05.25 10:18
      정말 감사합니다.. 훨씬 이해가 가는군요.. 근데 저희 초보들은 파라미터는 쿼리 할때 변수사용하려고 사...
    • 초보
    • 1999.05.23 08:32
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 초심
      1999.05.24 00:40
      초보 wrote: > 저희가 개발중인 프로그램의 프로젝트 이름을 바꾸려고 해요... > 어디를 바꾸면 되는지요...
    • 초보
      1999.05.24 08:05
      고맙습니다.. 근데요... 한글은 안되나요.. 그래도...정말 정말 고마와요...
    • 박성식
    • 1999.05.23 07:01
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.24 01:10
      아스키 문자라는것이.. 아스키 코드를 말씀하시나요? 그렇다면... ord 를 사용하시면 됩니다. 단, Ord...
    • 박성식
      1999.05.27 23:09
      이정욱 께서 말씀하시기를... > 아스키 문자라는것이.. 아스키 코드를 말씀하시나요? > 그렇다면... > ...
    • 이정욱
      1999.05.27 23:28
      온라인 상에서 직접 작성하는것이라서 수정이 필요할 수 있습니다. function StrToAsc(Str : String) : ...
    • 안명호
    • 1999.05.23 06:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.24 01:12
      SetForegroundWindow 를 사용하세요. 메세지 박스가 뜨기직전에 해주세요. SetForgroundWindow(Handle); ...
    • 안명호
    • 1999.05.23 00:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.05.24 01:14
      안명호 wrote: > 컨트롤 내에서가 아니라... > 프로그램 외부에서 예를 들어 탐색기에서 > 파일을 드래...