Q&A

  • 미디어플레이어에 드래그&드롭 Accept (꼭 봐주세요)
안녕하십니까...

저는 완벽한 델파이초보입니다.

현재 델파이를 이용 미디어플레이어를 만들고 있는데

드롭Accept에서 문제가 있어서 이렇게 글을 올립니다.

문제는 드롭 Accept가 처음 파일이 열리지 않은 상태에서는 가능하고

파일을 열고 플레이 된 상태에서는 되지 않습니다. 다시 사용하려면 미디어플레이어를

닫아서 동영상을 정지 시킨 후에야 다시 드롭이 된다는 것입니다.

이 소스는 여기서 구해서 제가 약간 수정했는데 초보라 그런지 수정에서 실수가 있었던것 같습니다. 꼭 도움 부탁드립니다. 동영상이 돌아가고 있어도 드롭이 되도록 말입니다.



OS는 win9x,2000 입니다. 현재 이 소스는 98에서 제작되었습니다. 델파이는 5.0을 사용했습니다.



uses

Windows, Messages,MMSystem,ShellAPI, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

ExtCtrls, MPlayer, Menus, BarPopupMenu, DdeMan, StdCtrls, jpeg;





private



procedure WMDROPFILES(var Message: TWMDROPFILES);

message WM_DROPFILES;

{ Private declarations }





procedure TForm1.FormCreate(Sender: TObject);



begin



DragAcceptFiles(Form1.Handle, True);



end;





procedure TForm1.WMDROPFILES(var Message: TWMDROPFILES);



var

NumFiles : longint;

i : longint;

buffer : array[0..255] of char;



begin



NumFiles := DragQueryFile(Message.Drop,$FFFFFFFF,nil,0);

for i := 0 to (NumFiles -1) do begin



DragQueryFile(Message.Drop,i,@buffer,sizeof(buffer));



MediaPlayer1.FileName := buffer;

MediaPlayer1.Open;



scRect := Mediaplayer1.DisplayRect;

Form1.Height := scRect.bottom;

h := Form1.Height;

Form1.Width := scRect.Right;

w := Form1.Width;

MediaPlayer1.Display := Form1;



MediaPlayer1.Play;

MediaPlayer1.Notify := True;

end;



DragFinish(Message.Drop);



end;

1  COMMENTS
  • Profile
    죠스고기 2001.08.30 19:55
    꼭 좀 도와주세요.

    위에 있는 저거요.. 드롭 Accept가 한번 밖에 되지 않는 이유를 알고 싶어요.

    미디어플레이어를 언능 완성해야 하는데... 도와줘요...

    그리고 혹시 비디오CD안에 있는 데이타파일 있잖아요. music.dat 이런식으로

    dat 파일을 돌리는 방법도 더불어서요....

    염치 없지만 꼭 좀 도와주세요.