Hallo Alex,
folgende Vorgehensweise:
Code: Alles auswählen
Public dlgTest as object
Public txtTextfeld as Object
Sub Start_Dialog
Dim a as long
dlgTest = CreateUnoDialog(DialogLibraries.Standard.frmTest) '..Dialog kreieren
txtTextfeld=dlgTest.GetControl("txt_Textfeld") '....Textfeld kreeiren
txtTextfeld.Visible=False '....................Textfeld unsichtbar
txtTextfeld.setText("Ich war unsichtbar") '....Text ins textfeld einsetzen
a=dlgTest.Execute() '...........Aufruf des Dialoges
Select Case a '....................Was wurde gedrueckt ??????
Case 1 '.....................OK wurde gedrueckt
msgbox "OK gedrueckt"
Case 0 '.....................Cancel wurde gedrueckt
MsgBox "Abbrechen gedrueckt"
End Select
dlgTest.Dispose() '............Dialog raus aus dem Speicher
End sub
Sub Aktiviere_Textfeld
txtTextfeld.Visible=True '...............Textfeld sichtbar machen
End Sub
Du mußt im Dialogeditor ein Dialog erstellen mit dem Namen "frmTest".
In dem Dialog gibt es ein Textfeld mit dem Namen "txt_Textfeld".
Ich habe mir angewöhnt die Steuerelemente im Dialogeditor immer etwas anders zu benennen als ich dann im Programm sie definiere (Public ...). Hatte da mal unangenehme Erfahrungen bei gleicher Namensvergabe.
Dann das Programm "Start_Dialog" ausführen und der Dialog erscheint und das Textfeld bleibt unsichtbar.
Im Programm habe ich standartmässig noch die Auswertung eventuell vorhandener OK- und Abbrechen-Schaltflächen (muß aber nicht sein.) eingefügt.
Mit dem Unterprogramm "Aktiviere_Textfeld" kann innerhalb des Makros an geeigneter Stelle das Textfeld sichtbar gemacht werden. Ein eventuell vorhandener Inhalt bleibt immer erhalten.
Generell:
Object.Visible=False '...Object unsichtbar
Object.Visible=True '...Object sichtbar
OHNE Beeinflussung des Inhalts des Objectes !!
Wolf