Bild in Formular

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

Moderator: Moderatoren

hawe
****
Beiträge: 151
Registriert: Di, 05.08.2008 19:47

Re: Bild in Formular

Beitrag von hawe »

Etwas sehr gewöhnungbedürftig Dein VBA-Code - unklar wo und wie?
In meinem Beispiel steht der komplette Pfad in einem TextFeld das den Event auch auslöst...

Code: Alles auswählen

Sub lostFocus_txbImagePath( oEvt as Object )
oControl = oEvt.Source.Model 
oMainForm = oControl.Parent
oImg = oMainForm.getByName("ImageControl1")
if oControl.String > "" then 
	oImg.ImageUrl = ConvertToURL(oControl.String)
End If
End Sub
Gruss HW
Win7/SuSe 11.2 - LO 3.3
hawe
****
Beiträge: 151
Registriert: Di, 05.08.2008 19:47

Re: Bild in Formular

Beitrag von hawe »

Die Logik ist ziemlich die gleiche wie bei Access.

Nun dann kannst Du den Code dahingehend anpassen,
dass Du für den Codeaufruf das Formularereignis 'Nach dem Datensatzwechsel ' hernimmst.
Einen Pointer auf oMainForm erhälst Du in diesem Fall mit
oMainForm = oEvt.Source ' call by MainForm
und oControl (hält dann den Pfad aus dem Datenbankfeld) musst Du über den Namen abgreifen, genauso wie bei 'ImageControl1' gezeigt.
Gruss HW
Win7/SuSe 11.2 - LO 3.3
hawe
****
Beiträge: 151
Registriert: Di, 05.08.2008 19:47

Re: Bild in Formular

Beitrag von hawe »

Du darfst das Thema gerne nochmal aufgreifen.
Aber "kein Ergebnis" ist keine Diskussionsgrundlage für eine Hilfestellung....
Gruss HW
Win7/SuSe 11.2 - LO 3.3
hawe
****
Beiträge: 151
Registriert: Di, 05.08.2008 19:47

Re: Bild in Formular

Beitrag von hawe »

Dann würde ich sagen, der Code wird nicht ausgeführt, dann macht er auch keine Fehler, denn er funktioniert, wenn er die richtigen Daten hat! Der Pfad also korrekt ist...
Es gibt auch nur einen Event "Nach dem Datensatzastzwechsel" in einem Formular und keinen den Du genannt hast, wo soll das sein? Es ist Die Frage, ob Du die Ereignissteuerung richtig gesetzt hast...
Gruss HW
Win7/SuSe 11.2 - LO 3.3
Benutzeravatar
oktobaer
***
Beiträge: 69
Registriert: So, 18.01.2009 23:19
Wohnort: bei Nürnberg

Re: Bild in Formular

Beitrag von oktobaer »

Tipp: Ob ein Code bei einem Ereignis ausgeführt wird teste ich mit einem

print

Anhand eins Fensters weiß ich es dann, zdem kann ich evtl auch noch Variablen anzeigen lassen.

Oktobaer
Servus
Claus
hawe
****
Beiträge: 151
Registriert: Di, 05.08.2008 19:47

Re: Bild in Formular

Beitrag von hawe »

aber auch keine Makros!
Ausserdem sind Deine Tabellendaten inkonsistent, auch Umlaute sind auf verschiedenen Systemen immer ein Problem wert...
Gruss HW
Win7/SuSe 11.2 - LO 3.3
sarotti
****
Beiträge: 105
Registriert: So, 12.03.2006 17:40
Wohnort: Nähe Krefeld

Re: Bild in Formular

Beitrag von sarotti »

Hallo Du negativer Mensch... ;-) ("Aufgabe wegen Sinnlosigkeit" hat ja so einen depressiven Beigeschmack...)

ich habe mir Deinen Code angeschaut und denke, das Problem könnte am Aufruf des Formulars liegen... Sorry aber "oEvt.Source" sagt mir nicht viel....

Leider konnte ich die genannte ZIP Datei nicht runterladen, also drehe ich den Spiess mal um. Ich sende Dir mal eine gezippte Datenbank mit Formularen und Bildern (SORRY, die musst ich löschen..s.u.), in der genau das funktioniert, was Du willst: Nämlich bei Datensatzwechsel wird das aktuelle Bild geladen. Du kannst Dir ja mal die Struktur anschauen und nachbilden....

Die Datei Rezept.zip einfach in "c:/Rezept" entpacken und darauf achten, dass die Datenbank nicht die .odt-Datei einen Schreibschutz hat...dann sollte es klappen. Die jpg-Dateien im Verzeichnis "Bilder" musste ich aufgrund der Größenbeschränkung des Forums löschen. Aber Du kannst ja wieder neue Bilder ....einfügen (...wurde mit OO3.0 unter XP getestet)

By the way es handelt sich um eine kleine Rezeptdatenbank
Rezept.zip
Rezeptdatenbank
(60.11 KiB) 1978-mal heruntergeladen
....war mal ein GOODIE für eine Kollegin (...ja, Gudrun, Du bist gemeint ;-) und hat ein paar eigebaute nette Dinge....

Gruss
sarotti
hawe
****
Beiträge: 151
Registriert: Di, 05.08.2008 19:47

Re: Bild in Formular

Beitrag von hawe »

Hallo Sarotti,

ich glaub ja nicht, dass unser Freund jetzt mit Deinem Beispiel zurecht kommt. Wir werden sehen..
Hübsche Anwendung, krankt allerdings an dem statischen Pfad für die Bilder. Es wäre wesentlich komfortabler Du fragst die URL des Base Files ab und arbeitest damit weiter, etwa

Code: Alles auswählen

sub BildAnzeigen
Dim oForm, sBildUrl as string, dbBaseUrl as String

oForm = ThisComponent.drawpage.Forms.getByName("MainForm")
sBildURL = oForm.getByName("txtBild").text
if sBildURL > "" then
	dbBaseUrl = ConvertFromURL(thisComponent.Parent.getUrl())
	dbBaseUrl = Left(dbBaseUrl,len(dbBaseUrl) - len(thisComponent.Parent.Title))
	oForm.getByName("Bild").ImageURL = convertToUrl(dbBaseUrl & "Bilder\" & sBildURL)
end if

End Sub
Die Pfadangabe für die Bilder in der Datenbank muss latürnich dann unterbleiben - der blanke Dateiname des Bildes genügt! Ich setze mit meinen Objektpfaden lieber relativ auf das auslösende Objekt auf - deshalb oEvt.Source ...
Gruss HW
Win7/SuSe 11.2 - LO 3.3
sarotti
****
Beiträge: 105
Registriert: So, 12.03.2006 17:40
Wohnort: Nähe Krefeld

Re: Bild in Formular

Beitrag von sarotti »

Hallo hawe,

mit dem statischen Pfad... da muss ich Dir recht geben... Da diese kleine Datenbank "nur" mal eben so entstanden ist, habe ich mir da zugegebenermaßen keine großen Gedanken hierzu gemacht... Naja, sollte aber hilfreich sein, wenn´s um den Weg geht. Da ich anfangs ziemlich lange an dem Problem von "verknüpften" externen Bildern und Daten rumgefriemelt habe, sollte das wohl hilfreich sein....

Gruss
sarotti
Antworten