Kann ich in Basic einen relativen Pfad für Bilder angeben?

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

Moderator: Moderatoren

sheepy007
**
Beiträge: 20
Registriert: Di, 02.01.2007 13:13

Kann ich in Basic einen relativen Pfad für Bilder angeben?

Beitrag von sheepy007 »

Moin Moin,
Ist es möglich für Grafikobjekte einen relativen Pfad anzugeben?
Ich habe folgendes Versucht:

Code: Alles auswählen

ogfx = odialog.getControl("gfx").getModel()
Pfad = "/gfx/2.jpg"
ogfx.ImageURL = Pfad
aber leider funktioniert dies nicht

hat jemand eine Idee? :-)

mfg sHeepy
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Kommt darauf an wo sich der Dialog befindet. Ist er in einem Dokument bekommst Du dessen Pfad mit:

Code: Alles auswählen

ThisComponent.URL
und kannst relative Pfade davon ableiten.
Hast Du nur ein Makro was Du irgendwo installierst mußt Du in Kenntnis der Verzeichnisse in der das Makro sein kann nach einer eindeutigen Datei (z.B. Deiner Grafik) im Dateisystem suchen.
Anfangspfade zum Suchen sind die Pfade für OOo-Bibliotheken, User-Bibliotheken und OOo- und User-UNO-packages. Nur unterhalb dieser Pfade können sich praktischerseits installierte Makros befinden.



Gruß
Stephan
sheepy007
**
Beiträge: 20
Registriert: Di, 02.01.2007 13:13

Beitrag von sheepy007 »

mhn also mein Dialog ist in meinem Dokument gespeichert welches auf dem LW H liegt.
Die Bilder dazu liegen auf H:\gfx\

Nun möchte ich aber nicht den Absuluten Pfad verwenden, da ich das Dokument auf einen anderen Computer überspielen muss und sich deshalb die Pfadangabe (LW H: ) ändert.

und wie geschrieben kennt er den Pfad anscheind nicht wenn ich nur "/gfx/2.jpg" schreibe. Wenn ich allerdings den vollen Pfad angebe (H:/gfx/2.jpg) eingebe zeigt er mir das Bild an...was mache ich hier falsch?


Und mit ThisComponent.URL bekomme ich zwar den kompletten pfad des Dokumentes, aber leider ja auch den Dateinamen..


mfg sHeepy
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

und wie geschrieben kennt er den Pfad anscheind nicht wenn ich nur "/gfx/2.jpg" schreibe. Wenn ich allerdings den vollen Pfad angebe (H:/gfx/2.jpg) eingebe zeigt er mir das Bild an...was mache ich hier falsch?

garnichts, ich denke es werden an dieser Stelle einfach keine relativen Pfade existiert, zumindest ist mir das noch nicht gelungen.

Und mit ThisComponent.URL bekomme ich zwar den kompletten pfad des Dokumentes, aber leider ja auch den Dateinamen..

Ja und - wir sind hier in einem Basic.Forum, es sollte doch leicht möglich sein den Pfad abzutrennen so man etwas programmieren kann.
Hier im Forum der erste Thread verweist auf die StarBasic-FAQ, dort findest Du sowas, aber schwer ist das doch ohnehin nicht. Suche den ersten Trenner "/" von rechts, also etwa nach dem Schema:

Code: Alles auswählen

'...
pfad = ThisComponent.URL
i = 0
Do 
   i = i + 1
   x = Right(pfad, i)
Loop While Left(x, 1) <> "/"
Msgbox "Pfad: " & LEFT(pfad, LEN(pfad)-i)

(nicht getestet)



Gruß
Stephan
sheepy007
**
Beiträge: 20
Registriert: Di, 02.01.2007 13:13

Beitrag von sheepy007 »

besten Dank hat geklappt

mfg sHeepy
Antworten