Hyperlink "OnMouseOver" auslesen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Hyperlink "OnMouseOver" auslesen

Beitrag von F3K Total »

Hallo zusammen,
im Writer kann man einem Hyperlink zu drei Ereignissen, "OnClick", "OnMouseOver" und "OnMouseOut" ein Makro zuweisen.
Das Zuweisen geht per Hand, und per Makro.
Nun habe ich folgendes Problem: Ich möchte zum Ereignis "OnMouseOver" gerne den Hyperlink selbst, also entweder den "String" oder den "Link" oder den "Anchor" auslesen, komme aber mit Event.source nicht weiter. Und anklicken möchte ich den Link auch nicht.
Hat da jemand eine Idee? Ich möchte zu bestimmten Schlüsselwörtern entweder wie im angehängten Beispiel einen Dialog starten um dem User weitere Informationen zu dem Schlüsselwort "unter der Maus" zu geben oder schlicht die Formatierung des Linktextes beim Ereignis "OnMouseOver" verändern, damit dieser als solcher erkennbar wird.

Gruß Rik

Edit: Anhang ausgetauscht, hatte vergessen die DialogLibrary zu laden.
Dateianhänge
Hyperlink_OnMouseOver.odt
(11.89 KiB) 164-mal heruntergeladen
Karolus
********
Beiträge: 7431
Registriert: Mo, 02.01.2006 19:48

Re: Hyperlink "OnMouseOver" auslesen

Beitrag von Karolus »

Hallo
2. Versuch
Viel Spass beim Suchen
Hyperlink_OnMouseOver_fertig2.odt
(12.64 KiB) 243-mal heruntergeladen
Das geht ja noch einfacher: ( ich sollte mich mal mehr mit Writer beschäftigen ):
Hyperlink_OnMouseOver_fertig3.odt
(12.58 KiB) 282-mal heruntergeladen
Gruß Karo
Zuletzt geändert von Karolus am So, 12.02.2012 22:33, insgesamt 1-mal geändert.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Hyperlink "OnMouseOver" auslesen

Beitrag von F3K Total »

Hallo Karo,
da hast Du mich erstmal überrascht!
Und eine schöne Suchaufgabe war es auch;-)
Wäre schön gewesen, wenn es so geklappt hätte, wie ich es oben geschrieben habe.
Leider kann ich mit der Formular-Lösung wenig anfangen, es geht mir schon letztlich um den "Anchor" im Text.
Wenn ich hinter jeden Hyperlink ein grafisches Kontrollfeld legen würde, so hätte ich Probleme mit der jeweiligen Größe. Die Textlänge meiner Hyperlinks ist immer unterschiedlich und von der Schriftgröße soll die Sache auch unabhängig bleiben.


Beste Grüße von Rik
Karolus
********
Beiträge: 7431
Registriert: Mo, 02.01.2006 19:48

Re: Hyperlink "OnMouseOver" auslesen

Beitrag von Karolus »

Hallo
Siehe nochmal oben, ich hab noch eine Datei hinzugefügt.
( Diesmal ohne unsichtbare Grafische Schaltfläche )

Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Hyperlink "OnMouseOver" auslesen

Beitrag von F3K Total »

Guten Morgen Karo,
F3K Total hat geschrieben:Hallo zusammen,
im Writer kann man einem Hyperlink zu drei Ereignissen, "OnClick", "OnMouseOver" und "OnMouseOut" ein Makro zuweisen.
...
Und genau das hast Du jetzt gemacht, vorher war an der Stelle mein Dialog mit dem Ereignis "OnMouseOver" verknüpft.
Vermutlich habe ich mich undeutlich ausgedrückt.
Von Formularen kenne ich folgenden Weg um z.B. den Namen des Kontrollfeldes, von dem aus das Makro gestartet wurde, auszugeben:

Code: Alles auswählen

msgbox event.source.model.name
Innerhalb eines Textes konnte ich diese Möglichkeit bislang nicht finden.
Ich suche nach einem Makro das an die Quelle des Ereignisses herankommt.
Es soll den Text "Hyperlink" ausgeben, wenn ich mit der Maus über einen mit Hyperlink versehenen Text "Hyperlink" fahre.
Wenn der Text des Hyperlinks "Hugo Müller ist ein netter Mann" lautet, soll "Hugo Müller ist ein netter Mann" ausgegeben werden.
Es würde mir auch reichen, wenn das Ziel des Hyperlinks ausgegeben werden würde, in meinem Beispiel wäre das die Textmarke "übernächster Absatz".

Beste Grüsse von Rik

Edit: um Mecker wegen Crossposting zu vermeiden: ich habe das Thema gerade auch im englischen Forum gepostet:
http://user.services.openoffice.org/en/ ... 88&start=0
Karolus
********
Beiträge: 7431
Registriert: Mo, 02.01.2006 19:48

Re: Hyperlink "OnMouseOver" auslesen

Beitrag von Karolus »

Hallo
Wenn du auf "OnMouseOver" bestehst wird das vmtl.schwierig ( bei "onClick" hättest du den Cursor an der richtigen Stelle und könntest über den an die Eigenschaften des Textranges rankommen )

Falls du doch nochmal die Idee mit den darüberplatzierten grafischen Schaltflächen aufgreifst -
- Die sollten sich
  • 1. per Makro präzise über den 'Hyperlinkwörten' platzieren lassen, und am ersten Zeichen verankern lassen.
    2. Kannst du dann dem aufgerufenen Makro ein 'Event'-argument mitgeben.
    3. Im Makro über so etwas ähnliches wie 'Event.source.getAnchor' kommst du wieder an das TextRange und seine Eigenschaften ran...
Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Hyperlink "OnMouseOver" auslesen

Beitrag von F3K Total »

Guten Morgen Karo,
Karolus hat geschrieben:bei "onClick" hättest du den Cursor an der richtigen Stelle und könntest über den an die Eigenschaften des Textranges rankommen )
.. stimmt, das funktioniert! Habe ich schon so gemacht, ich möchte das "Klicken" vermeiden.
Karolus hat geschrieben:- Die sollten sich

1. per Makro präzise über den 'Hyperlinkwörten' platzieren lassen,
... aber wie? Kann man über die Schriftart und Schriftgröße, unabhängig vom Betriebssystem und der Bildschirmauflösung die Abmessungen des Kontrollfeldes ausrechnen? Hast Du da eine Idee?

Beste Grüße von Rik
linuxyz
Beiträge: 1
Registriert: Mi, 05.09.2018 07:49

Re: Hyperlink "OnMouseOver" auslesen

Beitrag von linuxyz »

Hallo zusammen! :)
Das ist ein altes Problem, aber es ist der einzige Thread, der darüber spricht ...
Hat jemand irgendwelche Neuigkeiten über die Quelle des Hyperlinks zu finden?

Ich habe auch auf dem englischen Forum gepostet (https://forum.openoffice.org/en/forum/v ... 63#p452663). Sehr interessante Antworten aber noch keine Lösung ...

Danke vielmals!

Moderationshinweis:
Bitte keine "alten" Threads mehr aufwärmen.
Siehe auch Infos zur Forenbenutzung (dort unter: "Eröffnet neue Threads").
Eröffne bitte einen neuen Thread mit Deiner Frage.
Thread geschlossen.
Gesperrt