Textfield als Variable deklarieren

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

Moderator: Moderatoren

Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Textfield als Variable deklarieren

Beitrag von Jörg »

Hallo Fachleute,
beim Aufruf des Dialoges bekomme ich die Fehlermeldung: Objektvariable nicht belegt. Was hab ich falsch gemacht?
Danke für Eure Hilfe
Gruß Jörg

Code: Alles auswählen

omahnungsdatum = oDialog4.getControl("TextField1")

Code: Alles auswählen

Public oDialog4 as Object
Public osheet as Object
Public oZelle as Object
Public mycell as Object
Public mahnung1 as Object
Public mahnung2 as Object
Public mahnung3 as Object
Dim ostatus as Object, omahnungsdatum as Object, oersteMahn as Object, ozweiteMahn as Object, odritteMahn as Object, oZins as Object
sub Dialog4

omahnungsdatum = oDialog4.getControl("TextField1")			
ostatus = oDialog4.getControl("TextField2")			
oersteMahn = oDialog4.getControl("TextField3")
ozweiteMahn = oDialog4.getControl("TextField4")
odritteMahn = oDialog4.getControl("TextField5")	
oZins = oDialog4.getControl("TextField6")
odoc = ThisComponent
	osheet = odoc.Sheets().getByName("Tabelle12")
	oZelle = osheet.getCellRangebyName("H25")
	mycell =  osheet.getCellRangebyName("G24")
		mahnung1 =  osheet.getCellRangebyName("K25")
			mahnung2 =  osheet.getCellRangebyName("K26")
				mahnung3 =  osheet.getCellRangebyName("K27")

	DialogLibraries.loadLibrary("Standard")
	oDialog4 = CreateUnoDialog(DialogLibraries.Standard.Dialog4)
	oDialog4.execute
end sub
Gruß Jörg

Win 10 Pro AOO 4.1.15
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Textfield als Variable deklarieren

Beitrag von clag »

Hllo Jörg,

wenn das der ganze Code ist kann es nicht funtionieren, weil du noch gar keinen Dialog geladen hast.
http://www.dannenhoefer.de/faqstarbasic ... ml#Zweig85

Code: Alles auswählen

	sub Test	
	Dim oDialog as object
	Dim iDlgOK as integer
	DialogLibraries.loadLibrary( "Standard") 
	oDialogLib = DialogLibraries.getByName("Standard")
	oDialog = CreateUnoDialog(oDialogLib.getByName("Dialog1"))
	iDlgOK = oDialog.Execute() 
	if iDlgOK = 1 then 
		myString = oDialog.GetControl("TextField1").Text
	end if
	oDialog.dispose()
	msgbox myString , , "das war die Eingabe im Dialog"
end sub
TestDialog.ods
(10.79 KiB) 67-mal heruntergeladen
Viel Spaß
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Re: Textfield als Variable deklarieren

Beitrag von Jörg »

Hallo clag,
also ohne die nachfolgenden Zeilen funktioniert mein Dialog.

Code: Alles auswählen

Dim ostatus as Object, omahnungsdatum as Object, oersteMahn as Object, ozweiteMahn as Object, odritteMahn as Object, oZins as Object

Code: Alles auswählen

omahnungsdatum = oDialog4.getControl("TextField1")         
ostatus = oDialog4.getControl("TextField2")         
oersteMahn = oDialog4.getControl("TextField3")
ozweiteMahn = oDialog4.getControl("TextField4")
odritteMahn = oDialog4.getControl("TextField5")   
oZins = oDialog4.getControl("TextField6")
Der Hintergrund ist folgender:
Mit den Textfeldern werden unterschiedliche NICHT zusammenhängende Zellen geschrieben. Nun habe ich hinter jedem Textfeld eine Schaltfläche ("Übernehmen"), so dass jedes Textfeld einzeln schreibt. Funktioniert auch. Mein Ziel ist es jedoch alles auf eine Schaltfläche zu legen.
Allerdings muß ich dann sicherstellen, dass die Zellen geschrieben werden, wenn Textfield1 usw. <> "" sind.

Gruß Jörg
Gruß Jörg

Win 10 Pro AOO 4.1.15
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Textfield als Variable deklarieren

Beitrag von clag »

Hallo

schau dir doch mal deine Reihenfolge der Anweisungen an !
TestDialog4.ods
(12.06 KiB) 76-mal heruntergeladen
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Textfield als Variable deklarieren

Beitrag von Stephan »

also ohne die nachfolgenden Zeilen funktioniert mein Dialog.
aber nicht wenn sich das auf den ursprünglichen Code bezieht, und einen möglicherweise anderen Code kennt hier niemand.

Warum kann es nicht gehen?

Weil der Code beginnt mit:

Code: Alles auswählen

omahnungsdatum = oDialog4.getControl("TextField1")
jedoch die Objektvariable "oDialog4" erst 14 Zeilen später initialisiert bzw. mit Inhalt gefüllt wird, nämlich in der Zeile:

Code: Alles auswählen

oDialog4 = CreateUnoDialog(DialogLibraries.Standard.Dialog4)
weswegen völlig richtig die benannte Fehlermeldung "Objektvariable nicht belegt" erfolgt.

Daran ändert sich auch nichts dadurch das man einige Variablendeklarierungen streicht, wie Du es beschreibst.



Gruß
Stephan
Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Re: Textfield als Variable deklarieren

Beitrag von Jörg »

Hallo clag,
das war`s. Danke.
Zu meinen anderen Überlegungen (eine Schaltfläche):
1. eine weitere Variable deklarieren -> Dim oirgendwas as String
2. oirgendwas (1)= omahnungsdatum
....
oirgendwas (6) = ostatus
3. for i = 1 to 6
if i <> "" then

meine makros zum Schreiben der Zellen.

Kann das so gehen?
Ansonsten vielen Dank und schönes WE.
Jörg
Gruß Jörg

Win 10 Pro AOO 4.1.15
Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Re: Textfield als Variable deklarieren

Beitrag von Jörg »

@ Stephan
Danke auch Dir für die Hinweise. Hatte meine Antwort schon abgeschickt.
Gruß Jörg

Win 10 Pro AOO 4.1.15
Antworten