Hola sac.
Yo tampoco entiendo tu situación con claridad, pero fijate si te sirve de este modo:
Código Delphi
[-]
uses MMSystem;
procedure PlayVideo(WinControl: TWinControl; const FileName: string;
const Loop: Boolean = False);
const
PLAYCMD: array[Boolean] of string = ('play VIDEO1', 'play VIDEO1 repeat');
var
R: TRect;
begin
R:= WinControl.ClientRect;
mciSendString('close VIDEO1', nil, 0, 0);
mciSendString(PChar('open "' + FileName + '" alias VIDEO1'), nil, 0, 0);
mciSendString(PChar('window VIDEO1 handle ' + IntToStr(WinControl.Handle)), nil, 0, 0);
mciSendString(PChar('put VIDEO1' + Format('%d %d %d %d',
[R.Left,R.Top,R.Right,R.Bottom])), nil, 0, 0);
mciSendString(PChar(PLAYCMD[Loop]), nil, 0, 0);
end;
Ejemplo de uso:
Código Delphi
[-]
...
PlayVideo(Panel1, 'wildlife.wmv');
PlayVideo(Panel1, 'wildlife.wmv', True);
Saludos