Bild öffnen bei Hyperlink

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Schmunzel57
Beiträge: 8
Registriert: Sa, 18.04.2015 14:01

Bild öffnen bei Hyperlink

Beitrag von Schmunzel57 »

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
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Bild öffnen bei Hyperlink

Beitrag von Stephan »

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:

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) 246-mal heruntergeladen
Schmunzel57
Beiträge: 8
Registriert: Sa, 18.04.2015 14:01

Re: Bild öffnen bei Hyperlink

Beitrag von Schmunzel57 »

@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
Schmunzel57
Beiträge: 8
Registriert: Sa, 18.04.2015 14:01

Re: Bild öffnen bei Hyperlink

Beitrag von Schmunzel57 »

@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 :lol:
Hiker
******
Beiträge: 591
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: Bild öffnen bei Hyperlink

Beitrag von Hiker »

Hallo,
Schmunzel57 hat geschrieben: So, 22.01.2017 23:13Hab aber leider nichts gefunden, was die Spalte C von den anderen unterscheidet.
beim Überfliegen von Stephans Code fällt mir die folgende Bedingung in Bild wechseln auf:

Code: Alles auswählen

	If ThisComponent.GetCurrentSelection.SupportsService("com.sun.star.sheet.SheetCell") And _
			ThisComponent.CurrentSelection.RangeAddress.StartColumn = 2 Then
Der Code wird also nur bei StrtColumn=2 aktiv, bei A=0 wäre das Spalte C.

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)
Schmunzel57
Beiträge: 8
Registriert: Sa, 18.04.2015 14:01

Re: Bild öffnen bei Hyperlink

Beitrag von Schmunzel57 »

@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
Antworten