Q&A

  • 폼이 시작할 때...
폼이 시작할 때...

폼 위에 x축, y축을 그려야 하거든요...

근데...

procedure TfrmGraph.FormCreate(Sender: TObject);

begin

~~~~~~~~~~

end;

~~~~~~~~~~에다가 선을 그리는 걸 구현했는데...

폼이 뜰 때 x축, y축이 안 나타나더군요...

FormCreate하면 폼이 생길 때 실행되는 것이 아닌가요?

이거 너무 왕 초보라서...

그럼 답변 기다립니다...

감사...꾸벅...

2  COMMENTS
  • Profile
    이상호 2000.02.11 10:43
    이재식님이 설명하신 것과 같습니다.

    API 차원에서 설명하면 FormCreare 이벤트는 Window Procedure에

    제일 먼저 전달되는 메시지인 WM_CREATE 메시지를 처리하는 부분입니다.

    그리고 OnPaint 이벤트는 윈도우의 클라이언트 영역이 새로 그려질

    필요가 있을 때(폼이 다른 폼에 가려졌다가 다시 활성화 되거나,

    최소화되었다가 다시 복원될 때 등)마다 계속 실행됩니다. 그러므로

    폼에 무엇인가그리고자 한다면 OnPaint 메시지에서 그려주어야 합니다.



    최종민 wrote:

    > 폼이 시작할 때...

    > 폼 위에 x축, y축을 그려야 하거든요...

    > 근데...

    > procedure TfrmGraph.FormCreate(Sender: TObject);

    > begin

    > ~~~~~~~~~~

    > end;

    > ~~~~~~~~~~에다가 선을 그리는 걸 구현했는데...

    > 폼이 뜰 때 x축, y축이 안 나타나더군요...

    > FormCreate하면 폼이 생길 때 실행되는 것이 아닌가요?

    > 이거 너무 왕 초보라서...

    > 그럼 답변 기다립니다...

    > 감사...꾸벅...

  • Profile
    이재식 2000.02.10 01:06
    최종민 wrote:

    > 폼이 시작할 때...

    > 폼 위에 x축, y축을 그려야 하거든요...

    > 근데...

    > procedure TfrmGraph.FormCreate(Sender: TObject);

    > begin

    > ~~~~~~~~~~

    > end;

    > ~~~~~~~~~~에다가 선을 그리는 걸 구현했는데...

    > 폼이 뜰 때 x축, y축이 안 나타나더군요...

    > FormCreate하면 폼이 생길 때 실행되는 것이 아닌가요?

    > 이거 너무 왕 초보라서...

    > 그럼 답변 기다립니다...

    > 감사...꾸벅...



    이재식 Wrote :

    안녕하세요?



    onCreate이벤트에 Canvas개체를 사용한 것 같아요.

    위에서는 어떻게 코딩을 하셨는지 보이지 않네요.

    제가 일전에 폼 이벤트에 대해서 공부하느라 좀 무식하게 한 적이 있는데요,

    폼생성시부터 close시까지 이벤트 발생순서를 showMessage를 이용해서 체크해

    보았습니다.

    우선 Create시에는 다음과 같더라구요.

    create, show, paint, activate, resize.

    이렇게 된 다음 사용자가 폼에 여러 연산을 하면 그 때마다 해당 이벤트가

    발생하면서 동시에 같이 따라다니느 이벤트들이 있더라구요.

    그런데, canvas객체의 시작(?)은 onPaint입니다.

    자세히는 모르겠지만, F1도움말을 보면 onPaint이벤트에서

    Canvas객체를 이용한다고 나와있더라구요.



    그래서, 아마 x, y축 그리기위해 canvas객체를 이용한다면,

    onPaint 이벤트에 코딩하시면 될 것입니다.