Dialog ausblenden

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Dialog ausblenden

Beitrag 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...
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Re: Dialog ausblenden

Beitrag 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
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
keksi1970
*****
Beiträge: 464
Registriert: So, 27.01.2008 11:47
Wohnort: DU

Re: Dialog ausblenden

Beitrag 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
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Dialog ausblenden

Beitrag 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
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Antworten