🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Draw/Impress - MouseEvent (Position)
Draw/Impress - MouseEvent (Position)
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!
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!
viele Grüße,
Petyr
Petyr
Re: Draw/Impress - MouseEvent (Position)
Vielen lieben Dank für die prompte Rückmeldung. Ich habe einen schnellen Blick drauf geworfen - sieht gut aus!
*thumbup*
*thumbup*
viele Grüße,
Petyr
Petyr
Re: Draw/Impress - MouseEvent (Position)
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....
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....
viele Grüße,
Petyr
Petyr
-
- Beiträge: 4
- Registriert: Do 9. Mai 2013, 08:44
Re: Draw/Impress - MouseEvent (Position)
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
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
- Dateianhänge
-
- DrawMouseClickHandler.odg
- (9.81 KiB) 372-mal heruntergeladen
-
- Beiträge: 4
- Registriert: Do 9. Mai 2013, 08:44
Re: Draw/Impress - MouseEvent (Position)
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
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
- Dateianhänge
-
- DrawMouseClickHandler.odg
- (12.26 KiB) 390-mal heruntergeladen
Re: Draw/Impress - MouseEvent (Position)

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!?
viele Grüße,
Petyr
Petyr
-
- Beiträge: 4
- Registriert: Do 9. Mai 2013, 08:44
Re: Draw/Impress - MouseEvent (Position)
Hallo Petyr,
viele Grüße
Axel
https://help.libreoffice.org/Common/Menu/dePetyr hat geschrieben:Jetzt stellt sich mir die Frage, wie du das Menü da reinbekommen hast!?
viele Grüße
Axel
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.