Dynamische Textfeld-Größenanpassung

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Dynamische Textfeld-Größenanpassung

Re: Dynamische Textfeld-Größenanpassung

von marcel_at_work » Di, 12.11.2013 18:40

Hallihallöchen,

bitte nicht wundern, dass ich jetzt erst antworte. Mein Router hatte nach fünf Jahren den Geist aufgegeben und ich mußte auf den neuen eine Woche warten.

Danke nochmal an alle und SORRY, dass das hier so ein Durcheinander geworden ist - dies war nicht meine Absicht!

Das eigentliche Problem ist zwar noch nicht behoben, aber ich kann mit meinem derzeitigen Entwicklungsstand leben. Der beschriebenen "extrem langen" Ladezeit beim Öffnen meines Dialoges war ein Bild im .png-Format zugrundeliegend. Mit .jpg o.ä. ist der Vorgang jetzt ganz akzeptabel.
Zudem erzeuge ich jetzt sämtliche Felder erst einmal im Hintergrund und lasse sie erst kurz vor Ende des Aufbaus sichtbar werden - damit ist auch das beschrieben Flackern verschwunden.

Also vielen lieben Dank nochmal,

Marci

Re: Dynamische Textfeld-Größenanpassung

von Constructus » Fr, 01.11.2013 01:35

Hey hey Herr Nachbar,

bitte nicht so böse... Ich hab von eurem Thema keinen Plan, sehe aber, daß die Probleme behandlungbedürftig sind. Bitte doch einfach mal einen Moderator, den Thread an geeigneter Stelle zu trennen, den Abschnitt mit passender neuer Überschrift zu versehen und dann kannst Du weitermachen. Wär doch schade, wenn Du schmollst... :shock:

Und gib marcel_at_work doch die Chance, sich an eure Eigenheiten zu gewöhnen; ist ja wohl kein Frischling im Forum? 8)

Schönes langes Wochenende

Constructus

Re: Dynamische Textfeld-Größenanpassung

von balu » Do, 31.10.2013 20:47

Hallo Marcel,

ich bitte vielmals untertänigst um Entschuldigung, dass ich deinen Thread mit meinem Problem gekapert hatte. Aber dennoch langst mir jetzt, nach dem ich deine letzten Beiträge gelsen habe.

Dein Ursprüngliches Problem, welches hier der Betreff ist: "Dynamische Textfeld-Größenanpassung" scheint wohl gelöst zu sein. Oder etwa nicht?

Dein neues Problem: "Flackern", hattest Du durch deinen Beitrag von: Di, 29.10.2013 23:14 nicht deutlich genug geschildert. Denn erst jetzt rückst Du mit dem eigentlichen Problem heraus, was widerum einen ganz anderen Sachverhalt darstellt. Und ich qäul mir hier einen ab und schreib mir die Finger Wund um irgendwie voran zu kommen, um erst jetzt genaueres zu erfahren. Das hätte viiiiel früher kommen müssen!

Und deshalb sage ich jetzt: "Schluss mit Lustig! In diesem Thread bin ich gleich endgültig raus!"

Wenn Du weiterhin Hilfe zu dem momentanigen Problem brauchst, dann mach einen neuen Thread auf. Und dort schilderst Du dein Problem noch mal genau, mit den ganzen Punkten die Du hier erst jetzt gelifert hast. Und vergess nicht eine Beispieldatei, damit wir nicht schon wieder deinen Code kopieren müssen. Etwas arbeit musst Du schon selber leisten.

Ach ja! Beinahe vergessen.
Dein Betriebssystem?
Dein Office, inklusive genauer Versionsnummer?

Vielleicht sehen wir uns ja dort wieder. Denn das ganze kann auch für mich hilfreich sein.

Bin hier raus!



Gruß
balu

Re: Dynamische Textfeld-Größenanpassung

von F3K Total » Do, 31.10.2013 20:34

Hallo Marcel,
marcel_at_work hat geschrieben:1) Ein Bildobjekt, zur Laufzeit direkt im Dialog-Hintergrund erstellt, ist stets ein klein wenig (ein µ) verzerrt dargestellt, sodass darauf befindliche Texte oder Bilder etwas unscharf erscheinen.
Kann ich nicht nachvollziehen, was erwartest du, bei einer Bildschirmauflösung von etwa 96 dpi?
Wieviele TwipsperpixelX und TwipsperpixelY hat dein Bildschirm?
Wenn ich die Abmessungen vom Dialog ins gleiche Verhältnis setze, wie die eines Bildes, sehen die Bilder, ob in Gimp bei 100% oder im Dialog, am Bildschirm gleich aus.
marcel_at_work hat geschrieben:2) Ein Bildobjekt, zur Laufzeit in einem grafischen Kontrollfeld erzeugt (das Bild wird 1:1 wiedergegeben), lässt aber den gesamten Dialog, bei jedem Erzeugen eines weiteren Dialog-Kontrollelementes kurz aufflackern - zudem dauert es viele Sekunden!
Wie schon oben geschrieben, wenn ich die zwei Zeile auskommentiere habe ich kein flackern und es dauert keine Sekunde.
Hast Du den Hinweis überhaupt schon ausprobiert?
Ich habe übrigens "nur" einen 32-Bit Rechner mit 3GB RAM.
Es wäre gut, wenn Du mal deine Systemkonstellation offenbaren würdest.
Gruß R

Re: Dynamische Textfeld-Größenanpassung

von marcel_at_work » Do, 31.10.2013 20:06

Hi R,

genau wie du gerad sagtest - entweder das eine, oder das andere!

1) Ein Bildobjekt, zur Laufzeit direkt im Dialog-Hintergrund erstellt, ist stets ein klein wenig (ein µ) verzerrt dargestellt, sodass darauf befindliche Texte oder Bilder etwas unscharf erscheinen.

2) Ein Bildobjekt, zur Laufzeit in einem grafischen Kontrollfeld erzeugt (das Bild wird 1:1 wiedergegeben), lässt aber den gesamten Dialog, bei jedem Erzeugen eines weiteren Dialog-Kontrollelementes kurz aufflackern - zudem dauert es viele Sekunden!

Ich möchte als Hintergrund für die Rezeptdatenbank ein hochauflösendes Bild erstellen, weshalb es unbedingt auch 1:1 wiedergegeben werden sollte. Andererseits darf der Dialog aber auch keine 10 Sekunden, flackernd zum Aufbau brauchen.

Liebe Grüße,

