Я скопировал 3 файла который указаны в последнем собщении.
Нашёл ту самую процедуру и внес туда изменения, со своими корективами и удалось подогнать видео под начало контрола, но как его растянуть на весь контрол????
procedure TWindowsMedia.UpdateMediaFromControl;
var
P: TPointF;
R: TRect;
Bounds: TRectF;
Form: TCommonCustomForm;
begin
FVMRWindowlessControl9.SetAspectRatioMode(VMR9ARMode_LetterBox); // <-- Добавил
if FWnd <> 0 then
begin
if (Control <> nil) and not (csDesigning in Control.ComponentState) and (Control.ParentedVisible) and
(Control.Root <> nil) and (Control.Root.GetObject is TCommonCustomForm) then
begin
Form := TCommonCustomForm(Control.Root.GetObject);
P := GetVideoSize;
// Bounds := TRectF.Create(0, 0, P.X, P.Y); ЗАкомитил
Bounds := TRectF.Create(Control.Position.X, Control.Position.Y, Control.AbsoluteWidth, Control.AbsoluteHeight);// <-- Изменил, но высота и шрина не поддаются
Bounds.Fit(RectF(0, 0, Control.AbsoluteWidth, Control.AbsoluteHeight));
Bounds.Offset(Control.AbsoluteRect.Left, Control.AbsoluteRect.Top);
SetParent(FWnd, WindowHandleToPlatform(Form.Handle).Wnd);
SetWindowPos(FWnd, 0, Bounds.Round.Left, Bounds.Round.Top, Bounds.Round.Width, Bounds.Round.Height, 0);
R := TRect.Create(0, 0, Bounds.Round.Width, Bounds.Round.Height);
if FVMRWindowlessControl9 <> nil then
FVMRWindowlessControl9.SetVideoPosition(nil, @R);
if FVMRWindowlessControl7 <> nil then
FVMRWindowlessControl7.SetVideoPosition(nil, @R);
ShowWindow(FWnd, SW_SHOW)
end
else
ShowWindow(FWnd, SW_HIDE)
end;
end;
Вопрос
Dozent
В Продолжение этой темы!
Я скопировал 3 файла который указаны в последнем собщении.
Нашёл ту самую процедуру и внес туда изменения, со своими корективами и удалось подогнать видео под начало контрола, но как его растянуть на весь контрол????
procedure TWindowsMedia.UpdateMediaFromControl; var P: TPointF; R: TRect; Bounds: TRectF; Form: TCommonCustomForm; begin FVMRWindowlessControl9.SetAspectRatioMode(VMR9ARMode_LetterBox); // <-- Добавил if FWnd <> 0 then begin if (Control <> nil) and not (csDesigning in Control.ComponentState) and (Control.ParentedVisible) and (Control.Root <> nil) and (Control.Root.GetObject is TCommonCustomForm) then begin Form := TCommonCustomForm(Control.Root.GetObject); P := GetVideoSize; // Bounds := TRectF.Create(0, 0, P.X, P.Y); ЗАкомитил Bounds := TRectF.Create(Control.Position.X, Control.Position.Y, Control.AbsoluteWidth, Control.AbsoluteHeight);// <-- Изменил, но высота и шрина не поддаются Bounds.Fit(RectF(0, 0, Control.AbsoluteWidth, Control.AbsoluteHeight)); Bounds.Offset(Control.AbsoluteRect.Left, Control.AbsoluteRect.Top); SetParent(FWnd, WindowHandleToPlatform(Form.Handle).Wnd); SetWindowPos(FWnd, 0, Bounds.Round.Left, Bounds.Round.Top, Bounds.Round.Width, Bounds.Round.Height, 0); R := TRect.Create(0, 0, Bounds.Round.Width, Bounds.Round.Height); if FVMRWindowlessControl9 <> nil then FVMRWindowlessControl9.SetVideoPosition(nil, @R); if FVMRWindowlessControl7 <> nil then FVMRWindowlessControl7.SetVideoPosition(nil, @R); ShowWindow(FWnd, SW_SHOW) end else ShowWindow(FWnd, SW_HIDE) end; end;
Прошу помощи...
Ссылка на комментарий
4 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.