Hallo Dirk,
sorry, wollte Dich nicht ..........,
Mensch Junge, hatte doch nur nen Spaß gemacht
Vermutung meinerseits war/ist
Dimensionierung des Textfeldes...... auch als Object????? und "ausserhalb" der Makros im Modul
Vorsicht! Du musst aufpassen was Du da sagst.
Eine Variablen deklaration ist z.B. das: Dim VariablenNamen as Object
Eine Variablen definition ist z.B. das: oEingabe = MyDlg.getControl("txt_PW")
Eine Dimensionierung ist etwas vollommen anderes, denn dabei geht es um Arrays, und die sind in deiner Datei nicht vorhanden.
Du siehst, manchmal muss man seine Worte sehr sorgfältig überlegen, wenn es um bestimmte Begriffe geht. Aber das wird schon, das wirst Du auch noch verstehen.
Jedoch ist dein Gedankengang wohl nicht ganz so verkehrt, aber selbst für dich noch nicht ganz so einfach zu verstehen.
Da du es früher oder später mit mehr als nur ein, oder zwei Variablen bei Dialogen zu tun hast, ist folgendes Verfahren (was ich ja schon in meinem ersten Beitrag erklärte) einzuhalten, oder empfehlenswert.
Die deklaration der Variablen außerhalb der ersten Sub ganz am Anfang.
Code: Alles auswählen
Dim MyDlg as object
Dim oEingabe as Object
Sub Dlg_Start
Du siehst, ich habe jetzt 2 Variablen öffentlich deklariert. Und ja, ein TextField (Textfeld) in einem Dialog ist auch ein Object, genau so wie alle anderen Grafischen Elemente die man in einem Dialog zeichnen kann.
Da jetzt auch das Textfeld öffentlich deklariert wurde, kann nun auch das Makro dementsprechend geändert werden. Und dabei gehe ich nach folgendem Schema vor.
Alle Variablen die ein Grafisches Element im Dialog darstellen, werden in der ersten Sub, die den Dialog aufruft, definiert.
Code: Alles auswählen
Sub Dlg_Start
Dialoglibraries.Loadlibrary("Standard")
MyDlg= CreateUnoDialog(Dialoglibraries.Standard.PWAbfrage)
oEingabe = MyDlg.getControl("txt_PW")
Da die Variable oEingabe öffentlich deklariert wurde, steht sie auch der anderen Sub zur Verfügung.
Und dadurch würde dann der Code wie folgt aussehen
Code: Alles auswählen
Dim MyDlg as object
Dim oEingabe as Object
Sub Dlg_Start
Dialoglibraries.Loadlibrary("Standard")
MyDlg= CreateUnoDialog(Dialoglibraries.Standard.PWAbfrage)
oEingabe = MyDlg.getControl("txt_PW")
'----------------------------------- Ab hier gibt es jetzt auch Bunte Buttons im Dialog :-) --
Dim bNativeLook as Boolean
bNativeLook = False
MyDlg.getPeer().setProperty( "NativeWidgetLook", bNativeLook )
'-----------------------------------
MyDlg.execute
End Sub
'#######################################
Sub Dlg_PWAbfrage
msgbox oEingabe.text
If oEingabe.text = "lolli" then
msgbox "jep"
else
msgbox "so nicht"
End If
End Sub
Ich hänge jetzt zusätzlich zu dem Code auch noch die Datei an.
Jetzt passiert Nichts
habe einen debug eingebaut, aber als wenn das Makro garnicht angesprochen wird
Da kann keiner Helfen, ohne die Datei zu sehen. Vielleicht solltest du die Datei anhängen.
Danke für dein Lob. Über so etwas freue ich mich auch sehr. Weiß ich doch das meine Arbeit nicht umsonst ist.
Gruß
balu