Q&A

  • ini file대해서
두개의 폼이 있습니다.

한개의 폼은 text로사용자이름 패스워드 그리고 버튼은 확인 변경 종료입니다.

그런데 사용자 이름과 패스워드를 잘못입력을 하면 차단이 되야하는데

그냥 다음 폼으로 넘어 가는 것입니다.즉 login으로 들어 가는 거에요..

자세히 설명을 하면 MessageDlg에서 잘못입력했습니다.하고 메세지가 뜨거든요

메세지 박스 ok를 누르면 현위치로 사용자 이름과 패스워두 있는데로 커서가 가야 하는데 login으로 들어 가는거에요...

어떻게 하면 되나요

그리고 ini file에 대해서 묻겠습니다.

사용자 이름이나 패스워드를 바꾸러면

ini file을 이용해야 하잖아요...

책도 잘 나와 있지 않고..

하긴 했는데 변경 버튼을 누르면 변경이 안돼요...

제가 초보라서 아주 자세한 설명 부탁드립니다.



코딩 참고하세요...

그럼 즐거운 하루 되세요

UserName := IniFile.ReadString('사용자ID','UserName','root');

KeyNum := IniFile.ReadString('사용자 비밀번호','KeyNum','0000');

//입력된 값과 ini값을 비교한다

NameValue := CompareText(Edit2.Text,UserName);

KeyValue := CompareText(Edit3.Text,KeyNum);





//이름이 다르면

if (NameValue <> 0) and (KeyValue = 0) Then

MessageDlg('사용자 ID가 다릅니다.',mtWarning,[mbOk],0)

//비밀번호가 다르면

else if(NameValue = 0)and(KeyValue <>0) Then

MessageDlg('비밀번호가 다릅니다.',mtWarning,[mbOk],0)

//비밀번호와 ID가 다르면

else if(NameValue <> 0) and (KeyValue <> 0)Then

MessageDlg('정확한 값을 입력하세요.',mtWarning,[mbOk],0)

//ID와 비밀번호가 일치하면

else if(NameValue = 0)and (KeyValue = 0) Then

begin

MessageDlg('안녕 하세요 관리자님.',mtInformation,[mbOk],0);



