Q&A

  • 폼에대한 질문입니다.
폼에대한 질문입니다.



소스는 아래와 같습니다



pass := Main.Decrypt(Main.PassTPass.value, MY_KEY); //어디서 많이본 함수죠?

if Length(pass) < 4 then begin

ShowMessage('암호화일이 손상되었습니다');

password.close;

CancelBtnClick(Sender); //ModalResult를 2로 넘겨줍니다.

password.ModalResult := 2;

end;



form show event에 아래와 같이 코딩했습니다. 모달로 폼을 보여주고 ModalResult로 결과값을 받기 때문에 Available form으로 할 수 밖에 없었습니다. 근데 이게 안먹습니다.

메세지까지는 뜨는데 그밑에 세줄(조합으로도 다 해봤습니다) 배째고 폼 안닫힙니다.

도대체 우찌 이런건지.... 이젠 별게 다 시비를 겁니다.



고수님들의...아니 고수님 아니어도 좋습니다. 해결의 실마리를 가지신분은 가차없이

'이게 틀렸쟎아!! 이것도 몰라!!' 해주십시요.







4  COMMENTS
  • Profile
    하얀까마귀 2000.04.18 21:49
    안녕하세요 하얀까마귀 입니다..



    form Show 또는 Create 이벤트에서 Close는 안됩니다...



    password가 폼 이름인것 같은데.. 자기자신을 form Show에서 닫아버리는 건



    동작하지 않습니다...



    그럼...



    음.. 한가지만 더...



    소스를 보니 폼이 보일필요가 없어보이는데 맞는지요....



    단지 처리를 모듈화 하기 위해서 폼을 쓰신거라면 좀 이해가 되지 않습니다..



    그냥 function으로 만들어도 될것 같은데.. <-- (제가 만드신 이유를 모르니..



    이런생각을 하는거겠죠?.. )



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



    - 하얀까마귀 -





    강인규 wrote:

    > 폼에대한 질문입니다.

    >

    > 소스는 아래와 같습니다

    >

    > pass := Main.Decrypt(Main.PassTPass.value, MY_KEY); //어디서 많이본 함수죠?

    > if Length(pass) < 4 then begin

    > ShowMessage('암호화일이 손상되었습니다');

    > password.close;

    > CancelBtnClick(Sender); //ModalResult를 2로 넘겨줍니다.

    > password.ModalResult := 2;

    > end;

    >

    > form show event에 아래와 같이 코딩했습니다. 모달로 폼을 보여주고 ModalResult로 결과값을 받기 때문에 Available form으로 할 수 밖에 없었습니다. 근데 이게 안먹습니다.

    > 메세지까지는 뜨는데 그밑에 세줄(조합으로도 다 해봤습니다) 배째고 폼 안닫힙니다.

    > 도대체 우찌 이런건지.... 이젠 별게 다 시비를 겁니다.

    >

    > 고수님들의...아니 고수님 아니어도 좋습니다. 해결의 실마리를 가지신분은 가차없이

    > '이게 틀렸쟎아!! 이것도 몰라!!' 해주십시요.

    >

    >

    >

  • Profile
    강인규 2000.04.18 22:09
    허걱! 저의 불찰입니다. 소스에 대한 설명이 충분했었어야 하는데......



    password는 패스워드입력창입니다.

    패스워드는 암호화되어 디비에 저장되어있지요.

    그런데 누가 디비에 접근해서 한자리만 남겨놓고 지운후에 암호를 풀려한다면??

    이라는 전제하에 만든것입니다.

    키보드를 한번씩 눌러보면 결국 암호를 풀 수 있겠죠? 그래서 복호화한 암호의 길이가 4자리를 넘지 않으면 경고메세지를 띄우고 폼을 강제로(?) 닫을려는 것이었습니다.

    ModalResult로 결과를 넘길려다보니 이런 사태가..... close하면 ModalResult가 2로 넘어가더라구요.



    P.S.

    오랜만에 글을보는것 같은데요. 반갑습니다.





    하얀까마귀 wrote:

    > 안녕하세요 하얀까마귀 입니다..

    >

    > form Show 또는 Create 이벤트에서 Close는 안됩니다...

    >

    > password가 폼 이름인것 같은데.. 자기자신을 form Show에서 닫아버리는 건

    >

    > 동작하지 않습니다...

    >

    > 그럼...

    >

    > 음.. 한가지만 더...

    >

    > 소스를 보니 폼이 보일필요가 없어보이는데 맞는지요....

    >

    > 단지 처리를 모듈화 하기 위해서 폼을 쓰신거라면 좀 이해가 되지 않습니다..

    >

    > 그냥 function으로 만들어도 될것 같은데.. <-- (제가 만드신 이유를 모르니..

    >

    > 이런생각을 하는거겠죠?.. )

    >

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

    >

    > - 하얀까마귀 -

    >

    >

    > 강인규 wrote:

    > > 폼에대한 질문입니다.

    > >

    > > 소스는 아래와 같습니다

    > >

    > > pass := Main.Decrypt(Main.PassTPass.value, MY_KEY); //어디서 많이본 함수죠?

    > > if Length(pass) < 4 then begin

    > > ShowMessage('암호화일이 손상되었습니다');

    > > password.close;

    > > CancelBtnClick(Sender); //ModalResult를 2로 넘겨줍니다.

    > > password.ModalResult := 2;

    > > end;

    > >

    > > form show event에 아래와 같이 코딩했습니다. 모달로 폼을 보여주고 ModalResult로 결과값을 받기 때문에 Available form으로 할 수 밖에 없었습니다. 근데 이게 안먹습니다.

    > > 메세지까지는 뜨는데 그밑에 세줄(조합으로도 다 해봤습니다) 배째고 폼 안닫힙니다.

    > > 도대체 우찌 이런건지.... 이젠 별게 다 시비를 겁니다.

    > >

    > > 고수님들의...아니 고수님 아니어도 좋습니다. 해결의 실마리를 가지신분은 가차없이

    > > '이게 틀렸쟎아!! 이것도 몰라!!' 해주십시요.

    > >

    > >

    > >

  • Profile
    하얀까마귀 2000.04.18 22:42
    안녕하세요 하얀까마귀 입니다..



    전처럼 그렇게 많은 글이 올려지진 않네요.. 짬짬이 오고 있습니다..



    이렇게 활발히 운영되는 델코가 저도 델피니언의 한사람으로 무척 자랑스럽네요......



    음... passWord가 폼이 맞긴 맞네요...



    아마 cancelbuttonClick 또한 Close가 있을테고..



    그리고 showmessage('')해준후에 폼을 닫는군요..



    제가 말씀드린건 이렇게 close를 해줘도 닫히지 않는다는 겁니다.



    Form Show 이벤트에서 작업을 하신거니까.. 이렇게 해서는 닫히지 않습니다..



    음...



    꼭 SHow에서 작업을 하셔야 한다면.. 패스워드가 4자리 이하일때는 메세지 보여주고



    패스워드 입력을 못하도록 하셔도 되고...



    이건 별로 권해드리고 싶지 않는데... FormSHow에서 꼭 폼을 닫아야 한다면...



    Postmessage(self.Handle, WM_CLOSE, 0,0);



    라고 하시면 폼이 닫힐겁니다...



    그런데.. 이건 FormShow가 완료된 직후 닫히는 것이기 때문에. 당연히 약간 깜박이는



    현상이 발생합니다...



    그럼.. 제가 제대로 이해했나 모르겠네요...



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



    - 하얀까마귀 -







  • Profile
    강인규 2000.04.19 03:26
    음~~ 이렇게 할 수도 있군요. 한 수 배웠습니다.

    아! 그리구 그문제는 하얀 까마귀님의 말씀에 문득 생각나는 방법으로 해결했습니다.

    show event를 호출하기전에 검사하면 되더군요. 이런 바부.....^^;

    언제나 조언에 감사드립니다.

    그리구 한델에 자주 발자취(?)를 남기어 후배 델피언들의 길잡이가 되어주시길 부탁드립니다.

    건강하세요.