Unit1.pas
上传用户:hylc_2004
上传日期:2014-01-23
资源大小:46800k
文件大小:2k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit Unit1;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, StdCtrls, DSPack, DSUtil, DirectShow9, ComCtrls;
  6. type
  7.   TFormVMRMixer = class(TForm)
  8.     FilterGraph: TFilterGraph;
  9.     VideoWindow: TVideoWindow;
  10.     btRender: TButton;
  11.     Alpha: TTrackBar;
  12.     OpenDialog: TOpenDialog;
  13.     CoordX: TTrackBar;
  14.     CoordY: TTrackBar;
  15.     Label1: TLabel;
  16.     procedure btRenderClick(Sender: TObject);
  17.     procedure AlphaChange(Sender: TObject);
  18.     procedure CoordChange(Sender: TObject);
  19.   private
  20.     { D閏larations priv閑s }
  21.   public
  22.     { D閏larations publiques }
  23.   end;
  24. var
  25.   FormVMRMixer: TFormVMRMixer;
  26.   ARect: TVMR9NORMALIZEDRECT;
  27. implementation
  28. {$R *.dfm}
  29. procedure TFormVMRMixer.btRenderClick(Sender: TObject);
  30. begin
  31.   if OpenDialog.Execute then
  32.   begin
  33.     FilterGraph.ClearGraph;
  34.     ARect.left   := 0;
  35.     ARect.top    := 0;
  36.     ARect.right  := CoordX.Position / 100;
  37.     ARect.bottom := CoordY.Position / 100;
  38.     with (VideoWindow as IVMRMixerControl9) do
  39.     begin
  40.       SetOutputRect(1,@ARect);
  41.       SetAlpha(1,Alpha.Position/100);
  42.       SetZOrder(1,0)
  43.     end;
  44.     FilterGraph.RenderFile(OpenDialog.FileName);
  45.     FilterGraph.RenderFile(ExtractFilePath(Application.ExeName) + 'penguin.gif');
  46.     FilterGraph.Play;
  47.   end;
  48. end;
  49. procedure TFormVMRMixer.AlphaChange(Sender: TObject);
  50. begin
  51.   (VideoWindow as IVMRMixerControl9).SetAlpha(1,Alpha.Position/100);
  52. end;
  53. procedure TFormVMRMixer.CoordChange(Sender: TObject);
  54. begin
  55.   ARect.left   := 0;
  56.   ARect.top    := 0;
  57.   ARect.right  := CoordX.Position / 100;
  58.   ARect.bottom := CoordY.Position / 100;
  59.   (VideoWindow as IVMRMixerControl9).SetOutputRect(1,@ARect)
  60. end;
  61. end.