Q&A

  • 저 좀 도와주세요. 미디어플레이어 문제임다 정확히는 Drop Accept !!!
안녕하십니까...

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

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

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

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

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

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

이 소스는 여기서 구해서 제가 약간 수정했는데 초보라 그런지 수정에서 실수가 있었던것 같습니다. 꼭 도움 부탁드립니다. 동영상이 돌아가고 있어도 드롭이 되도록 말입니다. 한가지 더요. 비디오CD안에 있는 *.dat 파일 돌리는 법도 좀 가르쳐 주세요.

리플이 달리는 그 순간까지 계속 찾을 겁니다.



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;

0  COMMENTS