Hallo Forum, habe folgendes Problem.
In einer Tabelle (Ca. 4500 Artikel) gibt es zu jedem Artikel Info's und einen Hyperlink zu einem Bild, dass den Artikel darstellt. Hierbei handelt es sich um eine Internet-Adresse (also http://......bildname.jpg). Wenn man zur Zeit auf den Link klickt, wird der Browser gestartet und das Bild wird angezeigt. Für jeden Artikel (Bild) wird ein neues Browserfenster geöffnet oder ein neuer TAB (je nach Einstellungen).
Frage: Hat jemand eine Idee, wie man das anders lösen könnte (mal gesponnen: wenn man die Maus über den Link stellt, wird das Bild in einem Kommentar dargestellt oder in einem eigenen kleinen Fenster).
Ich freue mich nicht nur über "fertige Lösungen", sondern auch über Lösungsansätze.
Gruß Schmunzel57
Bild öffnen bei Hyperlink
Moderator: Moderatoren
Re: Bild öffnen bei Hyperlink
z.B.
Füge die Bild-Links in die Zelle ein ohne das sie in Links umgewandelt werden, damit sie nicht automatisch einen Link auslösen.
Erzeuge einen Dialog für die Bildanzeige und weise das Makro "Sub Bild_wechseln" dem Tabellenereignis "Auswahl geändert" zu:
In anhängender Datei ist das umgesetzt und funktioniert zunächst ganz gut.
Feinheiten wäre bessere Fehlerkorrektur und evt. ein Warte-Dialog sofern das Bild laden länger dauert sowie die richtigen Feineinstellungen für das Bildsteuerelement.
Gruß
Stephan
Füge die Bild-Links in die Zelle ein ohne das sie in Links umgewandelt werden, damit sie nicht automatisch einen Link auslösen.
Erzeuge einen Dialog für die Bildanzeige und weise das Makro "Sub Bild_wechseln" dem Tabellenereignis "Auswahl geändert" zu:
Code: Alles auswählen
Public bild_dialog_model
Global Bild_dialog As Object
Sub Bildanzeige()
bild_dialog_model = CreateUnoService("com.sun.star.awt.UnoControlDialogModel")
bild_dialog_model.setPropertyValue("Width", 310) '343
bild_dialog_model.setPropertyValue("Height", 180)
bild_dialog_model.SetPropertyValue("Title","Bildanzeige")
oMod_warten = bild_dialog_model.createInstance("com.sun.star.awt.UnoControlImageControlModel")
With oMod_warten
.setPropertyValue("Name","warten1")
.setPropertyValue("PositionX",5) '192
.setPropertyValue("PositionY",5)
.setPropertyValue("Width",300)
.setPropertyValue("Height",150)
End With
bild_dialog_model.insertByName("warten1", oMod_warten)
oMod_warten2 = bild_dialog_model.createInstance("com.sun.star.awt.UnoControlButtonModel")
With oMod_warten2
.setPropertyValue("Name","warten2")
.setPropertyValue("PositionX",125) '192
.setPropertyValue("PositionY",160)
.setPropertyValue("Width",60)
.setPropertyValue("Height",14)
.setPropertyValue("Label","Stop")
End With
bild_dialog_model.insertByName("warten2", oMod_warten2)
Bild_dialog = CreateUnoService("com.sun.star.awt.UnoControlDialog")
Bild_dialog.setModel(bild_dialog_model)
oListener = CreateUnoListener("xButtonAction_", "com.sun.star.awt.XActionListener")
Bild_dialog.getControl("warten2").addActionListener(oListener)
oWin2 = CreateUnoService("com.sun.star.awt.Toolkit")
Bild_dialog.createPeer(oWin2, null)
Bild_dialog.setVisible(True)
End Sub
Sub xButtonAction_actionPerformed( oEvent As Object )
'oWindow = oEvent.Source.getContext()
'oWindow.setVisible(False)
Bild_dialog.setVisible(False)
End Sub
Sub xButtonAction_disposing( oEvent As Object )
End Sub
Sub Bild_wechseln(evt As Object)
On Error Resume Next
If ThisComponent.GetCurrentSelection.SupportsService("com.sun.star.sheet.SheetCell") And _
ThisComponent.CurrentSelection.RangeAddress.StartColumn = 2 Then
zeile = ThisComponent.CurrentSelection.RangeAddress.StartRow 'dbg_properties
addr = ThisComponent.CurrentSelection.String
Bild_dialog.Model.getByName("warten1").ImageURL = addr
End If
End Sub
In anhängender Datei ist das umgesetzt und funktioniert zunächst ganz gut.
Feinheiten wäre bessere Fehlerkorrektur und evt. ein Warte-Dialog sofern das Bild laden länger dauert sowie die richtigen Feineinstellungen für das Bildsteuerelement.
Gruß
Stephan
- Dateianhänge
-
- Bilder_in_Dialog.ods
- (12.24 KiB) 273-mal heruntergeladen
-
- Beiträge: 8
- Registriert: Sa, 18.04.2015 14:01
Re: Bild öffnen bei Hyperlink
@Stephan
Wow. Hätte nicht gedacht, dass das so schnell geht. Ist echt eine elegante Lösung. Wegen den Anpassungen (Fenstergröße, Fehlerkorrektur etc) - da versuch ich mich zunächst mal selber dran. Und wenn's nicht klappt, gibt's immer noch eine gute Suchmaschine und das Forum hier
.
Auf jeden Fall - Danke @Stephan
Wow. Hätte nicht gedacht, dass das so schnell geht. Ist echt eine elegante Lösung. Wegen den Anpassungen (Fenstergröße, Fehlerkorrektur etc) - da versuch ich mich zunächst mal selber dran. Und wenn's nicht klappt, gibt's immer noch eine gute Suchmaschine und das Forum hier

