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

Delphi控件源码

开发平台:

Delphi

  1. unit drvedit;
  2. interface
  3. procedure Register;
  4. implementation
  5.  uses classes,{$IFDEF VER130} DsgnIntf, {$ELSE} DesignEditors, DesignIntf, {$ENDIF}sysutils,vfw,videocap;
  6. // Property Editor for driver selection   in Video-Cap
  7. type TDrivereditor= class (TPropertyEditor)
  8.   function GetAttributes:TPropertyAttributes;override;
  9.   procedure GetValues(Proc: TGetStrProc);override;
  10.   function GetValue:string;override;
  11.   procedure SetValue(const Value: string);override;
  12. end;
  13. function TDriverEditor.GetAttributes:TPropertyAttributes;
  14. begin
  15.  result :=[paRevertable,paValueList];
  16. end;
  17. procedure TDriverEditor.GetValues(Proc: TGetStrProc);
  18. var i:integer;
  19.     name:array[0..80] of char;
  20.     ver :array[0..80] of char;
  21.     s:string;
  22. begin
  23.  for i:= 0 to 9 do
  24.   begin
  25.    if capGetDriverDescription( i,name,80,ver,80) then
  26.       s:=strpas(name)
  27.    else
  28.       s:='' ;
  29.    proc(s);
  30.   end;
  31. end;
  32. function TDriverEditor.GetValue:string;
  33. var  n:array[0..80] of char;
  34.      ver :array[0..80] of char;
  35.      s:string;
  36. begin
  37.  with Getcomponent(0) as TVideoCap do
  38.    begin
  39.     if capGetDriverDescription( DriverIndex,n,80,ver,80) then
  40.       s:=strpas(n)
  41.     else
  42.       s:='' ;
  43.    end;
  44.    result:= s;               //fVideoDrivername;
  45. end;
  46. procedure TDriverEditor.SetValue(const Value: string);
  47. begin
  48.   with Getcomponent(0) as TVideoCap do
  49.     SetDrivername( value) ;
  50.   Modified;
  51. end;
  52. procedure Register;
  53. begin
  54.   RegisterPropertyEditor(TypeInfo(string),TVideoCap,'DriverName',TDriverEditor);
  55. end;
  56. end.