Seite 1 von 1

Draw/Impress - MouseEvent (Position)

Verfasst: Fr 3. Mai 2013, 09:10
von Petyr
Einen guten Morgen euch allen!

Ich versuche gerade einen Teil unserer Dokumente von CorelDraw auf Draw/Impress umzustellen. Ein Schirtt darin besteht aus der Nummerierung von Elementen. In CorelDraw haben wir mittels VBA eine extra Funktion dafür erstellt. Ich starte das VBA Makro gebe eine Startnummer ein und klicke dann in meinem Zeichnungsbereich herum. An jeder Stelle im Dokument, die ich anklicke, wird ein Kreis mit einer Zahl erstellt. Die Nummerierung wird dabei automatisch hochgezählt.

Jetzt möchte ich diese Funktion auch in Draw nachbilden. Leider finde ich keinerlei Hinweise darauf, ob es in LO-Basic überhaupt so etwas wie einen Mouse-Event/Mouse-Click-Event im Zeichnungsbereich gibt.

Hat jemand eine Idee, wo ich zu suchen anfangen muss, oder wo ich Infos zum Eventsystem finde? Die Steuerelemente-Events, sowie die Events des Dokuments (Open, Save, ...) helfen mir hier leider nicht.

Danke!

Re: Draw/Impress - MouseEvent (Position)

Verfasst: Fr 3. Mai 2013, 11:04
von pmoegenb
Evtl. wirst Du hier fündig.

Re: Draw/Impress - MouseEvent (Position)

Verfasst: Fr 3. Mai 2013, 15:09
von Petyr
Vielen lieben Dank für die prompte Rückmeldung. Ich habe einen schnellen Blick drauf geworfen - sieht gut aus!
*thumbup*

Re: Draw/Impress - MouseEvent (Position)

Verfasst: Sa 4. Mai 2013, 11:19
von Petyr
Hi,
Ich konnte gestern einen Blick auf den Link werfen.
Entweder hat sich das API geändert, oder aber diese Events gelten nur wieder innerhalb von Formularfeldern.
Wenn ich z.B. das Demosnippet übernehme und aus dem Editor starte, bekomme ich sofort einen Fehler mit Bezug auf 'optionale Parameter' bei der ersten IF-Abfrage.
Wenn ich den Makro aus dem Dokument aufrufe, friert mir LO für ein paar Sekunden ein, aber es passiert nix. Ich werde jetzt mal ein paar Breakpoints und Überwachungen hinzufügen. Vielleicht werde ich dann etwas schlauer....

Re: Draw/Impress - MouseEvent (Position)

Verfasst: Do 9. Mai 2013, 08:51
von Axel Richter
Hallo,

die Mausposition per Handler-Event in einem Draw-Controller zu ermitteln, ist ein lösbares Problem, siehe anhängende Datei.

Das eigentliche Problem ist, dass diese Position in Bildpunkten angegeben ist. Man muss diese also irgendwie auf 1/100 mm der unter dem Controller liegenden DrawPage projizieren. Dafür habe ich bisher keine zufriedenstellende Lösung gefunden. Eventuell kennt ja jemand eine?

viele Grüße

Axel

Re: Draw/Impress - MouseEvent (Position)

Verfasst: Fr 10. Mai 2013, 09:41
von Axel Richter
Hallo,

ich habe nun doch eine Lösung gefunden, die Scrollzustand und Zoom berücksichtigt. Allerdings zunächst noch wenig getestet.

Siehe anhängende Datei - dort benutzerdefiniertes Menü Nummerierung.

viele Grüße

Axel

Re: Draw/Impress - MouseEvent (Position)

Verfasst: Di 14. Mai 2013, 08:53
von Petyr
:shock:
Wow. Danke. Das macht GENAU was ich vorhatte.
Vielen, vielen lieben Dank - ich hätte mir das wohl selbst nicht in der Form erarbeiten können. Jetzt stellt sich mir die Frage, wie du das Menü da reinbekommen hast!?

Re: Draw/Impress - MouseEvent (Position)

Verfasst: Mi 15. Mai 2013, 06:52
von Axel Richter
Hallo Petyr,
Petyr hat geschrieben:Jetzt stellt sich mir die Frage, wie du das Menü da reinbekommen hast!?
https://help.libreoffice.org/Common/Menu/de

viele Grüße

Axel