Dynamische Textfeld-Größenanpassung

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

Moderator: Moderatoren

F3K Total
********
Beiträge: 3723
Registriert: Mo, 28.02.2011 17:49

Re: Dynamische Textfeld-Größenanpassung

Beitrag von F3K Total »

Moin Balu,
balu hat geschrieben:Also solltest Du deine Worte mehr an ihn wenden, und nicht so sehr an mich ...
:roll: Hast nicht Du die Variable odlg mehrfach definiert?
balu hat geschrieben:Du musst dich doch nicht dafür rechtfertigen ...
Es handelt sich um eine gut gemeinte Erläuterung.
Gruß R
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Dynamische Textfeld-Größenanpassung

Beitrag von balu »

Mahlzeit R,
F3K Total hat geschrieben:
balu hat geschrieben:Also solltest Du deine Worte mehr an ihn wenden, und nicht so sehr an mich ...
:roll: Hast nicht Du die Variable odlg mehrfach definiert?
Ich geh erstmal anständig Asche duschen. Hab den bösen Auslöser gefunden.
balu hat geschrieben: Ich hatte nämlich eine weitere Bibliothek angelegt und das Makro dort in ein Modul reinkopiert.
Das war so nicht ganz korrekt. Diese Bibliothek bestand schon in einer fertigen Datei, und sie hatte auch mehrere Module. Und dann hatte ich den Fehler gemacht dort noch ein Modul einzufügen in das der Code reinkam. So weit eigentlich kein Problem.

A B E R !!!
Erst grad eben ist mir aufgefallen, dass in einem Modul in dieser betroffenen Bibliothek schon ein Code vorhanden war, in dem odlg schon deklariert und defeniert war.

Code: Alles auswählen

    Public oDlg as Object
Den hatte ich früher hier aus dem Forum -{welcher Thread weiss ich jetzt nicht mehr}- in das eine alte Modul reinkopiert.
Und nun kam der hiesige Code in ein anderes Modul hinzu, und schon nahm das Unglück seinen Lauf.

Code: Alles auswählen

    Global odlg as Object
Obwohl ich ja nur die neue Sub von dir in dem neuen Modul ausführte, und sonst nix, hatte OOo doch die andere deklaration aus der alten Sub in dem alten Modul aufgenommen.
Aber wie ist das möglich?
Das alte Modul wird doch gar nicht angesprochen, und trotzdem verursacht es Probleme.

Nach meinem bisherigen Wissensstand passiert da etwas was gar nicht sein darf. Obwohl ein Modul nicht explizit angesprochen wird, bringt dieses OOo durcheinander. Und das versteh ich jetzt überhaupt nicht.

Auch wenn ich einen Fehler gemacht hatte, so bin nicht ich alleine an diesem Theater Schuldig, es betrifft auch irgendwie OOo. Oder versteh ich da etwas falsch?

Ich rauf mir hier noch die Haare aus.

Hänge jetzt mal die Datei an, in der die betroffenen Module drin sind. Sie sind in der Bibliothek "Programm" zu finden. Und das Modul welches mir bis jetzt Probleme bereitete heißt "Module_neu". Das andere Modul ist das was schon vorhanden war.

Habe für heute die Faxen dicke!



Gruß
balu



p.s:
Ach ja. Noch was anderes.
Ich hätte nix dagegen wenn ein Moderator den Thread auftrennen würde.
Dateianhänge
Version_1.11_c.ods
(20.34 KiB) 183-mal heruntergeladen
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
F3K Total
********
Beiträge: 3723
Registriert: Mo, 28.02.2011 17:49

Re: Dynamische Textfeld-Größenanpassung

Beitrag von F3K Total »