3  COMMENTS
  • Profile
    구창민 2000.03.30 02:12
    이빈 wrote:

    > 두개의 폼이 있습니다.

    > 한개의 폼은 text로사용자이름 패스워드 그리고 버튼은 확인 변경 종료입니다.

    > 그런데 사용자 이름과 패스워드를 잘못입력을 하면 차단이 되야하는데

    > 그냥 다음 폼으로 넘어 가는 것입니다.즉 long으로 들어 가는 거에요..

    > 자세히 설명을 하면 MessageDlg에서 잘못입력했습니다.하고 메세지가 뜨거든요

    > 메세지 박스 ok를 누르면 현위치로 사용자 이름과 패스워두 있는데로 커서가 가야 하는데 login으로 들어 가는거에요...

    > 어떻게 하면 되나요

    > 그리고 ini file에 대해서 묻겠습니다.

    > 사용자 이름이나 패스워드를 바꾸러면

    > ini file을 이용해야 하잖아요...

    > 책도 잘 나와 있지 않고..

    > 하긴 했는데 변경 버튼을 누르면 변경이 안돼요...

    > 제가 초보라서 아주 자세한 설명 부탁드립니다.

    > 참

    > 코딩 참고하세요...

    > 그럼 즐거운 하루 되세요

    > UserName := IniFile.ReadString('사용자ID','UserName','root');

    > KeyNum := IniFile.ReadString('사용자 비밀번호','KeyNum','0000');

    > //입력된 값과 ini값을 비교한다

    > NameValue := CompareText(Edit2.Text,UserName);

    > KeyValue := CompareText(Edit3.Text,KeyNum);

    >

    >

    > //이름이 다르면

    > if (NameValue <> 0) and (KeyValue = 0) Then

    > MessageDlg('사용자 ID가 다릅니다.',mtWarning,[mbOk],0)

    > //비밀번호가 다르면

    > else if(NameValue = 0)and(KeyValue <>0) Then

    > MessageDlg('비밀번호가 다릅니다.',mtWarning,[mbOk],0)

    > //비밀번호와 ID가 다르면

    > else if(NameValue <> 0) and (KeyValue <> 0)Then

    > MessageDlg('정확한 값을 입력하세요.',mtWarning,[mbOk],0)

    > //ID와 비밀번호가 일치하면

    > else if(NameValue = 0)and (KeyValue = 0) Then

    > begin

    > MessageDlg('안녕 하세요 관리자님.',mtInformation,[mbOk],0);

    >





    안녕하세요? 구창민입니다.



    ini 파일에 쓸땐, WriteString( '인적','이름','구창민');

    이런 형태로 쓰시면 됩니다.



    그리고, 위의 if 문을 그대로 사용하셨다면,

    ID와 비밀번호가 다를경우 특별한 Action이 일어나지 않을 거 같군요.

    begin..end 로 if 문을 묶으셔서 원하는 Action이 일어나도록

    기술하시면 해결될 거 같네요.



    그럼~ 즐거운 프로그래밍 하시길~

  • Profile
    이빈 2000.03.29 21:07
    구창민 wrote:

    > 이빈 wrote:

    > > 두개의 폼이 있습니다.

    > > 한개의 폼은 text로사용자이름 패스워드 그리고 버튼은 확인 변경 종료입니다.

    > > 그런데 사용자 이름과 패스워드를 잘못입력을 하면 차단이 되야하는데

    > > 그냥 다음 폼으로 넘어 가는 것입니다.즉 long으로 들어 가는 거에요..

    > > 자세히 설명을 하면 MessageDlg에서 잘못입력했습니다.하고 메세지가 뜨거든요

    > > 메세지 박스 ok를 누르면 현위치로 사용자 이름과 패스워두 있는데로 커서가 가야 하는데 login으로 들어 가는거에요...

    > > 어떻게 하면 되나요

    > > 그리고 ini file에 대해서 묻겠습니다.

    > > 사용자 이름이나 패스워드를 바꾸러면

    > > ini file을 이용해야 하잖아요...

    > > 책도 잘 나와 있지 않고..

    > > 하긴 했는데 변경 버튼을 누르면 변경이 안돼요...

    > > 제가 초보라서 아주 자세한 설명 부탁드립니다.

    > > 참

    > > 코딩 참고하세요...

    > > 그럼 즐거운 하루 되세요

    > > UserName := IniFile.ReadString('사용자ID','UserName','root');

    > > KeyNum := IniFile.ReadString('사용자 비밀번호','KeyNum','0000');

    > > //입력된 값과 ini값을 비교한다

    > > NameValue := CompareText(Edit2.Text,UserName);

    > > KeyValue := CompareText(Edit3.Text,KeyNum);

    > >

    > >

    > > //이름이 다르면

    > > if (NameValue <> 0) and (KeyValue = 0) Then

    > > MessageDlg('사용자 ID가 다릅니다.',mtWarning,[mbOk],0)

    > > //비밀번호가 다르면

    > > else if(NameValue = 0)and(KeyValue <>0) Then

    > > MessageDlg('비밀번호가 다릅니다.',mtWarning,[mbOk],0)

    > > //비밀번호와 ID가 다르면

    > > else if(NameValue <> 0) and (KeyValue <> 0)Then

    > > MessageDlg('정확한 값을 입력하세요.',mtWarning,[mbOk],0)

    > > //ID와 비밀번호가 일치하면

    > > else if(NameValue = 0)and (KeyValue = 0) Then

    > > begin

    > > MessageDlg('안녕 하세요 관리자님.',mtInformation,[mbOk],0);

    > >

    >

    >

    > 안녕하세요? 구창민입니다.

    >

    > ini 파일에 쓸땐, WriteInteger( '인적','이름','구창민');

    > 이런 형태로 쓰시면 됩니다.

    >

    > 그리고, 위의 if 문을 그대로 사용하셨다면,

    > ID와 비밀번호가 다를경우 특별한 Action이 일어나지 않을 거 같군요.

    > begin..end 로 if 문을 묶으셔서 원하는 Action이 일어나도록

    > 기술하시면 해결될 거 같네요.

    >

    > 그럼~ 즐거운 프로그래밍 하시길~

  • Profile
    하얀까마귀 2000.03.30 00:24
    안녕하세요 하얀까마귀 입니다.



    ini에 쓰는건 읽는것과 똑같이 하시면 됩니다.



    함수는 값에 따라서.... 3개가 있어요.. 아마 String만 쓰시면 될것 같네요..

    WriteString('사용자ID', 'UserName', 'Pass');

    WriteInteger('사용자ID', 'UserName', 3 );

    WriteBool('사용자ID', 'UserName', True);





    그리고 코딩 하신 내용중에서..



    var

    Pass, User : Boolean;

    begin

    Pass := False; User := False;

    if 유저명이 같으면 then

    User := True;

    if 패스워드가 같으면 then

    Pass := True;



    if ( not Pass ) and ( not User ) then

    begin

    MessageDlg('정확한 값을 입력하세요.',mtWarning,[mbOk],0)

    // 요걸 넣어 주세요...

    ed_UserID.SetFocus; <-- 사용자 ID로 포커스 옮기 시구요...

    Exit; <-- 그리고는 이 프로세스를 끝내 버려요..

    end else if ( not Pass ) and ( User ) then

    begin

    MessageDlg('비밀번호가 다릅니다.',mtWarning,[mbOk],0);

    // 요걸 넣어 주세요...

    ed_Pass.SetFocus; <-- 패스워드로 포커스 옮기 시구요...

    Exit; <-- 그리고는 이 프로세스를 끝내 버려요..

    end else if ( Pass ) and ( User ) then

    begin

    MessageDlg('안녕 하세요 관리자님.',mtInformation,[mbOk],0);

    // 여기부터 end; 까지 이제 로긴하는 루틴을 넣어 주세요...

    end;

    end;



    헉헉.. 코딩이 맞는지 모르겠네요.. 혹시 오타 있을지도 모르니 참고만 하세요...



    그럼.. 즐거운 시간 되세요..



    - 하얀까마귀 -