Hi, also bei der kann ich dir wirklich mehr weiterhelfen
Delphi-Quellcode:
UNI_RETURN_TYPE = Cardinal;
Function UCC_GetCameras ( Var pnSize : UInt32; VecIds : PUInt32) : UNI_RETURN_TYPE; stdcall;
// mit
var
Cameras: array of Uint32;
CameraCount: Uint32;
CameraCount := 64;
SetLength(Cameras, CameraCount);
if GetCameras(CameraCount, @Cameras[0]) = S_OK then begin
SetLength(Cameras, CameraCount);
for i := Low(cameras) to High(cameras) do
memo.lines.add(inttostr(cameras[i])); // cameraID
end;
Die Kameras werden ueber die ID angesprochen (diese siehst du auch im UniCamViewer). Eine Liste der verfuegbaren Kameras erhaelst du wie im SourceCode oben.
Bei UCC_GetCameraInfoString musst du dir vorher den Speicher reservieren (Wie bei den WinAPIs) [Rueckgabe ist cardinal, deklarier dir das besser wie oben als UNI_RETURN_TYPE):
Delphi-Quellcode:
const
E_CAMINFO_MODEL = 0;
E_CAMINFO_VENDOR = 1; //.....
Function UCC_GetCameraInfoString (CamId : UInt32; nId : UInt32; pszInfoString : PAnsiChar; Var pLength : UInt32) : Cardinal;
if UCC_GetCameraInfoString(camId, E_CAMINFO_MODEL, nil, len) = S_OK then begin // laenge ermitteln
SetLength(text, len);
if UCC_GetCameraInfoString(camId, E_CAMINFO_MODEL, PChar(text), len) = S_OK then begin // auslesen
memo1.lines.add(text);
end;
end;