Q&A

  • 드래그 드롭으로 파일 열기
컨트롤 내에서가 아니라...

프로그램 외부에서 예를 들어 탐색기에서

파일을 드래그 해와서 메모 컴포넌트에 놓으면

파일의 내용을 읽어 들이게 하려면 어떻게

해야 하나요?

1  COMMENTS
  • Profile
    구창민 1999.05.24 01:14
    안명호 wrote:

    > 컨트롤 내에서가 아니라...

    > 프로그램 외부에서 예를 들어 탐색기에서

    > 파일을 드래그 해와서 메모 컴포넌트에 놓으면

    > 파일의 내용을 읽어 들이게 하려면 어떻게

    > 해야 하나요?



    안명호님 안녕하세요?

    아래 내용은 WM_DROPFILES 메세지를 이용한

    Drag&Drop에 의한 파일 열기입니다.

    보시고 참조하세요.

    폼 클래스의 public부에

    public

    { Public declarations }

    procedure AcceptFiles(var msg: TMessage); message WM_DROPFILES;

    end;



    implementation부에...

    //탐색기에서 파일을 Drag&Drop

    procedure Tpostform.AcceptFiles(var msg: TMessage);

    const

    cnMaxFileNameLen=255;

    var

    acFileName: array [0..cnMaxFileNameLen] of char;

    begin

    screen.cursor:=crHourGlass;

    DragQueryFile(msg.WParam, 0, acFileName, cnMaxFileNameLen);

     

    {$I-}

    memo1.clear;

    memo1.refresh;

    try

    caption:=extractfilename(acfilename);

    memo1.Lines.LoadFromFile(acFileName);

    writeprivateprofilestring(PChar(inttostr(TPost(listpost.items[listindex]^).ini_id)),

    'Title', PChar(caption), inifile);

    except

    begin

    MessageDlg('File Open Error', mtInformation, [mbOk],0);

    DragFinish(msg.WParam);

    exit;

    end;

    end;

    SetForegroundWindow(handle);

    DragFinish(msg.WParam);

    writetoinispecifiedpost(listindex);

    screen.cursor:=crDefault;

    end;