Hallo Balu,
hier steht
Public domain variables are defined in the header section of a module by the keyword Dim. These variables are available to all of the modules in their library.
A public domain variable is only available so long as the associated macro is executing and then the variable is reset.
im Gegensatz zu
In terms of their function, global variables are similar to public domain variables, except that their values are retained even after the associated macro has executed. Global variables are declared in the header section of a module using the keyword Global:
Ich verstehe das so:
  • die im Kopfbereich eines Modules definierten Variablen werden beim Laden einer Bibliothek deklariert, sprich deren Namen sind bekannt, globale und public Variablen stehen der gesamten Bibliothek zur Verfügung stehen und vertragen sich nicht einmal mit private Variablen.
  • An dieser Stelle beissen sie sich, eine globale oder public Variable darf innerhalb einer Bibliothek nur einmal vorkommen.
  • Abhilfe bringt, wie bekannt, die Umbenennung einer der beiden Variablen
Gruß R
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Dynamische Textfeld-Größenanpassung

Beitrag von DPunch »

Servus
balu hat geschrieben:Bedenke bitte eins: Das Makro hatte nicht ich erstellt, sondern F3K Total(...)Also solltest Du deine Worte mehr an ihn wenden, und nicht so sehr an mich.
Mein Hinweis war nicht explizit auf diesen Fall gemünzt und auch nicht nur an Dich gerichtet, sondern ein ganz allgemeiner Hinweis, deshalb ist eigentlich auch egal, wer das Makro erstellt hat - aber Du hattest die Frage aufgeworfen, und daher hatte ich auch Dir geantwortet. ;)

Um mal zu verdeutlichen, was hier passiert:
Bei jedem Aufruf einer Prozedur/Funktion innerhalb einer Bibliothek, die nicht aus einem bereits laufenden Prozedur/Funktion heraus aufgerufen wird, werden globale und public Variablen der Bibliothek initialisiert, im Falle von globalen Variablen behalten diese ihren vorherigen Wert, wenn sie denn einen hatten, ansonsten werden sie als neues Objekt initialisiert (Standardwert von neuen Objekten: NULL), public Variablen werden immer neu initialisiert.
  • - Du startest die Prozedur zum Erstellen des Dialogs
  • - Die Variable odlg wird als globale Variable initialisiert (beim allerersten Aufruf als NULL-Objekt)
  • - Die Variable odlg wird erneut initialisiert als public Variable, also als NULL-Objekt
  • - Die Variable odlg ist ein globales NULL-Objekt
  • - Die Prozedur zum Erstellen des Dialogs wird durchlaufen
  • - Die Variable odlg enthält nun eine Referenz auf das Dialog-Objekt
  • - Das sichtbar Machen per setVisible löst über den TopWindowListener den windowActivated-Event aus und die dazugehörige Prozedur innerhalb der Bibliothek wird gestartet
  • - Die globale Variable odlg wird erneut initialisiert, behält aber ihren vorherigen Wert (Referenz auf Dialog-Objekt)
  • - Die Variable odlg wird als public Variable erneut initialisiert, und zwar wie immer als NULL-Objekt
  • - Die Variable odlg ist ein globales NULL-Objekt
  • - Der Aufruf odlg.setVisible(False) schlägt fehl, weil odlg ein NULL-Objekt ist
F3K Total
********
Beiträge: 3723
Registriert: Mo, 28.02.2011 17:49

Re: Dynamische Textfeld-Größenanpassung

Beitrag von F3K Total »

Hallo DPunch,
vielen Dank für die erhellenden Sätze.
Wie bist du darauf gekommen? Ist es dein Wissen, oder gibt es eine Möglichkeit dies selbst herauszubekommen?
Ich habe es mit dem Beobachter versucht, der zeigt aber nach Prozedurende für beide Varianten (mit und ohne public-Variable) kein Objekt für odlg mehr an.
Beste Grüße von Rik
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Dynamische Textfeld-Größenanpassung

Beitrag von DPunch »