Marcel

Re: Dynamische Textfeld-Größenanpassung

von F3K Total » Do, 31.10.2013 19:41

Was denn nun, flackern oder unscharf? Du weißt auch nicht was du willst.
Kann nicht eines von Deinen Problemen nachvollziehen.
Gruß R

Re: Dynamische Textfeld-Größenanpassung

von marcel_at_work » Do, 31.10.2013 19:38

Hi Leute,

danke für die viele Müh'. :D

Also bei mir klappt das mit dem Dialog NICHT. :(

Das Bild, direkt IM Dialog, generiert ein rießengroßes Problem, weshalb ich es nur über ein Kontrollfeld realisieren kann:
In OpenOffice gibt es bis heute keinerlei Unterstützung für die Größe 'Pixel'. Es wird in der GUI ausschließlich mit einer OpenOffice-spezifischen Einheit gerechnet.
Wenn man z.B. ein Bild mit Pixelmaß 800x600 in einen Dialog hineinlädt, kann man intern nur noch über diese spezielle Einheit auf das Bild zugreifen. Man kann zwar mit einem Algorithmus versuchen, umzurechnen, doch es wird am Ende nur ein Annäherungswert für das Verhältnis herauskommen, da der Dialog selbst ja nur Integer-Werte kennt. Sprich: Das Bild IM Dialog wird immer ein wenig unscharf sein, da man den Dialog nicht genau auf die Pixelgröße einstellen kann.
In einem Bild-Kontrollfeld gibt es aber genau dafür eine tolle Skalierungseigenschaft - man kann die Skalierung einfach komplett ausschalten. Somit wird das Bild im Kontrollfeld stets 1:1, ausgehend von links oben, wiedergegeben. Es ist also immer scharfgestellt.

OpenOffice hat eben leider immer noch viele viele Macken.

Das Problem bleibt nun leider immer noch bestehen.

LG,

Marcel

Re: Dynamische Textfeld-Größenanpassung

von balu » Do, 31.10.2013 13:12

Mahlzeit R,
einen eigenen Bildpfad an den zwei Stellen eingetragen
Jetzt wirds interessant!
Denn ich hatte mich ausschließlich auf das ImageControl konzentriert,

Code: Alles auswählen

oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlImageControlModel")

       With oMod
[...]
'.setPropertyValue("ImageURL", convertToUrl("D:\myDocuments\Gesundheit\Ernährung
\Koch-, Back- & Cocktailrezepte\db-rezepte\layout.png") 'Grafik-URL
da ja das Image für den Dialog auskommentiert war,

Code: Alles auswählen

       'Initialisierung eines Dialoges
       dlgModel = createUnoService("com.sun.star.awt.UnoControlDialogModel")
       
       With dlgModel
[...]
    '      .setPropertyValue("ImageURL", convertToUrl("D:\myDocuments\Gesundheit\Ernährung\Koch-, Back- & Cocktailrezepte\db-rezepte\layout.png") 'Grafik-URL
und es ihm ja wohl auch nur um das UnoControlImageControlModel ging. Okay, dort war ja das Image auch auskommentiert, wegen dem zu ändernden Pfad der nicht bei jedem vorhanden ist, aber sein Anliegen (Problem) war für mich doch ziemlich eindeutig.
marcel_at_work hat geschrieben: ein Bild mittels grafischem Kontrollfeld (in der Größe des Dialogs) hinzugefügt habe, flackert der gesamte Dialog bis sämtliche Kontrollfelder darin geladen sind.
Eigentlich braucht man jetzt gar nicht das UnoControlImageControlModel, da dies ja dann *Doppelt-Gemoppelt* ist. Einnerseits wird ein Bild als Hintergrund im Dialog geladen und eingepasst, und dann noch zusätzlich als ImageControl seperat oben drauf. Eigentlich reicht es theoretish wenn man nur das Bild im Dialog lädt, extra dafür noch ein ImageControl zu erstellen und zu laden ist eigentlich überflüssig.

Theoretisch deshalb, weil das geladene Bild im Dialog automatisch per Default auf die Dialog-Seite 0 gesetzt wird, und dadurch bei aktivierung weiterer Dialog Seiten automatisch dort vorhanden ist. Es sei denn, man wählt für die weiteren Dialog-Seiten explizit ein anderes Bild aus und lädt dieses in die dementsprechende Dialog-Seite. Oder aber man erstellt dann ein ImageControl und lädt dort dann das Bild rein. Nur ich zumindest weiß nicht ganz genau ob Marcel einen Mehrseitigen-Dialog erstellen will, oder er nur nicht genau wusste wie man ein Hintergrundbild im Dialog einbindet, auch wenn er im Dialog die dementsprechende Stele auskommentiert hatte. Bin mir also über sein eigentliches Ziel nicht sicher, und hatte gestern das mit dem Bildpfad im Dialog wissentlich ausgeblendet da er ja vom "grafischem Kontrollfeld" sprach.



Gruß
balu

Re: Dynamische Textfeld-Größenanpassung

von F3K Total » Do, 31.10.2013 11:45

Hallo Balu,
habe den Code von Marcel genommen, einen eigenen Bildpfad an den zwei Stellen eingetragen, und das beschriebene Ergebnis erhalten.
Gruß R

Re: Dynamische Textfeld-Größenanpassung

von balu » Do, 31.10.2013 10:42

Moinsen R,
wenn ich diese Zeilen auskommentiere, klappts auch ohne Flackern
Tja dolle! Wenn ich das mache wird das *Hintergrundbild* überhaupt nicht angezeigt. Also irgendwie keine gute Idee. Wird es denn bei dir angezeigt, oder arbeitest Du ohne? Unter welchem Betriebssystem hast Du denn das getestet, Win7 oder Linux Mint, und welches Office?


Ich musste jetzt grad eben etwas feststellen, was mich zum extremen erstaunen brachte.
balu hat geschrieben: Mit *Hintergrundbild* vergehen so ca. 15 Sekunden bis dein Dialog angezeigt wird.
Diese Aussage trifft bei OOo 3.2.1 zu.
Bei AOO 4.0.1 sieht das aber schon gleich ganz anders aus. Denn da dauert es nur ca. 1 Sekunde. :shock:
Also hat sich in dieser Hinsicht zwischen den beiden Office-Versionen an Geschwindigkeit doch so einiges getan. Aber auch in dieser Version wird das *Hintergrundbild* durch das auskommentieren der genannten Zeilen nicht angezeigt, leider.



Gruß
balu

Re: Dynamische Textfeld-Größenanpassung

von F3K Total » Do, 31.10.2013 05:49

Moinsen,
warum weiß ich nicht, wenn ich diese Zeilen auskommentiere, klappts auch ohne Flackern:

Code: Alles auswählen

       'dlgRecipes.getControl("dlgImg").Model.Enabled = True
       'dlgRecipes.getControl("dlgImg").Model.EnableVisible = True
Gruß R

Re: Dynamische Textfeld-Größenanpassung

von balu » Do, 31.10.2013 02:02

Hallo Marcel,
Ich hoffe, der Code läuft jetzt
Yep.


Bei Laufzeit-Dialogen bin ich nun wahrlich noch kein besonderes Licht. Und ich weiß auch nicht woran das liegt, das der Dialog mit *Hintergrundbild* anfangs flackert.

Was mich jedoch verwundert ist, das deine UnoControlImageControlModel in meine Datei eingebaut ohne Probleme funktioniert. Mag vielleicht mit daran liegen das ich ja mit .execute arbeite.

Ohne ein *Hintergrundbild* dauert es ca. 0,5 Sekunden bis dein Dialog angezeigt wird.
Mit *Hintergrundbild* vergehen so ca. 15 Sekunden bis dein Dialog angezeigt wird. :shock:

Bei meiner Datei kann ich nicht mal die Zeit messen, egal ob mit oder ohne *Hintergrundbild*.

Deine UnoControlImageControlModel habe ich in meiner Datei im Modul "Elemente" eingebaut, ist ganz am ende zu finden. Dort auch den Pfad zu einer Grafik angeben, die ungefähr 800 x 600 groß sein kann.


Einen gut gemeinten Tipp meinerseits.
Wie oft hast Du UnoControlFixedTextModel in deinem Makro eingebaut?
12 mal!?
Meinst Du nicht das dies sehr unübersichtlich ist?
Schau dir mal meine Beispieldatei an, dann siehst Du z.B. das ich im Modul "Anfang" 4 mal ein Optionsfeld erstelle. Die zu ändernden Parameter für z.B. Farbe und Position weise ich bestimmten Variablen zu, und rufe dann mit den unterschiedlichen Variablen im Modul "Elemente" die dementsprechende Sub LzOptionButton auf.

Ich erstelle also einmal ein Element mit den gewünschten Eigenschaften, setze aber die Parameter nicht fest, sondern trage dort die Variablennamen ein. Das macht die ganze Sache doch etwas übersichtlicher.

Ich empfehle dir das so ähnlich zu machen. Du musst ja nicht gleich ein extra Modul dafür anlegen, aber pack deine Textfelder und was auch immer, in eine eigene Sub.



Gruß
balu
Dateianhänge
Test_Laufzeit-Dialog_for_Forum_n1.ods
(14.75 KiB) 238-mal heruntergeladen

Re: Dynamische Textfeld-Größenanpassung

von marcel_at_work » Mi, 30.10.2013 18:20

Hi Balu,

tschuldigunggggg. :)

Ich hab jetzt mal alle Verweise auf die SQL-Datenbank herausgenommen. Wenn man im oberen Teil, bei der Zuweisung des Dialogs, einen auf dem eigenen System befindlichen Bildpfad angibt (Bildgröße mind. 800x600), kann man den Dialog jetzt auch ohne DB-Anbindung testen.

Code: Alles auswählen

Option Explicit

'Allgemeine Variablen
Global dlgRecipes As Object
'*************************************************************************************************************************************************************
'Erzeugung des Laufzeit-Dialoges "Rezepte"
Sub createDialog()
	Dim dlgModel As Object, oMod As Object, oWindow As Object, oTopWindowListener As Object
	Dim sTextlines As String
	Dim arrTemp As Variant
	
	dlgRecipes = createUnoService("com.sun.star.awt.UnoControlDialog")
	
	If Not isNull(dlgRecipes) Then
		If dlgRecipes.isVisible() Then
			dlgRecipes.setVisible(False)
			dlgRecipes.Dispose
		End If
	End If
	'*********************************************************************************************************************************************************
	'Auslesen eines Rezeptes aus der Datenbank
	Dim sRecipe As String, sDescription As String, sImageURL As String, sQuantity As String, sUnit As String, sIngredient As String, sPreparation As String, sAuthor As String
	Dim nWorkingTime As Integer, nCookingTime As Integer, nDormancy As Integer, nRecipeID As Integer, nPortions As Integer, nComplexity As Integer, nRating As Integer, nRetrievals As Integer
	Dim nCaloricValue As Double, nProtein As Double, nCarbohydrate As Double, nFat As Double, nRoughage As Double, nSodium As Double
	Dim dSavedDate As Date, dModifiedDate As Date
	
	nRecipeID = 1
	

	'*********************************************************************************************************************************************************
	Dim globalWidth As Integer, globalHeight As Integer
	
	globalWidth = 450
	globalHeight = 369
	
	'Initialisierung eines Dialoges
	dlgModel = createUnoService("com.sun.star.awt.UnoControlDialogModel")
	
	With dlgModel
		.setPropertyValue("Name", "dlgRecipes")					'Elementname
		.setPropertyValue("Title", "Rezeptdetails")				'Titel
		.setPropertyValue("Closeable", True)					'Möglichkeit zum Schließen des Dialoges
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 0)						'Position x
		.setPropertyValue("PositionY", 0)						'Position y
		.setPropertyValue("Width", globalWidth)'350)			'Breite
		.setPropertyValue("Height", globalHeight)'550)			'Höhe
		.setPropertyValue("BackgroundColor", RGB(255,255,255)	'Hintergrundfarbe
'		.setPropertyValue("ImageURL", convertToUrl("D:\myDocuments\Gesundheit\Ernährung\Koch-, Back- & Cocktailrezepte\db-rezepte\layout.png") 'Grafik-URL
	End With
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlImageControlModel")
	
	With oMod
		.setPropertyValue("Name", "dlgImg")						'Elementname
		
		.setPropertyValue("Enabled", False)						'Aktivierung des Kontrollfeldes
		.setPropertyValue("EnableVisible", False)
		
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 0)						'Position x
		.setPropertyValue("PositionY", 0) 						'Position y
		.setPropertyValue("Width", globalWidth)					'Breite
		.setPropertyValue("Height", globalHeight)				'Höhe
		.setPropertyValue("Border", 0)							'Rahmen(In der Laufzeit-Erstellung kann man den Rahmen mit 0 ausblenden, ansonsten stets mit -1!)
		.setPropertyValue("ImageURL", convertToUrl("D:\myDocuments\Gesundheit\Ernährung\Koch-, Back- & Cocktailrezepte\db-rezepte\layout.png") 'Grafik-URL
'		.setPropertyValue("ScaleImage", True)					'Aktivierung der Skalierung
		.setPropertyValue("ScaleMode", 0)						'Skalierungs-Modus
	End With     
	dlgModel.insertByName("dlgImg", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	'Erzeugung eines numerischen Feldes für die temporäre Datenaufnahme
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlEditModel")

	With oMod
		.setPropertyValue("Name", "txtTemp")					'Elementname
		.setPropertyValue("Text", "")							'Text
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 0)						'Position x
		.setPropertyValue("PositionY", dlgModel.Height)			'Position y
		.setPropertyValue("Width", 200)							'Breite
		.setPropertyValue("Height", 12)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("Border", 0)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With
	dlgModel.insertByName("txtTemp", oMod)
	dlgRecipes.setModel(dlgModel)
	
	oWindow = createUnoService("com.sun.star.awt.Toolkit")
	dlgRecipes.createPeer(oWindow, Null)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblRecipe")					'Elementname
		.setPropertyValue("Label", sRecipe)						'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", 10)						'Position y
		.setPropertyValue("Width", 200)							'Breite
		.setPropertyValue("Height", 17)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 13)						'Schriftgröße
		.setPropertyValue("FontWeight", 150)					'Schriftgewichtung("Normal"=0;"Fett"=150)
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblRecipe", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblDescription")				'Elementname
		.setPropertyValue("Label", sDescription)				'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", 27)						'Position y
		.setPropertyValue("Width", 200)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblDescription", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblRecipeID")				'Elementname
		.setPropertyValue("Label", CStr(nRecipeID))				'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 215)						'Position x
		.setPropertyValue("PositionY", 27)						'Position y
		.setPropertyValue("Width", 30)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblRecipeID", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlImageControlModel")
	
	With oMod
		.setPropertyValue("Name", "imgThumbnail")				'Elementname
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblDescription").Model.PositionY + 11 + 10) 'Position y
		.setPropertyValue("Width", 90)							'Breite
		.setPropertyValue("Height", 160)						'Höhe
	'	.setPropertyValue("ImageURL", sImageURL)				'Grafik-URL
'		.setPropertyValue("ScaleImage", True)					'Aktivierung der Skalierung
		.setPropertyValue("ScaleMode", 0)						'Skalierungs-Modus
	End With     
	dlgModel.insertByName("imgThumbnail", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	Dim i As Integer
	i = 0
	

	
			oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
			
			With oMod
				.setPropertyValue("Name", "lblQuantity" )			'Elementname
				.setPropertyValue("Label", sQuantity & sUnit)			'Titel
				.setPropertyValue("Tabstop", False)
				.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
				.setPropertyValue("PositionX", 100)						'Position x
				.setPropertyValue("PositionY", dlgRecipes.getControl("imgThumbnail").Model.PositionY + (i * 11)) 'Position y
				.setPropertyValue("Width", 40)							'Breite
				.setPropertyValue("Height", 11)							'Höhe
				.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
				.setPropertyValue("FontHeight", 9)						'Schriftgröße
				.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
				.setPropertyValue("Border", 2)							'Rahmen
				.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
			End With     
			dlgModel.insertByName("lblQuantity" , oMod)
			dlgRecipes.setModel(dlgModel)
			'*************************************************************************************************************************************************
			oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
			
			With oMod
				.setPropertyValue("Name", "lblIngredient" )			'Elementname
				.setPropertyValue("Label", sIngredient)					'Titel
				.setPropertyValue("Tabstop", False)
				.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
				.setPropertyValue("PositionX", 140)						'Position x
				.setPropertyValue("PositionY", dlgRecipes.getControl("imgThumbnail").Model.PositionY + (i * 11)) 'Position y
				.setPropertyValue("Width", 70)							'Breite
				.setPropertyValue("Height", 11)							'Höhe
				.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
				.setPropertyValue("FontHeight", 9)						'Schriftgröße
				.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
				.setPropertyValue("Border", 2)							'Rahmen
				.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
			End With     
			dlgModel.insertByName("lblIngredient" , oMod)
			dlgRecipes.setModel(dlgModel)
			
			i = i + 1

	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblPreparation")				'Elementname
		.setPropertyValue("Label", sPreparation)				'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("imgThumbnail").Model.PositionY+dlgRecipes.getControl("imgThumbnail").Model.Height + 10) 'Position y
		.setPropertyValue("Width", 200)							'Breite
'		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblPreparation", oMod)
	dlgRecipes.setModel(dlgModel)
	
	dlgRecipes.getControl("txtTemp").Model.Text = sPreparation
	dlgRecipes.getControl("txtTemp").Model.Width = dlgRecipes.getControl("lblPreparation").Model.Width
	sTextlines = dlgRecipes.getControl("txtTemp").Peer.Textlines
	arrTemp = split(sTextlines,Chr(10))
	dlgRecipes.getControl("lblPreparation").Model.Height = (ubound(arrTemp) + 1) * 11 - 2
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblRating")					'Elementname
		.setPropertyValue("Label", CInt(nRating) & " Punkte")	'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblPreparation").Model.PositionY+dlgRecipes.getControl("lblPreparation").Model.Height) 'Position y
		.setPropertyValue("Width", 50)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblRating", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblAuthor")					'Elementname
		.setPropertyValue("Label", sAuthor)						'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblRating").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 200)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblAuthor", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	i = 0

			
			oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
			
			With oMod
				.setPropertyValue("Name", "lblCategories" )			'Elementname
				'.setPropertyValue("Label", sCategory)					'Titel
				.setPropertyValue("Tabstop", False)
				.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
				.setPropertyValue("PositionX", 10)						'Position x
				.setPropertyValue("PositionY", dlgRecipes.getControl("lblAuthor").Model.PositionY + 10 + 11 + (i * 11)) 'Position y
				.setPropertyValue("Width", 70)							'Breite
				.setPropertyValue("Height", 11)							'Höhe
				.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
				.setPropertyValue("FontHeight", 9)						'Schriftgröße
				.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
				.setPropertyValue("Border", 2)							'Rahmen
				.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
			End With     
			dlgModel.insertByName("lblCategories", oMod)
			dlgRecipes.setModel(dlgModel)
			

	
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblPortions")				'Elementname
		.setPropertyValue("Label", nPortions & " Portionen")	'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblCategories").Model.PositionY + 10 + 11 + 11) 'Position y
		.setPropertyValue("Width", 50)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblPortions", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblComplexity")				'Elementname
		
		Dim sComplexity As String
		
		Select Case nComplexity
		Case 1
			sComplexity = "leicht"
		Case 2
			sComplexity = "normal"
		Case 3
			sComplexity = "mittel"
		Case 4
			sComplexity = "schwierig"
		Case 5
			sComplexity = ""
		End Select
		
		.setPropertyValue("Label", sComplexity)					'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblPortions").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 50)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblComplexity", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblWorkingTime")				'Elementname
		.setPropertyValue("Label", nWorkingTime & " min.")		'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblComplexity").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 50)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblWorkingTime", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblCookingTime")				'Elementname
		.setPropertyValue("Label", nCookingTime & " min.")		'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblWorkingTime").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 50)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblCookingTime", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblDormancy")				'Elementname
		.setPropertyValue("Label", nDormancy & " min.")			'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblCookingTime").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 50)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblDormancy", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblCaloricValue")			'Elementname
		.setPropertyValue("Label", CDbl(nCaloricValue) & " g Kalorien") 'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblDormancy").Model.PositionY + 11 + 10) 'Position y
		.setPropertyValue("Width", 100)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblCaloricValue", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblProtein")					'Elementname
		.setPropertyValue("Label", nProtein & " g Eiweiß")		'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblCaloricValue").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 100)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblProtein", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblCarbohydrate")			'Elementname
		.setPropertyValue("Label", nCarbohydrate & " g Kohlenhydrahte") 'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblProtein").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 100)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblCarbohydrate", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblFat")						'Elementname
		.setPropertyValue("Label", nFat & " g Fett")			'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblCarbohydrate").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 100)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblFat", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblRoughage")				'Elementname
		.setPropertyValue("Label", nRoughage & " g Ballaststoffe") 'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblFat").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 100)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblRoughage", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblSodium")					'Elementname
		.setPropertyValue("Label", nSodium & " g Salz")			'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblRoughage").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 100)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblSodium", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")

	With oMod
		.setPropertyValue("Name", "lblSavedDate")				'Elementname
		.setPropertyValue("Label", CStr(dSavedDate))			'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblSodium").Model.PositionY + 11 + 10) 'Position y
		.setPropertyValue("Width", 65)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblSavedDate", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")

	With oMod
		.setPropertyValue("Name", "lblModifiedDate")			'Elementname
		.setPropertyValue("Label", CStr(CDate(dModifiedDate)))	'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblSavedDate").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 65)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblModifiedDate", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")

	With oMod
		.setPropertyValue("Name", "lblRetrievals")				'Elementname
		.setPropertyValue("Label", nRetrievals & " Aufruf(e)")	'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblModifiedDate").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 65)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblRetrievals", oMod)
	dlgRecipes.setModel(dlgModel)
	
	
	dlgRecipes.getControl("dlgImg").Model.Enabled = True
	dlgRecipes.getControl("dlgImg").Model.EnableVisible = True
	'*********************************************************************************************************************************************************
	For i = 0 To ubound(dlgRecipes.Model.ElementNames())
		'If Left(dlgRecipes.Model.ElementNames(i), 3) = "lbl" Then dlgRecipes.getControl(dlgRecipes.Model.ElementNames(i)).Model.Border = -1
	Next i
	'*********************************************************************************************************************************************************
	'Anzeige des Dialogs mittels des Modells
	oTopWindowListener = createUnoListener("oTopWindowListener_", "com.sun.star.awt.XTopWindowListener")
	dlgRecipes.addTopWindowListener(oTopWindowListener)
	dlgRecipes.setVisible(True)