Auf jeden Fall - Danke @Stephan
-
- Beiträge: 8
- Registriert: Sa, 18.04.2015 14:01
Re: Bild öffnen bei Hyperlink
@Stephan
Einen freundlichen Guten Abend,
bin jetzt erst dazu gekommen und hab versucht alles in meine Tabelle einzubauen.
1. Modul in Dokument kopiert (unter "Standard"-> "Module1"
2. Button kopiert (Ereignis zuordnen: "Aktion ausführen" -> "Bildanzeige"
3. Tabellenereignis -> "Bild_wechseln"
Wenn ich jetzt den Button drücke, erscheint das Fenster "Bildanzeige", klicke ich in die Zelle mit dem Link, passiert nichts.
Wenn ich ein paar Links in dein "Bilder_in_Dialog.ods" kopiere, und zwar in SPALTE C, werden die Bilder einwandfrei angezeigt. Kopiere ich die Links in eine andere Spalte, funktioniert es NICHT !!! Hab aber leider nichts gefunden, was die Spalte C von den anderen unterscheidet. Wahrscheinlich weist du direkt, was ich falsch gemacht oder vergessen habe. Noch eine Info: bei der Verarbeitung des Macro erscheint keine Fehlermeldung.
Vielen Dank schon mal im Voraus
Gruß Schmunzel57
P.S. wenn du mal drüber schlafen musst, die Sache eilt nicht
Einen freundlichen Guten Abend,
bin jetzt erst dazu gekommen und hab versucht alles in meine Tabelle einzubauen.
1. Modul in Dokument kopiert (unter "Standard"-> "Module1"
2. Button kopiert (Ereignis zuordnen: "Aktion ausführen" -> "Bildanzeige"
3. Tabellenereignis -> "Bild_wechseln"
Wenn ich jetzt den Button drücke, erscheint das Fenster "Bildanzeige", klicke ich in die Zelle mit dem Link, passiert nichts.
Wenn ich ein paar Links in dein "Bilder_in_Dialog.ods" kopiere, und zwar in SPALTE C, werden die Bilder einwandfrei angezeigt. Kopiere ich die Links in eine andere Spalte, funktioniert es NICHT !!! Hab aber leider nichts gefunden, was die Spalte C von den anderen unterscheidet. Wahrscheinlich weist du direkt, was ich falsch gemacht oder vergessen habe. Noch eine Info: bei der Verarbeitung des Macro erscheint keine Fehlermeldung.
Vielen Dank schon mal im Voraus
Gruß Schmunzel57
P.S. wenn du mal drüber schlafen musst, die Sache eilt nicht

Re: Bild öffnen bei Hyperlink
Hallo,
Der Code wird also nur bei StrtColumn=2 aktiv, bei A=0 wäre das Spalte C.
mfg, Jörn
beim Überfliegen von Stephans Code fällt mir die folgende Bedingung in Bild wechseln auf:Schmunzel57 hat geschrieben: So, 22.01.2017 23:13Hab aber leider nichts gefunden, was die Spalte C von den anderen unterscheidet.
Code: Alles auswählen
If ThisComponent.GetCurrentSelection.SupportsService("com.sun.star.sheet.SheetCell") And _
ThisComponent.CurrentSelection.RangeAddress.StartColumn = 2 Then
mfg, Jörn
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
-
- Beiträge: 8
- Registriert: Sa, 18.04.2015 14:01
Re: Bild öffnen bei Hyperlink
@Hiker
Super. Genau DER Hinweis war's. Hab das Makro an meine Tabelle angepasst, und schon klappt es. Super Teamwork !!!
Vielen Dank an euch beide.
Gruss Schmunzel57
Super. Genau DER Hinweis war's. Hab das Makro an meine Tabelle angepasst, und schon klappt es. Super Teamwork !!!
Vielen Dank an euch beide.
Gruss Schmunzel57