Code:
const
WM_CAP_DRIVER_CONNECT = WM_USER + 10;
WM_CAP_EDIT_COPY = WM_USER + 30;
WM_CAP_SET_PREVIEW = WM_USER + 50;
WM_CAP_SET_OVERLAY = WM_USER + 51;
WM_CAP_SET_PREVIEWRATE = WM_USER + 52;
implementation
function capCreateCaptureWindow(lpszWindowName: LPCSTR;
dwStyle: DWORD;
x, y,
nWidth,
nHeight: integer;
hwndParent: HWND;
nID: integer): HWND; stdcall;
external 'AVICAP32.DLL' name 'capCreateCaptureWindowA';
{------------------------------------------------------------------------------}
{$R *.DFM}
procedure TForm1.Bildzeigen;
begin
connect := capCreateCaptureWindow('Kamera',ws_child+ws_visible, 0,
0, 600, 450, Panel1.Handle, 1);
SendMessage(connect, WM_CAP_DRIVER_CONNECT, 0, 0);
SendMessage(connect, WM_CAP_SET_PREVIEWRATE, 30, 0);
sendMessage(connect, WM_CAP_SET_OVERLAY, 1, 0);
SendMessage(connect, WM_CAP_SET_PREVIEW, 1, 0);
end;
Auf diese Weise wird das Bild/
Handle in einem Panel dargestellt.
Habe noch zusätzliche Funktionen, wie Abspeichern der Bilder usw. aber daran sollte es nicht liegen.
Du meinst ein zusätzlich Anzeigecontrol könnte helfen? Aber mich würde es trotzdem interessieren, warum das Panel in diesem Fall Probleme macht.