End Sub
'*************************************************************************************************************************************************************
'Diese Routinen werden vom XTopWindowListener benötigt
Sub oTopWindowListener_windowClosing(oEvent) 'Dialog schließen
	dlgRecipes.setVisible(False)
End Sub

Sub oTopWindowListener_disposing(oEvent)
End Sub

Sub oTopWindowListener_windowOpened(oEvent)
End Sub

Sub oTopWindowListener_windowClosed(oEvent)
End Sub

Sub oTopWindowListener_windowMinimized(oEvent)
End Sub

Sub oTopWindowListener_windowNormalized(oEvent)
End Sub

Sub oTopWindowListener_windowActivated(oEvent)
	oTopWindowListener_windowDeactivated = False
End Sub

Function oTopWindowListener_windowDeactivated(oEvent) As Boolean
	oTopWindowListener_windowDeactivated = True
End Function
Die Schleifenfunktion sucht in allen Elementen auf dem Dialog nach "Rahmen", um diese dann abzuschalten. Die Zeile ist nur ausgeklammert, weil ich während der Design- u. Aufbauphase, die Rahmen zur genauen Positionierung auf dem Dialog benötige. Die Schleife durchläuft maximal 25 Bildschirmelemente - ist also nicht sonderlich zu beachten.
Ich hoffe, der Code läuft jetzt...


Liebe Grüße,

Marcel

Re: Dynamische Textfeld-Größenanpassung

von balu » Mi, 30.10.2013 13:06

Mahlzeit,

nu drängel doch nicht so :wink:. Is doch noch nicht mal nen Tag her seid deinem vorigen Posting.
Niemand eine Idee?
Nö! Absolut nicht. Zumal ich zumindest deinen Code nicht ans laufen kriege, und dadurch dein Problem nicht nachstellen kann.

Mir ist da aber etwas aufgefallen, was mich doch ein wenig verwirrt.

Code: Alles auswählen

For i = 0 To ubound(dlgRecipes.Model.ElementNames())
	'If Left(dlgRecipes.Model.ElementNames(i), 3) = "lbl" Then dlgRecipes.getControl(dlgRecipes.Model.ElementNames(i)).Model.Border = -1
Next i
Kannst Du uns mal verraten was dort geschieht? Eine Schleife ohne ausführbare Aktion?
Sicherheitshalber das ganze noch mal als Screenshot, da hier der Code fehlerhaft dargestellt wird.
Leere-Schleife.png
Leere-Schleife.png (19.59 KiB) 3995 mal betrachtet
Könnte das vielleicht der Störfaktor sein, da ja die Schleife ja trotzdem abgearbeitet werden muss, auch wenn keine Aktion in ihr ausgeführt wird?



