Q&A

  • Help ME~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




안녕하십니까...

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

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

드롭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