Seite 1 von 1
Re: Dialog ausblenden
Verfasst: Mi, 10.06.2009 15:37
von komma4
Hallo Thomas,
ich habe so etwas noch nicht probiert ... aber warum willst Du in Calc etwas eingeben ... nehme es im Dialog an und schreibe es in die Calc-Datei, ohne den Dialog zu verlassen.
Nach .endExecute() ist der Dialog und alle seine Eingaben weg...
Re: Dialog ausblenden
Verfasst: Mi, 10.06.2009 16:11
von ykcim
Hallo Winfried,
sorry aber es stimmt nicht ganz. Endexecute löscht den Dialog nicht.
Nach endExecute stehen die Inhalte des Dialoges weiter zu Verfügung. Erst mit dialog.dispose() wird er gelöscht.
Beispiel:
Code: Alles auswählen
Dim MyDlg as Object
sub calldlg
Dialoglibraries.Loadlibrary("Standard")
MyDlg= CreateUnoDialog(Dialoglibraries.Standard.Dialog1)
MyDlg.execute()
end sub
sub schliessenbutton
MyDlg.endexecute()
MyControl=MyDlg.GetControl("TextField2")
MyText = MyControl.Model.Text
msgbox mytext
end sub
Aber ein erneuter Aufruf des Dialoges aus Calc mit den Daten geht leider trotzdem nicht.
mfg
Michael
Re: Dialog ausblenden
Verfasst: Mi, 10.06.2009 16:20
von keksi1970
hi,
eine ungetestete Idee :
den Dialog mit "myDlg.visible = true" wieder einblenden.
teste ich aber erst heute abend.
Also im Endeffekt nicht neu Aufrufen, sondern nur neu anzeigen.
LG
Andreas
Re: Dialog ausblenden
Verfasst: Mi, 10.06.2009 16:45
von turtle47
Hallo Zusammen,
nach meinen Informationen bleibt eine global definierte Variable auch über die Laufzeit eines Makros bestehen.
Wenn mann folgenden Code verwendet dann wird der zuletzt verwendete Inhalt bei erneutem Aufruf des Dialogs wieder in das Textfeld geschrieben. Es setzt natürlich voraus, dass der Dilog über "
sub schliessenbutton" beendet wird!
Mein Test war erfolgreich.
Code: Alles auswählen
Dim MyDlg as Object
Global MyText as string
sub calldlg
Dialoglibraries.Loadlibrary("Standard")
MyDlg= CreateUnoDialog(Dialoglibraries.Standard.Dialog1)
MyControl=MyDlg.GetControl("TextField1")
MyControl.Model.Text = mytext
MyDlg.execute()
end sub
sub schliessenbutton
MyControl=MyDlg.GetControl("TextField1")
MyText = MyControl.Model.Text
MyDlg.endexecute()
end sub
Jürgen