Hallo an alle nochmal,
Viele der Probleme die ich hier mit diesen C++ Funktionen hatte, konnte ich selbständig mit euren Komentaren schon Lösen. Jetzt kommt aber irgendwie eins, an dem ich mir schon seit einigen Stunden die Zähne ausbeiße. Ich muss das KameraBild das durch die
DLL-Funktionen erzeugt wird auf meiner Form irgendwie ausgeben. Dies muss über ein
Handle geschehen!!! Mein Problem jetzt ist, ich hab immer das Form1.Handle verwendet, allerdings wurde bisher noch nie etwas dort angezeigt, obwohl ich mit der GetError-Funktion der
DLL alle Befehle geprüft hab und auch alle korregt ausgeführt wurden. Jetzt meine Frage, habe ich ein falsches
Handle benutzt oder muss ich irgendeine Komponente verwenden? in einem Beispielprogramm in C# wird eine Paintbox benutzt. Die PaintBox in Delphi hat aber leider kein
Handle oder ich habe sie nicht gefunden.
Hier auch noch ein kurzer Ausschnitt meines Codes, damit ihr nachvollziehen könnt, was ich meine:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var iIndex: integer;
begin
iss_InitCamera(HHCAM,Form1.Handle);
// Komunikation zwischen Kamera und Programm wird hergestellt
// Speicherplätze für die Bilder bereitstellen und in eine Sequenz einordnen
for iIndex := 0
to Bildzahl
do
begin
iss_AllocImageMem(HHCAM, 640, 480, 32, Speicher[iIndex].sSpeicherAdresse, Speicher[iIndex].iSpeicherAdresse);
Speicher[iIndex].iSpeicherNummer := iIndex;
iss_AddtoSequence(HHCAM, Speicher[iIndex].sSpeicherAdresse, Speicher[iIndex].iSpeicherAdresse);
end;
// 1Speicherplatz aktivieren und die Bildgröße sowie Position in dem Fenster/ Handle setzen
iss_SetImageMem(HHCAM, Speicher[0].sSpeicherAdresse, Speicher[0].iSpeicherAdresse);
iss_SetImageSize(HHCAM, 640, 480);
iss_SetImagePos(HHCAM, 20,20);
// Farbmodus wählen und eine Bestimmte Nachricht des Objektes/ Handle ausschalten (wird so auch in dem Beispiel gemacht)
iss_SetColorMode(HHCAM, 0);
iss_EnableMessage(HHCAM, 0, Form1.Handle);
// Bild erzeugen und Liveansicht starten (hab einfach alles angemacht, was die DLL zur Verfügung stellt und gehofft,
// dadurch einen AH-Effekt zu bekommen) leider bleibt die Form grau
iss_FreezeVideo(HHCAM,20);
iss_CaptureVideo(HHCAM,20);
end;
Hoffe jemand hat einen guten Tip für mich.
Vielen Danke
BAMatze