안녕하십니까...
저는 완벽한 델파이초보입니다.
현재 델파이를 이용 미디어플레이어를 만들고 있는데
드롭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;