Video + OnMouseDown



  • Hallo undschönen Sontag Abend,

    wie schon einmal erwähnt, verwende ich folgende Video - Komponente:
    http://www.xtrimsoft.com/downloads/BCBcomponent.htm

    Die Komponente funktioniert einwandfrei, wenn man sie in einem neuen Projekt hinzufügt kann man auch alle Eigenschaften verwenden.
    Diese Komponente stellt auch einige Ereignisse zurverfügung, unteranderem "OnMouseDown".

    Ich verwende folgenden Code:

    void __fastcall TForm1::Video1MouseDown(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y)
    {
     char PosX[4],PosY[4],Pos[10];
     Edit1->Text=IntToStr(X-125);
     Edit2->Text=IntToStr(Y-125);   
    }
    

    Klappt alles Wunderpar, wenn ich das Projekt ausführe, sehe ich den Bereich, wo das Videobild sein sollte, klicke ich herum, wird mir die Position angezeigt. nun starte ich das Video bzw die Komponente per Button mit folgedem Befehl:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Video1->Enabled = true;
    }
    

    Funktioniert auch, habe das Bild meiner USB Webcam, nun das Problem, per Klick auf das Bild bzw den Bereich werden mir keine Positionen mehr angezeigt, warum nicht? eventuell kann mir jemande helfen.

    LG Lion



  • Hallo

    setzt doch mal in den MouseDown-Event einen Breakpoint und überprüf oder Event überhaupt noch ausgelöst wird. Wen nnicht, dann verschluckt die Komponente selber den Event.
    In dem Fall hilft wohl nur mit den WinAPI-methoden die Mouse-Message manuell abfangen und verarbeiten.

    bis bald
    akari



  • Ohne die Komponente wirklich zu kennen, würde ich pauschal sagen, dass sich das Bild über den Bereich Deiner Region, in der OnMouseDown ging, legt. Teste einfach mal mit dem Debugger, ob die Methode aufgerufen wird.

    [Edit: Zu spät]



  • Tut mir leid, aber wie kann ich feststellen ob die kompenten das Ereigniss schluckt? ich meine, ich starte das programm, da geht sie ja. erst wenn ich das Video starte, funktioniert sie nicht mehr, also die kompenten funktioniert mit dem ereigniss aber auch nicht.

    Wenn ich Breakpoint in die Rountesetzte, läuft es auch, wie gesagt, erst nach dem ein Bild in den bereich kommmt wird anscheind was drüber gelegt, kann man irgendwie definieren, welche "ebene" oben liegt? 🙂 hoffe das klingt jetzt nicht all zublöd 🙂



  • Wird denn der Breakpoint auch aufgerufen, nachdem Du den Button geklickt hast?

    Worauf wird das Video abgespielt? Öffnet die Komponente einen eigenen Bereich oder kannst Du selber den Ort, z.B. ein Panel, festlegen.

    Ganz allgemein kannst Du mit BringToFront und SendToBack die z-order festsetzen.



  • ich kann es frei bewegen, wie ein Panel.

    Das Video bzw die kamera wird mit einem befehl gestartet.

    Video1->Enabled = true;
    

Anmelden zum Antworten