Gruß
balu

Re: Dynamische Textfeld-Größenanpassung

von marcel_at_work » Di, 29.10.2013 22:14

Hi Leute,

meinen Dialog erstelle ich ja nun während der Laufzeit und soweit läuft auch alles so, wie ich es mir vorstelle. Als ich aber jetzt ein Bild mittels grafischem Kontrollfeld (in der Größe des Dialogs) hinzugefügt habe, flackert der gesamte Dialog bis sämtliche Kontrollfelder darin geladen sind.

Code: Alles auswählen

'Allgemeine Variablen
Global dlgRecipes As Object
'*************************************************************************************************************************************************************
'Erzeugung des Laufzeit-Dialoges "Rezepte"
Sub createDialog()
	Dim dlgModel As Object, oMod As Object, oWindow As Object, oTopWindowListener As Object
	Dim sTextlines As String
	Dim arrTemp As Variant
	
	dlgRecipes = createUnoService("com.sun.star.awt.UnoControlDialog")
	
	If Not isNull(dlgRecipes) Then
		If dlgRecipes.isVisible() Then
			dlgRecipes.setVisible(False)
			dlgRecipes.Dispose
		End If
	End If
	'*********************************************************************************************************************************************************
	'Auslesen eines Rezeptes aus der Datenbank
	Dim sRecipe As String, sDescription As String, sImageURL As String, sQuantity As String, sUnit As String, sIngredient As String, sPreparation As String, sAuthor As String
	Dim nWorkingTime As Integer, nCookingTime As Integer, nDormancy As Integer, nRecipeID As Integer, nPortions As Integer, nComplexity As Integer, nRating As Integer, nRetrievals As Integer
	Dim nCaloricValue As Double, nProtein As Double, nCarbohydrate As Double, nFat As Double, nRoughage As Double, nSodium As Double
	Dim dSavedDate As Date, dModifiedDate As Date
	
	nRecipeID = 1
	
	With oResultRecipes
		.Command = "SELECT recipeID, recipe, description, thumbnail, preparation, portions, workingTime, cookingTime, dormancy, complexity, rating, author, caloricValue, protein, carbohydrate, fat, roughage, sodium, savedDate, modifiedDate, retrievals FROM tblRecipes WHERE recipeID = '" & nRecipeID & "'"
		.Execute()
		If .First() Then
			sRecipe			= .getString(2)
			sDescription	= .getString(3)
			sImageURL		= convertToUrl("D:\myDocuments\Gesundheit\Ernährung\Koch-, Back- & Cocktailrezepte\db-rezepte\pictures\" & .getString(4)
			sPreparation	= .getString(5)
			nPortions		= .getInt(6)
			nWorkingTime	= .getInt(7)
			nCookingTime	= .getInt(8)
			nDormancy		= .getInt(9)
			nComplexity		= .getInt(10)
			nRating			= .getInt(11)
			sAuthor			= .getString(12)
			nCaloricValue	= .getDouble(13)
			nProtein		= .getDouble(14)
			nCarbohydrate	= .getDouble(15)
			nFat			= .getDouble(16)
			nRoughage		= .getDouble(17)
			nSodium			= .getDouble(18)
			dSavedDate		= .getString(19)
			dModifiedDate	= .getString(20)
			nRetrievals		= .getInt(21)
		End If
	End With
	'*********************************************************************************************************************************************************
	Dim globalWidth As Integer, globalHeight As Integer
	
	globalWidth = 450
	globalHeight = 369
	
	'Initialisierung eines Dialoges
	dlgModel = createUnoService("com.sun.star.awt.UnoControlDialogModel")
	
	With dlgModel
		.setPropertyValue("Name", "dlgRecipes")					'Elementname
		.setPropertyValue("Title", "Rezeptdetails")				'Titel
		.setPropertyValue("Closeable", True)					'Möglichkeit zum Schließen des Dialoges
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 0)						'Position x
		.setPropertyValue("PositionY", 0)						'Position y
		.setPropertyValue("Width", globalWidth)'350)			'Breite
		.setPropertyValue("Height", globalHeight)'550)			'Höhe
		.setPropertyValue("BackgroundColor", RGB(255,255,255)	'Hintergrundfarbe
'		.setPropertyValue("ImageURL", convertToUrl("D:\myDocuments\Gesundheit\Ernährung\Koch-, Back- & Cocktailrezepte\db-rezepte\layout.png") 'Grafik-URL
	End With
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlImageControlModel")
	
	With oMod
		.setPropertyValue("Name", "dlgImg")						'Elementname
		
		.setPropertyValue("Enabled", False)						'Aktivierung des Kontrollfeldes
		.setPropertyValue("EnableVisible", False)
		
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 0)						'Position x
		.setPropertyValue("PositionY", 0) 						'Position y
		.setPropertyValue("Width", globalWidth)					'Breite
		.setPropertyValue("Height", globalHeight)				'Höhe
		.setPropertyValue("Border", 0)							'Rahmen(In der Laufzeit-Erstellung kann man den Rahmen mit 0 ausblenden, ansonsten stets mit -1!)
		.setPropertyValue("ImageURL", convertToUrl("D:\myDocuments\Gesundheit\Ernährung\Koch-, Back- & Cocktailrezepte\db-rezepte\layout.png") 'Grafik-URL
'		.setPropertyValue("ScaleImage", True)					'Aktivierung der Skalierung
		.setPropertyValue("ScaleMode", 0)						'Skalierungs-Modus
	End With     
	dlgModel.insertByName("dlgImg", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	'Erzeugung eines numerischen Feldes für die temporäre Datenaufnahme
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlEditModel")

	With oMod
		.setPropertyValue("Name", "txtTemp")					'Elementname
		.setPropertyValue("Text", "")							'Text
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 0)						'Position x
		.setPropertyValue("PositionY", dlgModel.Height)			'Position y
		.setPropertyValue("Width", 200)							'Breite
		.setPropertyValue("Height", 12)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("Border", 0)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With
	dlgModel.insertByName("txtTemp", oMod)
	dlgRecipes.setModel(dlgModel)
	
	oWindow = createUnoService("com.sun.star.awt.Toolkit")
	dlgRecipes.createPeer(oWindow, Null)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblRecipe")					'Elementname
		.setPropertyValue("Label", sRecipe)						'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", 10)						'Position y
		.setPropertyValue("Width", 200)							'Breite
		.setPropertyValue("Height", 17)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 13)						'Schriftgröße
		.setPropertyValue("FontWeight", 150)					'Schriftgewichtung("Normal"=0;"Fett"=150)
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblRecipe", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblDescription")				'Elementname
		.setPropertyValue("Label", sDescription)				'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", 27)						'Position y
		.setPropertyValue("Width", 200)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblDescription", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblRecipeID")				'Elementname
		.setPropertyValue("Label", CStr(nRecipeID))				'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 215)						'Position x
		.setPropertyValue("PositionY", 27)						'Position y
		.setPropertyValue("Width", 30)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblRecipeID", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlImageControlModel")
	
	With oMod
		.setPropertyValue("Name", "imgThumbnail")				'Elementname
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblDescription").Model.PositionY + 11 + 10) 'Position y
		.setPropertyValue("Width", 90)							'Breite
		.setPropertyValue("Height", 160)						'Höhe
		.setPropertyValue("ImageURL", sImageURL)				'Grafik-URL
