Q&A

  • 하나의 프로그램에서...
고수님들의 답변을 애타게 기다리고 있습니다^^;;

질문은 현재 운영되고 있는 프로그램이 있습니다.

(한델사이트와 프로그램 폼이 비슷함 왼쪽트리뷰,오른쪽 메인화면, 위쪽 메뉴,버튼형식)

그프로그램에서 버튼클릭(베너?)했을때 운영되고 있는 프로그램은 죽고 딴 프로그램(델파이로만듬)이 열려야 합니다.
하지만, 문제는 운영되고있는 프로그램의 트리뷰는 죽지말아야 한다는 점입니다.(회사에서 이리 원합니다 ;;;)
즉 한델사이트에서 보면 윗단(그림,홈|공지사항|컴포넌트구매|나의링크모음)은 사라지고
트리뷰는 현재 운영되고 있는 트리뷰로, 메인화면은 버튼클릭시 운영되고 있는 프로그램이 떠야 합니다.
그리고 트리뷰로 새로뜬 프로그램을 움직일수 있어야 합니다.
그래서 생각해낸게 트리뷰하고 프로그램을 분리하는게 어떻겠냐 이렇게 말씀 하더라고요
트리뷰하고 메인화면이 따로 만들어 보라고하는데 프로그램이 동시에 2개가 open되는지 알고 싶습니다.(어떻게 하는지도요 ㅠㅠ)
된다면, 2개가 open 되었을시 첫번때 프로그램에서 버튼선택시 다른 프로그램에서 확인할수 있는지,적용할수 있는지도 알고 싶네요;

질문이 무성해졌네요 ㅠㅠ 답변기다릴께요 ㅠㅠ 이거 못하면 퇴근 못할듯 싶네요;;;;
1  COMMENTS
  • Profile
    구창민 2007.10.26 01:14
    안녕하세요..

    말씀하신 어플리케이션은 대부분이 MDI 형식으로 구성되어 있습니다.

    좌측 트리뷰, 특정 동작들은 그 구성에 맞는 폼이 띄워져서 실행되지요..

    근데, 회사에서 두개의 프로그램을 띄워여만 한다고 하는건 무언가 이유가 있을테죠..?;

    서로 다른 어플리케이션간의 데이타 통신은 몇가지 방법이 있겠지만,

    가장 간단한 방법은 메시지로 통신하는 방법이라 생각되네요..

    서로 주고받아야 할 내용이 많지 않다면 간단히 몇몇 메시지를 생성해서 주고 받으며 처리하면 될거 같습니다.

    아래는 메시지를 주고받을 수 있는 간단한 예제입니다.

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

    WM_USER 메시지 예시)
    //특정 메시지 송신시...(아래 예시는 사용자 메시지가 오면 폼을 종료하는 예시)
    const
      { User Message Close Application }
      UM_CLOSEAPP = WM_USER + 25 ;
      ...
       procedure UMCloseApp(var message: TMessage);    message UM_CLOSEAPP;

    procedure TForm1.UMCloseApp(var message: TMessage);
    begin
      Close;
    end;

    ...

    //특정 프로그램에서 송신시..
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    SendMessage(특정어플.Handle, UM_CLOSEAPP, 0, 0);
    end;