📄 camselectdlg.pas
字号:
unit CamSelectDlg;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, cdError, cdType, cdAPI;
type
TForm_CamSelect = class(TForm)
Button_OK :TButton;
Button_Cancel :TButton;
ComboBox_CamList:TComboBox;
procedure Button_OKClick(Sender: TObject);
procedure Button_CancelClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private }
m_SourceInfoArray:array of cdSourceInfo;
public
{ Public }
m_SourceInfo:cdSourceInfo;
end;
var
Form_CamSelect: TForm_CamSelect;
implementation
{$R *.dfm}
//------------------------------------------------------------------------
//------------------------------------------------------------------------
procedure TForm_CamSelect.Button_OKClick(Sender: TObject);
begin
if ComboBox_CamList.ItemIndex <> -1 then
m_SourceInfo := m_SourceInfoArray[ComboBox_CamList.ItemIndex];
ModalResult := mrOK;
end;
//------------------------------------------------------------------------
//------------------------------------------------------------------------
procedure TForm_CamSelect.Button_CancelClick(Sender: TObject);
begin
ModalResult := mrCancel;
end;
//------------------------------------------------------------------------
//------------------------------------------------------------------------
procedure TForm_CamSelect.FormCreate(Sender: TObject);
var
err :cdErr;
hEnum :cdHEnum;
index :Integer;
Count :cdUInt32;
label
ErrHandler;
begin
err := CDEnumDeviceReset(1, hEnum);
if err <> cdOK then goto ErrHandler;
err := CDGetDeviceCount(hEnum, Count);
if err <> cdOK then
goto ErrHandler
else if Count = 0 Then
begin
CDEnumDeviceRelease(hEnum);
hEnum := 0;
ComboBox_CamList.Text := '(None)';
ModalResult := mrCancel;
Exit;
end;
SetLength( m_SourceInfoArray, Count);
for index := 0 To Count-1 do
begin
err := CDEnumDeviceNext(hEnum, m_SourceInfoArray[index]);
if err = cdOK then
ComboBox_CamList.AddItem(m_SourceInfoArray[index].Name, Sender);
end;
ComboBox_CamList.ItemIndex := 0;
err := CDEnumDeviceRelease(hEnum);
hEnum := 0;
if err <> 0 then goto ErrHandler;
Exit;
ErrHandler:
if hEnum <> 0 then
CDEnumDeviceRelease (hEnum);
ShowMessage('Error!');
ModalResult := mrCancel;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -