Q&A

  • OnCreate 와 OnShow 의 효율성..
질문드립니다...OnCreate 와 OnShow 의 효율성..

델파이 프로그래밍할때에...파일을 불러와 그리드에 뿌려주는데...
한번 만들어 질때의 OnCreate 의 이벤트보다
변경된 값을 보여주기 위해서는 OnShow 이벤트가 더 효울적이라고 생각합니다..
굳이 OnCreate 이벤트를 할 필요가 없이 OnShow 이벤트 하나만 사용하려고 하는데...

고수님들은 어떻게 생각하는지 질문드립니다..
2  COMMENTS
  • Profile
    타락천사 2003.04.24 02:10
    안녕하세요. 타락임다.

    그건 조금 다른 문제를 안고 있습니다.

    가령 OnCreate() 는 폼이 생성하기 전에 발생합니다. 따라서 OnCreate 화면에 그리는 작업을 한다면 문제가 발생할 겁니다. 같은 작업을 모아두면 관리하기 편하기에 보통 메모리 할당과 초기화는 OnCreate() 에서 하는게 좋습니다.

    OnShow() 는 폼이 보일때 발생합니다. 이때는 화면에 Drawing 작업이 이루어지기 전입니다. 따라서 화면에 뿌려줄때 적합한데, 문제는 OnCreate() 는 폼 생성시 한번만 발생하지만, OnShow() 는 여러번 발생할 수도 있습니다.
    가령.. Minimize 될 때나 try icon 으로 들어갔다 나올때죠.

    화면에 직접 그릴때는 OnPaint 가 적합한데, 문제는 이 이벤트가 화면에 그리기 전에 발생한다는 겁니다. 나중에 덮어 그려지기도 하거든요.

    즐푸하세요..

    타락천사..


  • Profile
    김종인 2003.04.23 00:52

    동일해 보이는 이벤트지만 용도가 다릅니다.

    질문하신 경우라면 용도에 따라 한가지 정하고 쓰면 될것 같고,

    실무에서 제일 크게 다른 점은 아래와 같은 코딩때 입니다.


      Form1 := TForm1.Create(self);  <--- 이때 Create이벤트

      Form1.var1 := 'test';
      Form1....

      Form1.ShowModal;  <-- 이때 Show 이벤트



    만약 생성하고 보여줄때 그냥 보여주는 경우라면 굳이 2가지
    이벤트를 구분할 실익이 없지만

    생성후, 보여주는 과정에서 조작(?)이 필요하다면 이벤트가
    달라야 하겠죠!