Servus
F3K Total hat geschrieben:Wie bist du darauf gekommen? Ist es dein Wissen, oder gibt es eine Möglichkeit dies selbst herauszubekommen?
Den grundsätzlichen Ablauf kann man sich vermutlich einfach mit Erfahrungswerten zusammenreimen und den genauen Zeitpunkt der Neuinitialisierung der Variablen dann per Testausgaben herausfinden (durch eine entsprechende Codezeile in den Listener-Prozeduren).

Ich hab mal eine verinfachte Version der Vorgänge angehängt.
Integer-Variablen werden mit dem Wert 0 vorbelegt, das ist also das Pendant zum Null-Objekt im hier diskutierten Fall.
Setz die Variable und lass Dir den Wert ausgeben (die Ausgabe startet eine Prozedur und bewirkt somit eine Neuinitialisierung)... dann setz den Wert erneut, öffne Module2 und kommentier die "Public"-Deklaration der Variablen aus und lass Dir den Wert nochmal ausgeben.
Dateianhänge
GlobalPublicVar.ods
(9.29 KiB) 184-mal heruntergeladen
F3K Total
********
Beiträge: 3723
Registriert: Mo, 28.02.2011 17:49

Re: Dynamische Textfeld-Größenanpassung

Beitrag von F3K Total »

Hallo DPunch,
Danke dafür. Mit dieser Methode werde ich mir helfen, wenn so ein Problem mich treffen sollte.
Nur um sicher zu gehen, noch eine Frage.
Gibt es eine Möglichkeit auf den modalen Dialog zuzugreifen bei der man auf die Verwendung von globalen Variablen verzichten kann?
Ich denke nicht. Aber man hat schon Pferde vor Apotheken kotzen sehen, mit Rezept im Maul.
Beste Grüße von Rik
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Dynamische Textfeld-Größenanpassung

Beitrag von balu »

Hallo Leute,

danke Rik das Du den englischen Text auf deine Weise übersetzt hast, denn englisch ist nicht so sehr mein Ding. Aber es gibt zumindest für mich auch eine deutsche Erklärung, die bei Dannenhöfer zu finden ist und an die ich mich selber dran halte.

Dannenhöfer hat geschrieben: Globale Variablen werden ebenfalls im Kopfbereich eines Moduls deklariert, sie haben auch nach beenden des Moduls Gültigkeit.
Diesen Satz hatte ich mir wohl zu intensiv etwas falsch gemerkt. Okay, ich hatte schon mit Globalen Variablen in einer größeren Datei experimentiert, aber nicht drauf geachtet das sie schon gültig sind bevor dieses Modul per Makro ausgeführt, beziehungsweise angesprochen wird. Mangels Wissen war mir das nicht bewusst. Und da die Lebensdauer von Globalen Variablen seeeehr lang anhaltend sind, durch experimente erfahren, hatte ich schnell wieder Abstand davon genommen, war in meinem speziellen Fall einfach zu riskant. Und was Global Variablen sonst so noch anstellen können, kannst Du in diesem Thread -{erste Antwort von Karous}- lesen.

Ich hatte bisher immer gedacht, das Globale Variablen ihre Gültigkeit behalten wenn das Modul mit diesen Variablen per Makro einmal irgendwie angesprochen wurde. Das ist aber ein sehr großer Fehler, wie sich ja jetzt herausstellte. Denn sie greifen schon, wenn die Bibliothek die dieses Modul hat, aufgerufen wird. Das hatte ich ja hier schon geschildert. Es ist nur schade das dies nicht bei Dannenhöfer steht.



Hätte ich also das erwähnte Makro in eine neue und leere Datei reinkopiert, dann wäre es nicht zu diesem ausschweifenden Thema gekommen. Aber so kann ich wenigstens von meiner Seite sagen:
"Ich habe wieder etwas sehr wichtiges dazu gelernt."

Ich bedanke mich also bei Euch für eure Geduld und hilfe, Danke schön.