'		.setPropertyValue("ScaleImage", True)					'Aktivierung der Skalierung
		.setPropertyValue("ScaleMode", 0)						'Skalierungs-Modus
	End With     
	dlgModel.insertByName("imgThumbnail", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	Dim i As Integer
	i = 0
	
	With oResultRecipesIngredients
		.Command = "SELECT rowid, quantity, unitID, ingredientID, recipeID, comment FROM tblRecipesIngredients WHERE recipeID = '" & nRecipeID & "'ORDER BY rowid"
		.Execute()
		.beforeFirst()
		
		Dim nSearchID As Integer
		
		Do While .Next()
			sQuantity = .getString(2)
			
			nSearchID = .getInt(3)
			If nSearchID > 0 Then
				With oResultUnits
					.Command = "SELECT unitID, symbol FROM tblUnits WHERE unitID = '" & nSearchID & "'"
					.Execute()
					If .First() Then sUnit = " " & .getString(2)
				End With
			Else
				sUnit = ""
			End If
			
			nSearchID = .getInt(4)
			With oResultIngredients
				.Command = "SELECT ingredientID, ingredient FROM tblIngredients WHERE ingredientID = '" & nSearchID & "'"
				.Execute()
				If .First() Then sIngredient = .getString(2)
			End With
	
			oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
			
			With oMod
				.setPropertyValue("Name", "lblQuantity" + i)			'Elementname
				.setPropertyValue("Label", sQuantity & sUnit)			'Titel
				.setPropertyValue("Tabstop", False)
				.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
				.setPropertyValue("PositionX", 100)						'Position x
				.setPropertyValue("PositionY", dlgRecipes.getControl("imgThumbnail").Model.PositionY + (i * 11)) 'Position y
				.setPropertyValue("Width", 40)							'Breite
				.setPropertyValue("Height", 11)							'Höhe
				.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
				.setPropertyValue("FontHeight", 9)						'Schriftgröße
				.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
				.setPropertyValue("Border", 2)							'Rahmen
				.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
			End With     
			dlgModel.insertByName("lblQuantity" + i, oMod)
			dlgRecipes.setModel(dlgModel)
			'*************************************************************************************************************************************************
			oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
			
			With oMod
				.setPropertyValue("Name", "lblIngredient" + i)			'Elementname
				.setPropertyValue("Label", sIngredient)					'Titel
				.setPropertyValue("Tabstop", False)
				.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
				.setPropertyValue("PositionX", 140)						'Position x
				.setPropertyValue("PositionY", dlgRecipes.getControl("imgThumbnail").Model.PositionY + (i * 11)) 'Position y
				.setPropertyValue("Width", 70)							'Breite
				.setPropertyValue("Height", 11)							'Höhe
				.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
				.setPropertyValue("FontHeight", 9)						'Schriftgröße
				.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
				.setPropertyValue("Border", 2)							'Rahmen
				.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
			End With     
			dlgModel.insertByName("lblIngredient" + i, oMod)
			dlgRecipes.setModel(dlgModel)
			
			i = i + 1
		Loop
	End With
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblPreparation")				'Elementname
		.setPropertyValue("Label", sPreparation)				'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("imgThumbnail").Model.PositionY+dlgRecipes.getControl("imgThumbnail").Model.Height + 10) 'Position y
		.setPropertyValue("Width", 200)							'Breite
'		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblPreparation", oMod)
	dlgRecipes.setModel(dlgModel)
	
	dlgRecipes.getControl("txtTemp").Model.Text = sPreparation
	dlgRecipes.getControl("txtTemp").Model.Width = dlgRecipes.getControl("lblPreparation").Model.Width
	sTextlines = dlgRecipes.getControl("txtTemp").Peer.Textlines
	arrTemp = split(sTextlines,Chr(10))
	dlgRecipes.getControl("lblPreparation").Model.Height = (ubound(arrTemp) + 1) * 11 - 2
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblRating")					'Elementname
		.setPropertyValue("Label", CInt(nRating) & " Punkte")	'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblPreparation").Model.PositionY+dlgRecipes.getControl("lblPreparation").Model.Height) 'Position y
		.setPropertyValue("Width", 50)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblRating", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblAuthor")					'Elementname
		.setPropertyValue("Label", sAuthor)						'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblRating").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 200)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblAuthor", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	i = 0
	
	With oResultRecipesCategories
		.Command = "SELECT recipeID, categoryID, comment FROM tblRecipesCategories WHERE recipeID = '" & nRecipeID & "'"
		.Execute()
		.beforeFirst()
		
		Dim nCategoryID As Integer
		Dim sCategory As String
		
		Do While .Next()
			nCategoryID = .getInt(2)
			
			With oResultCategories
				.Command = "SELECT categoryID, category, comment FROM tblCategories WHERE categoryID = '" & nCategoryID & "'"
				.Execute()
				If .First() Then sCategory = .getString(2)
			End With
			
			oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
			
			With oMod
				.setPropertyValue("Name", "lblCategories" + i)			'Elementname
				.setPropertyValue("Label", sCategory)					'Titel
				.setPropertyValue("Tabstop", False)
				.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
				.setPropertyValue("PositionX", 10)						'Position x
				.setPropertyValue("PositionY", dlgRecipes.getControl("lblAuthor").Model.PositionY + 10 + 11 + (i * 11)) 'Position y
				.setPropertyValue("Width", 70)							'Breite
				.setPropertyValue("Height", 11)							'Höhe
				.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
				.setPropertyValue("FontHeight", 9)						'Schriftgröße
				.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
				.setPropertyValue("Border", 2)							'Rahmen
				.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
			End With     
			dlgModel.insertByName("lblCategories" + i, oMod)
			dlgRecipes.setModel(dlgModel)
			
			i = i + 1
		Loop
	End With
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblPortions")				'Elementname
		.setPropertyValue("Label", nPortions & " Portionen")	'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblCategories0").Model.PositionY + 10 + 11 + 11) 'Position y
		.setPropertyValue("Width", 50)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblPortions", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblComplexity")				'Elementname
		
		Dim sComplexity As String
		
		Select Case nComplexity
		Case 1
			sComplexity = "leicht"
		Case 2
			sComplexity = "normal"
		Case 3
			sComplexity = "mittel"
		Case 4
			sComplexity = "schwierig"
		Case 5
			sComplexity = ""
		End Select
		
		.setPropertyValue("Label", sComplexity)					'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblPortions").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 50)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblComplexity", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblWorkingTime")				'Elementname
		.setPropertyValue("Label", nWorkingTime & " min.")		'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblComplexity").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 50)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblWorkingTime", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblCookingTime")				'Elementname
		.setPropertyValue("Label", nCookingTime & " min.")		'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblWorkingTime").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 50)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblCookingTime", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblDormancy")				'Elementname
		.setPropertyValue("Label", nDormancy & " min.")			'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblCookingTime").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 50)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblDormancy", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblCaloricValue")			'Elementname
		.setPropertyValue("Label", CDbl(nCaloricValue) & " g Kalorien") 'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblDormancy").Model.PositionY + 11 + 10) 'Position y
		.setPropertyValue("Width", 100)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblCaloricValue", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblProtein")					'Elementname
		.setPropertyValue("Label", nProtein & " g Eiweiß")		'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblCaloricValue").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 100)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblProtein", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblCarbohydrate")			'Elementname
		.setPropertyValue("Label", nCarbohydrate & " g Kohlenhydrahte") 'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblProtein").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 100)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblCarbohydrate", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblFat")						'Elementname
		.setPropertyValue("Label", nFat & " g Fett")			'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblCarbohydrate").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 100)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblFat", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblRoughage")				'Elementname
		.setPropertyValue("Label", nRoughage & " g Ballaststoffe") 'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblFat").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 100)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblRoughage", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
	
	With oMod
		.setPropertyValue("Name", "lblSodium")					'Elementname
		.setPropertyValue("Label", nSodium & " g Salz")			'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblRoughage").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 100)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblSodium", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")

	With oMod
		.setPropertyValue("Name", "lblSavedDate")				'Elementname
		.setPropertyValue("Label", CStr(dSavedDate))			'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblSodium").Model.PositionY + 11 + 10) 'Position y
		.setPropertyValue("Width", 65)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblSavedDate", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")

	With oMod
		.setPropertyValue("Name", "lblModifiedDate")			'Elementname
		.setPropertyValue("Label", CStr(CDate(dModifiedDate)))	'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblSavedDate").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 65)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblModifiedDate", oMod)
	dlgRecipes.setModel(dlgModel)
	'*********************************************************************************************************************************************************
	oMod = dlgModel.createInstance("com.sun.star.awt.UnoControlFixedTextModel")

	With oMod
		.setPropertyValue("Name", "lblRetrievals")				'Elementname
		.setPropertyValue("Label", nRetrievals & " Aufruf(e)")	'Titel
		.setPropertyValue("Tabstop", False)
		.setPropertyValue("TabIndex", 0)						'Aktivierungsreihenfolge
		.setPropertyValue("PositionX", 10)						'Position x
		.setPropertyValue("PositionY", dlgRecipes.getControl("lblModifiedDate").Model.PositionY + 11) 'Position y
		.setPropertyValue("Width", 65)							'Breite
		.setPropertyValue("Height", 11)							'Höhe
		.setPropertyValue("FontName", "Comic Sans MS")			'Schriftart
		.setPropertyValue("FontHeight", 9)						'Schriftgröße
		.setPropertyValue("TextColor", RGB(0,0,0)				'Schriftfarbe
		.setPropertyValue("Border", 2)							'Rahmen
		.setPropertyValue("MultiLine", True)					'Mehrzeiligkeit
	End With     
	dlgModel.insertByName("lblRetrievals", oMod)
	dlgRecipes.setModel(dlgModel)
	
	
'	dlgRecipes.getControl("dlgImg").Model.Enabled = True
'	dlgRecipes.getControl("dlgImg").Model.EnableVisible = True
	'*********************************************************************************************************************************************************
	For i = 0 To ubound(dlgRecipes.Model.ElementNames())
		'If Left(dlgRecipes.Model.ElementNames(i), 3) = "lbl" Then dlgRecipes.getControl(dlgRecipes.Model.ElementNames(i)).Model.Border = -1
	Next i
	'*********************************************************************************************************************************************************
	'Anzeige des Dialogs mittels des Modells
	oTopWindowListener = createUnoListener("oTopWindowListener_", "com.sun.star.awt.XTopWindowListener")
	dlgRecipes.addTopWindowListener(oTopWindowListener)
	dlgRecipes.setVisible(True)
	dlgRecipes.getControl("dlgImg").Model.Enabled = True
	dlgRecipes.getControl("dlgImg").Model.EnableVisible = True
End Sub
'*************************************************************************************************************************************************************
'Diese Routinen werden vom XTopWindowListener benötigt
Sub oTopWindowListener_windowClosing(oEvent) 'Dialog schließen
	dlgRecipes.setVisible(False)
End Sub

Sub oTopWindowListener_disposing(oEvent)
End Sub

Sub oTopWindowListener_windowOpened(oEvent)
End Sub

Sub oTopWindowListener_windowClosed(oEvent)
End Sub

Sub oTopWindowListener_windowMinimized(oEvent)
End Sub

Sub oTopWindowListener_windowNormalized(oEvent)
End Sub

Sub oTopWindowListener_windowActivated(oEvent)
	oTopWindowListener_windowDeactivated = False
End Sub

Function oTopWindowListener_windowDeactivated(oEvent) As Boolean
	oTopWindowListener_windowDeactivated = True
End Function
Habt ihr sowas schon mal erlebt? Kann man dies irgendwie beseitigen?


Liebe Grüße,

Marcel

Nach oben