Q&A

  • 폼위에 페넬이있는데 페넬위에 메모장이나 엑셀을 올리고 싶어요
폼위에 페넬이있는데.. 페넬안에서 메모장이나 엑셀을 불러서 사용하고 싶은데요..

좀 알려주세요...

부탁해요..

저 오늘까지 끝을 못내면 아흐~~~~


부탁입니다.
1  COMMENTS
  • Profile
    홍성락 2002.08.24 01:07
    hsr///////////////////////////////////////////////////////////////////
    어디서 저도 봤었는데요....
    잘생각이 안나네요 좀더 찾아보시면 정리된예제거 있을겁니다.
    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComObj, ExtCtrls, ShellAPI;

    type
      TForm1 = class(TForm)
        Button1: TButton;
        OpenDialog1: TOpenDialog;
        Panel1: TPanel;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    var
        EXApp : Variant;
        wnd :  HWND;
    begin
       OpenDialog1.Execute;
       EXApp:= CreateOleObject('Excel.Application');
       EXApp.WorkBooks.Open(OpenDialog1.FileName);
       wnd := FindWindow( 'TSrcForm', nil );
       Windows.SetParent( wnd, Panel1.Handle );
       SetWindowPos( wnd, 0, 0, 0, Panel1.width, Panel1.height,
                     SWP_NOZORDER or SWP_SHOWWINDOW );
       EXApp.Visible := True;
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    var
        wnd :  HWND;
        fName : string;
    begin
       OpenDialog1.Execute;
       ShellExecute(0, 'open', PChar(OpenDialog1.FileName), nil, nil, SW_SHOWNORMAL);
       fName := ExtractFileName(OpenDialog1.FileName) + ' - 메모장';
       sleep(1000);
       Wnd := FindWindow(nil, PChar(fName) );
       Windows.SetParent( wnd, Panel1.Handle );
       SetWindowPos( wnd, 0, 0, 0, Panel1.width, Panel1.height,
                     SWP_NOZORDER or SWP_SHOWWINDOW );
    end;

    end.