F3K Total hat geschrieben: Gibt es eine Möglichkeit auf den modalen Dialog zuzugreifen bei der man auf die Verwendung von globalen Variablen verzichten kann?
Ich bin wohl nicht DPunch, aber ich würde folgendes dazu sagen.
Verzichte auf Global, und nimm stattdessen lieber einfach Dim, oder wenn es nicht anders geht Public.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
F3K Total
********
Beiträge: 3723
Registriert: Mo, 28.02.2011 17:49

Re: Dynamische Textfeld-Größenanpassung

Beitrag von F3K Total »

Moin Balu,
F3K Total hat geschrieben:Gibt es eine Möglichkeit auf den modalen Dialog zuzugreifen bei der man auf die Verwendung von globalen Variablen verzichten kann?
balu hat geschrieben:Verzichte auf Global, und nimm stattdessen lieber einfach Dim, oder wenn es nicht anders geht Public.
Funktioniert eben gerade nicht, darum hatten wir doch das Thema!
Gruß Rik
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Dynamische Textfeld-Größenanpassung

Beitrag von balu »

Moin Rik,

modalen Dialog per Laufzeit. Ja klar doch, ich Hirni Bild ! Stimmt, da ist meine getroffene Aussage natürlich falsch. Hatte eben mal hier im Forum gesucht, und überall das gleiche, ohne Global funzt es net.

Kurz um: Ich bin hier raus, und verziehe mich wieder in meinem Keller. Muss vorbereitungen treffen für meine Fräse :lol:.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Dynamische Textfeld-Größenanpassung

Beitrag von DPunch »

Servus
F3K Total hat geschrieben:Gibt es eine Möglichkeit auf den modalen Dialog zuzugreifen bei der man auf die Verwendung von globalen Variablen verzichten kann?
Kurz zur Entwirrung: wir reden hier über non-modale Dialoge - ein modaler Dialog wäre einer, der z.B. per .execute gestartet wird. Und in diesem Fall reicht eine als private deklarierte Variable. Aber das meintest Du wahrscheinlich nicht.

Ich könnte mir schon vorstellen, dass es eine Möglichkeit gibt, irgendwie über alle dargestellten Fenster zu iterieren und zu identifizieren, ob und welche Subframes o.Ä. dort dargestellt werden. Aber das ist lediglich eine Vermutung, letztendlich kann ich nur: ich weiss es nicht.
Mit eindeutigen (eindeutigeren) Namen für die globalen Variablen, im Zweifelsfall auch einem globalen Array / einer globalen Collection für die vorzuhaltenden Variablen wie z.B. non-modale Dialoge, braucht man sich darüber aber denke ich auch keinen großen Kopf machen.
F3K Total
********
Beiträge: 3723
Registriert: Mo, 28.02.2011 17:49

Re: Dynamische Textfeld-Größenanpassung

Beitrag von F3K Total »

Hi DPunch,
danke für die Aufklärung, also nicht modal.
Vorhin war ich sehr beschäftigt, daher nun eine ausführlichere Antwort.
  • Ich werde also auch in Zukunft, für nicht modale Dialoge, eine globale Variable verwenden
  • Dabei aufpassen einen eindeutigen Namen zu vergeben
  • Da ich die meisten meiner Makros innerhalb der entsprechenden Dateien speichere, laufe ich weniger Gefahr mal eine Überschneidung mit der Standard-Bibliothek zu erzeugen, denn ich öffne meist nur die Datei, die ich bearbeite.
Beste Grüße von Rik
marcel_at_work
****
Beiträge: 195
Registriert: Sa, 24.04.2010 15:51
Wohnort: Basel [CH]

Re: Dynamische Textfeld-Größenanpassung

Beitrag von marcel_at_work »

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
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Dynamische Textfeld-Größenanpassung

Beitrag von balu »

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) 4000 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
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
marcel_at_work
****
Beiträge: 195
Registriert: Sa, 24.04.2010 15:51
Wohnort: Basel [CH]

Re: Dynamische Textfeld-Größenanpassung

Beitrag von marcel_at_work »

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
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]
Antworten