软件中用到这样一个申明
BMPSize:TOnGraphVideoSizeChanged;
其中的TOnGraphVideoSizeChanged源文件是这样定义的
 TOnGraphVideoSizeChanged     = procedure(sender: TObject; Width, height: word) of object ; 但不知道怎么初始化BMPSize,我是初学者不懂,希望大家帮忙解决一下

解决方案 »

  1.   

    你在程序中自己定义一个procedure结构和其一样!
    比如 
    procedure test(sender: TObject; Width, height: word);
    begin
      showmessage('Hello!');
    end;完成上面工作后,就直接可以
    BMPSize := test;
    这样就OK啦!试试!
      

  2.   

    这是过程类型.TABC = class(TXXX)
    public
    procedure proc_abc(sender: TObject; Width, height: word);
    end;TABC.proc_abc(sender: TObject; Width, height: word);
    begin
    //.............
    end;
    var
    BMPSize:TOnGraphVideoSizeChanged;BMPSize:= TABC.proc_abc;
      

  3.   

    恩,方法行得通,我是这样用的
    procedure  TVideoForm.BMPtest(sender: TObject; Width, height: word);
    begin
     Width:=800;
     height:=680;
    end; 然后赋值
    BMPSize:=BMPtest;
    FilterGraph.OnGraphVideoSizeChanged:=BMPSize;//改变视频新的尺寸像素为什么提示
    [Hint] main.pas(47): Value assigned to 'height' never used
    [Hint] main.pas(46): Value assigned to 'Width' never used
    得到的图像大小也没变化仍是640×480.
      

  4.   

    procedure TVideoForm.BMPtest(sender: TObject; Width, height: word);
    begin
     TWinControl(Sender).Width:=800;
     TWinControl(Sender).height:=680;
    end;
      

  5.   

    或者 FilterGraph.OnGraphVideoSizeChanged(FilterGraph, 800, 600);
      

  6.   

    或者你去下载 http://www.2ccc.com/article.asp?articleid=272 这个也是用DSPACK写的
      

  7.   

    再补充一下问题,我是在用DSPack来进行视频采集然后扑捉图片,目前扑捉的图片的像素大小一直是640×480,但要求是要更高像素才行。问题是不是出现在视频流采集的时候被FilterGraph过滤掉了,所以就想提高采集视频的分辨率大小。 过来视频流肯定是够的,我用到的摄像头有500万。