Seite 1 von 1

Textfield als Variable deklarieren

Verfasst: Sa, 18.07.2015 10:56
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

Re: Textfield als Variable deklarieren

Verfasst: Sa, 18.07.2015 12:21
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ß

Re: Textfield als Variable deklarieren

Verfasst: Sa, 18.07.2015 12:46
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

Re: Textfield als Variable deklarieren

Verfasst: Sa, 18.07.2015 13:39
von clag
Hallo

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

Re: Textfield als Variable deklarieren

Verfasst: Sa, 18.07.2015 13:54
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

Re: Textfield als Variable deklarieren

Verfasst: Sa, 18.07.2015 13:59
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

Re: Textfield als Variable deklarieren

Verfasst: Sa, 18.07.2015 14:00
von Jörg
@ Stephan
Danke auch Dir für die Hinweise. Hatte meine Antwort schon abgeschickt.