Einzelnen Beitrag anzeigen

BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Übersetzung einer Funktion von VC++7 in Delphi

  Alt 19. Nov 2008, 10:57
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
  Mit Zitat antworten Zitat