BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
[gelöst] CALC: bei Klick auf Bild in einer Zelle deren Adresse & URL des Bildes auslesen
[gelöst] CALC: bei Klick auf Bild in einer Zelle deren Adresse & URL des Bildes auslesen
… funktioniert in einer WRITER-Tabelle recht einfach, aber …
- während die CALC-Tabelle in Sekundenbruchteilen auf dem Schirm ist,
- braucht das Textdokument Minuten zum Aufbau, bis überhaupt der Maus-Cursor erscheint.
Mein sheet(0).drawPage hat derzeit testweise einen count von 18. (18 Bilder in 18 Zellen, die ich über den Index der Drawpage richtig identifizieren kann. Soll letztlich auch ~100 werden können.)
Wie aber kriege ich raus, welches gerade angeklickt wurde? "currentSelection" bringt nix Verwertbares.
Ginge auch umgekehrt: Wenn ich die Zelle (statt des Bildes in der Zelle) anklicke, wie kriege ich dann raus, welches Drawpage-Objekt in der Zelle ist (seinen Anker in der Zelle hat)?
- während die CALC-Tabelle in Sekundenbruchteilen auf dem Schirm ist,
- braucht das Textdokument Minuten zum Aufbau, bis überhaupt der Maus-Cursor erscheint.
Mein sheet(0).drawPage hat derzeit testweise einen count von 18. (18 Bilder in 18 Zellen, die ich über den Index der Drawpage richtig identifizieren kann. Soll letztlich auch ~100 werden können.)
Wie aber kriege ich raus, welches gerade angeklickt wurde? "currentSelection" bringt nix Verwertbares.
Ginge auch umgekehrt: Wenn ich die Zelle (statt des Bildes in der Zelle) anklicke, wie kriege ich dann raus, welches Drawpage-Objekt in der Zelle ist (seinen Anker in der Zelle hat)?
Zuletzt geändert von nitja am Mo 22. Feb 2021, 11:26, insgesamt 4-mal geändert.
LO 24.2.0.3 (X86_64) auf Linux 6.6.19-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO
Re: CALC - bei Klick auf ein (verlinktes) Bild in einer Zelle die Adresse der Zelle und den URL des Bildes auslesen …
Mit der Selektion des/eines Bildes komme ich nicht recht weiter.
Und das ist wohl wenn, dann nur wenigen hier gelungen, die hier zur Zeit nicht aktiv sind.
Ich werde statt des Bildes einen zugeordneten Text zum Auslöser für das Makro machen.
Da funktioniert currentSelection, so dass ich auch (über den Zellennamen) zum URL des zu verarbeitenden Bildes komme:
thisComponent.sheets(i).drawPage(j).graphicURL.originURL
von dem Bild, bei dem
thisComponent.sheets(i).drawPage(j).anchor.absoluteName
dem auslösenden Zellnamen entspricht.
i ist hier immer 0 und ob ich mir die Schleife über j durch die Anordnung der Bilder (bzw. deren drawPage-Objekten) sparen sollte oder muss, werde ich nach Laufzeittests entscheiden.
Also: "im Prinzip" per "work around" gelöst
Und das ist wohl wenn, dann nur wenigen hier gelungen, die hier zur Zeit nicht aktiv sind.
Ich werde statt des Bildes einen zugeordneten Text zum Auslöser für das Makro machen.
Da funktioniert currentSelection, so dass ich auch (über den Zellennamen) zum URL des zu verarbeitenden Bildes komme:
thisComponent.sheets(i).drawPage(j).graphicURL.originURL
von dem Bild, bei dem
thisComponent.sheets(i).drawPage(j).anchor.absoluteName
dem auslösenden Zellnamen entspricht.
i ist hier immer 0 und ob ich mir die Schleife über j durch die Anordnung der Bilder (bzw. deren drawPage-Objekten) sparen sollte oder muss, werde ich nach Laufzeittests entscheiden.
Also: "im Prinzip" per "work around" gelöst
LO 24.2.0.3 (X86_64) auf Linux 6.6.19-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO
Re: ["im Prinzip" per "work around" gelöst] CALC: bei Klick auf Bild in einer Zelle deren Adresse & URL des Bildes ausle
Hallo nitja,
meinst Du so etwas:
meinst Du so etwas:
Code: Alles auswählen
REM ***** BASIC *****
Sub Main
Dim oDoc as Object
Dim oSheet as Object
Dim oCC as Object
Dim oShape as Object
Dim oCell as Object
Dim oCellAdress as Object
Dim sCellAbsoulteName as String
oDoc=ThisComponent
oSheet=oDoc.Sheets().getByIndex(0)
oCC=oDoc.CurrentController
xray oCC
oShape=oCC.Selection.getByIndex(0)
xray oShape
sShapeName=oShape.Name
oCellAdress=oCC.Selection.getByIndex(0).Anchor.getCellAddress
sCellAbsoulteName=oCC.Selection.getByIndex(0).Anchor.AbsoluteName
xray sShapeName
xray oCellAdress
xray sCellAbsoulteName
End Sub
Gruß
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Re: ["im Prinzip" per "work around" gelöst] CALC: bei Klick auf Bild in einer Zelle deren Adresse & URL des Bildes ausle
Vielleicht. Muss ich mir erst formulieren, dann testen. Anschließend stelle ich hier das Ergebnis rein.
An und für sich funktioniert das "work around" in meinem speziellen Fall schon ganz gut, aber die Auswahl per Bild ist und bleibt grundsätzlich sehr interessant.
LO 24.2.0.3 (X86_64) auf Linux 6.6.19-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO
Re: ["im Prinzip" per "work around" gelöst] CALC: bei Klick auf Bild in einer Zelle deren Adresse & URL des Bildes ausle
Hallo,
ich hatte mal etwas gesehen und nun wieder entdeckt.
Excel hat netterweise eine Funktion/Methode namens "Caller" die den Namen des aufrufenden Objekts/Ereignisses (oder so ähnlich) liefert.
Obwohl LO Basic so etwas nicht implementiert hat, funktioniert es trotzdem, wenn der VBA-Support aktiviert ist.
Probiere mal:
ich hatte mal etwas gesehen und nun wieder entdeckt.
Excel hat netterweise eine Funktion/Methode namens "Caller" die den Namen des aufrufenden Objekts/Ereignisses (oder so ähnlich) liefert.
Obwohl LO Basic so etwas nicht implementiert hat, funktioniert es trotzdem, wenn der VBA-Support aktiviert ist.
Probiere mal:
Code: Alles auswählen
REM ***** BASIC *****
Option VBASupport 1
Sub Main
oEv=Application.Caller
msgbox oEv
odoc=Thiscomponent
otab=odoc.currentcontroller.activesheet
odr=otab.drawpage
for i=0 to odr.count-1
msgbox odr.getbyindex(i).anchor.absoluteName
next
End Sub
Gruß,
mikele
mikele
Re: ["im Prinzip" per "work around" gelöst] CALC: bei Klick auf Bild in einer Zelle deren Adresse & URL des Bildes ausle
Meine LO-Projekte sollen ohne irgendwas von WinzigWeich funktionieren.
Außerdem scheint der "Caller" in Deinem Code nutzlos, …
… wird hier nirgends verwendet, so dass die Schleife, die ich vermeiden kann, keinen Rückschluss auf das angeklickte Bild zulässt.mikele hat geschrieben: ↑Fr 19. Feb 2021, 18:02Code: Alles auswählen
… odr=otab.drawpage for i=0 to odr.count-1 msgbox odr.getbyindex(i).anchor.absoluteName next End Sub
LO 24.2.0.3 (X86_64) auf Linux 6.6.19-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO
Re: ["im Prinzip" per "work around" gelöst] CALC: bei Klick auf Bild in einer Zelle deren Adresse & URL des Bildes ausle
Hallo,
da war ich etwas zu fix.
So sollte es natürlich sein:
VBA selbst wird dabei nicht genutzt. Alternativ könnte man
1) einen Listener auf das Bild setzen, der bei Klick entsprechend reagiert
2) das Tabellenereignis Doppelklick oder Rechtsklick nutzen
da war ich etwas zu fix.
So sollte es natürlich sein:
Code: Alles auswählen
REM ***** BASIC *****
Option VBASupport 1
Sub Main
oEv=Application.Caller
odoc=Thiscomponent
otab=odoc.currentcontroller.activesheet
odr=otab.drawpage
for i=0 to odr.count-1
if odr.getbyindex(i).Name=oEv then
msgbox odr.getbyindex(i).anchor.absoluteName
end if
next
End Sub
1) einen Listener auf das Bild setzen, der bei Klick entsprechend reagiert
2) das Tabellenereignis Doppelklick oder Rechtsklick nutzen
Gruß,
mikele
mikele
Re: ["im Prinzip" per "work around" gelöst] CALC: bei Klick auf Bild in einer Zelle deren Adresse & URL des Bildes ausle
hi mikele,
yesss, jetzt ist's klarer
und ja, Dein Vorschlag 2) ist wie ich's derzeit mache (mit der Möglichkeit, durch direkte Adressierung die Schleife zu sparen).
Werde auf jeden Fall noch craigs Version (angepasst) testen.
yesss, jetzt ist's klarer
und ja, Dein Vorschlag 2) ist wie ich's derzeit mache (mit der Möglichkeit, durch direkte Adressierung die Schleife zu sparen).
Werde auf jeden Fall noch craigs Version (angepasst) testen.
LO 24.2.0.3 (X86_64) auf Linux 6.6.19-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO
Re: ["im Prinzip" per "work around" gelöst] CALC: bei Klick auf Bild in einer Zelle deren Adresse & URL des Bildes ausle
@ craig & mikele
Alle Vorschläge funktionieren!
Die einfachste Formulierung ist m. E.: Mir war nicht klar, wie ich mit der Selection-Collection umgehen muss, dass bei einer einfachen Auswahl, das einzige, "0te" Element die Info liefert, die ich suchte.
Mittlerweile ist's noch einfacher: Wenn die Zelle die das Bild enthält, gesperrt aber auswählbar ist, liefert mir oSel direkt die Info zur Zelle und darüber (wo es gebraucht wird) den URL des Bildes.
Alle Vorschläge funktionieren!
Die einfachste Formulierung ist m. E.:
Code: Alles auswählen
dim oSel as object
oSel = oDoc.currentController.selection(0)
Mittlerweile ist's noch einfacher: Wenn die Zelle die das Bild enthält, gesperrt aber auswählbar ist, liefert mir oSel direkt die Info zur Zelle und darüber (wo es gebraucht wird) den URL des Bildes.
LO 24.2.0.3 (X86_64) auf Linux 6.6.19-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️