Koordinaten-Umrechnung im Mousemove

  • Hallo,

    ich möchte ein, mit InsertMovableImage eingefügtes Bild im Mousemove des WPRichText verschieben.

    Irgendwie bekomme ich die Koordinaten dafür nicht hin, z.B. :

    Das Dokument hat 3 Seiten, ich sehe momentan Seite 2 die Seitenmitte...

    imgobj ist das aktivierte TWPTextObj

    Das funktioniert, solange die erste Seite ganz oben angezeigt wird, ich vermute die Scrollposition muss ebenfalls noch eingerechnet werden, aber hier fehlt mir der richtige Ansatz...

    Ciao

    Stefan

  • Danke,

    Objekt anklicken und dann verschieben ist ja nicht das Problem...

    Ich beschreibe mal was ich vorhabe:

    - Benutzer klickt einen Button um ein Bild einzufügen

    - es wird ein InsertMovableImage auf der gerade sichtbaren Seite oben in der sichtbaren Ecke eingefügt (ggf. eben auch auf der gerade aktiven Seite 3)

    - Benutzer bewegt nun die Maus und das Bild soll dem Mauszeiger folgen, bis er dann klickt, dann steht die Position fest.

    Meine Probleme:

    1) wie bekomme ich die Position auf der gerade angezeigten Seite?

    2) wenn ich 1) weiß wie rechne ich die neue Position anhand der x,y im Mousemove um?

    Ciao

    Stefan

  • Nach langem Probieren gibt es nun (falls jemand das auch braucht) die Lösung:

    Ein Problem dabei bleibt aber:

    Nach dem Klick bleiben die Anfasser um das Bild erhalten und beim ersten Tastendruck ist es wieder weg!

    Erst wenn man wieder irgendwie in den Text klickt wird das Bild dauerhaft und die Anfasser verschwinden.

    Kann man dieses per Code bewerkstelligen?

    Das Setzen von ActiveParagraph hat z.B. nichts bewirkt...

    Ciao

    Stefan

    • Offizieller Beitrag

    Aus dem Kontext schliesse ich, Sie wollen das gerade eingefügte Objekt selektieren, sodass es der User es gleich mit der Maus verschieben kann.

    Das geht so:

    PS.: Nach einem Button Klick muss man den Fokus erst wieder an das TWPRichText geben, daher das SetFocus.

  • Nein, das Textobjekt wird erzeugt, ist dann automatisch selektiert (zeigt seinen Rahmen an) und folgt dann dem Mauszeiger einfach beim Bewegen der Maus.

    Bei einem Klick dann wird diesem der Focus entzogen (HideSelection) und das Bild einfügen ist erledigt.

    Um das nachzustellen reichen die oben gezeigten 3 Proceduren auf einem Formular, welches ein WPRichText enthält...

    Ich habe nach langem Probieren die Lösung:

    WPRichText.HideSelection

    manchmal hat man eben Tomaten vor den Augen!

    Ciao
    Stefan