🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Bekomme 'Dialog - Textfeld' nicht ausgelesen

Alles zur Programmierung im LibreOffice.
Antworten
K-LOFF
Beiträge: 120
Registriert: Di 17. Mai 2011, 15:38
Wohnort: NDS

Bekomme 'Dialog - Textfeld' nicht ausgelesen

Beitrag von K-LOFF » So 7. Jun 2020, 16:13

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?
gruss

mikele
* LO-Experte *
Beiträge: 1930
Registriert: Mo 1. Aug 2011, 20:51

Re: Bekomme 'Dialog - Textfeld' nicht ausgelesen

Beitrag von mikele » So 7. Jun 2020, 17:20

Hallo,
was soll den TextField1 für ein Objekt sein?
In der Sub ist es nicht definiert.
Gruß,
mikele

K-LOFF
Beiträge: 120
Registriert: Di 17. Mai 2011, 15:38
Wohnort: NDS

Re: Bekomme 'Dialog - Textfeld' nicht ausgelesen

Beitrag von K-LOFF » So 7. Jun 2020, 17:34

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?
gruss

mikele
* LO-Experte *
Beiträge: 1930
Registriert: Mo 1. Aug 2011, 20:51

Re: Bekomme 'Dialog - Textfeld' nicht ausgelesen

Beitrag von mikele » So 7. Jun 2020, 17:50

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.
Gruß,
mikele

K-LOFF
Beiträge: 120
Registriert: Di 17. Mai 2011, 15:38
Wohnort: NDS

Re: Bekomme 'Dialog - Textfeld' nicht ausgelesen

Beitrag von K-LOFF » So 7. Jun 2020, 18:11

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'.
gruss

mikele
* LO-Experte *
Beiträge: 1930
Registriert: Mo 1. Aug 2011, 20:51

Re: Bekomme 'Dialog - Textfeld' nicht ausgelesen

Beitrag von mikele » So 7. Jun 2020, 18:34

Hallo,
Zugriff auf das Kontrollelement erhältst du per

Code: Alles auswählen

odialog1.getcontrol("TextField1")
Gruß,
mikele

K-LOFF
Beiträge: 120
Registriert: Di 17. Mai 2011, 15:38
Wohnort: NDS

Re: Bekomme 'Dialog - Textfeld' nicht ausgelesen

Beitrag von K-LOFF » So 7. Jun 2020, 18:52

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?
gruss

mikele
* LO-Experte *
Beiträge: 1930
Registriert: Mo 1. Aug 2011, 20:51

Re: Bekomme 'Dialog - Textfeld' nicht ausgelesen

Beitrag von mikele » So 7. Jun 2020, 19:46

Hallo,
auch die Button werden per getControl() angesprochen. Der Name ist kein Objekt.
Gruß,
mikele


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten