Seite 1 von 1

Bekomme 'Dialog - Textfeld' nicht ausgelesen

Verfasst: So 7. Jun 2020, 16:13
von K-LOFF
moin,

ich versuche gerade ein Textfeld eines Dialogs auszulesen, geligt mir aber nicht.
Da ist meine Sub dazu:

Code: Alles auswählen

Sub Btn1kl '              Übernehmen
	dim txt as string
	txt =""
	txt = TextField1.Text
End Sub
Die Fehlermeldung:

Code: Alles auswählen

BASIC-Laufzeitfehler.
Objektvariable nicht belegt.
Was ist da falsch? Wie mache ich es richtig?

Re: Bekomme 'Dialog - Textfeld' nicht ausgelesen

Verfasst: So 7. Jun 2020, 17:20
von mikele
Hallo,
was soll den TextField1 für ein Objekt sein?
In der Sub ist es nicht definiert.

Re: Bekomme 'Dialog - Textfeld' nicht ausgelesen

Verfasst: So 7. Jun 2020, 17:34
von K-LOFF
habe das TextFeld im Dialog1 in der IDE erstellt.
Was muß ich machen, das es als Textfeld im Prg. erkannt wird und ich den Text ausgelesen bekomme?

Re: Bekomme 'Dialog - Textfeld' nicht ausgelesen

Verfasst: So 7. Jun 2020, 17:50
von mikele
Hallo,
dazu muss man weiter ausholen.
Zunächst muss der Dialog in einer globalen Variable gespeichert sein, damit man von verschiedenen Prozeduren darauf zugreifen kann.
Dann kannst du auf die verschiedenen Objekte und Eigenschaften des Dialogs zugreifen.
Einen Einstieg dazu findest du hier: http://www.dannenhoefer.de/faqstarbasic/Dialoge.html
Aber bevor wir hier im Klein-Klein weiter ackern, wäre es sinnvoller wenn du uns dein Gesamtprojekt vorstellst bzw. den aktuellen Stand deines Makros - am besten per Beispieldatei.

Re: Bekomme 'Dialog - Textfeld' nicht ausgelesen

Verfasst: So 7. Jun 2020, 18:11
von K-LOFF
Ich habe:

Code: Alles auswählen

Public oDialog1 As object

Sub Begin
	Dialog1Show
End Sub

Sub Dialog1Show
    DialogLibraries.LoadLibrary("Standard")
    oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
    oDialog1.Execute()
End Sub

Sub Btn1kl '                                         <   Übernehmen - Button
	dim txt as string
	txt =""
 	txt = oDialog1.TextField1.Text    '  <<<  Fehlermeldung
End Sub
Das sind die beteiligten Code-Zeilen

Auf dem Dialog ist dazu ein 'TextField1' und ein 'CommandButton1' als 'Btn1kl'.

Re: Bekomme 'Dialog - Textfeld' nicht ausgelesen

Verfasst: So 7. Jun 2020, 18:34
von mikele
Hallo,
Zugriff auf das Kontrollelement erhältst du per

Code: Alles auswählen

odialog1.getcontrol("TextField1")

Re: Bekomme 'Dialog - Textfeld' nicht ausgelesen

Verfasst: So 7. Jun 2020, 18:52
von K-LOFF
ja, das hatte ich gerade gemacht, und es klappte.
Ich nahm an, daß das Textfeld dem Programm bekannt sei, denn es kannte auch die Buttons, warum das Textfeld nicht?

Re: Bekomme 'Dialog - Textfeld' nicht ausgelesen

Verfasst: So 7. Jun 2020, 19:46
von mikele
Hallo,
auch die Button werden per getControl() angesprochen. Der Name ist kein Objekt.