| Startseite | Inhalt
StarBasic / OpenOffice.org Basic FAQ
Fragen und Infos: starbasic@dannenhoefer.de

Zurück Vor |
| 4.1.3 Wie kann man Dialoge während der Eingabe manipulieren?
Man kann die Ereignisse von Kontrollfeldern abfragen und entsprechende Makros starten. Mit diesen kann man auch den Dialog selber ändern. Die Ereignisse eines Kontrollfeldes sind bei den Eigenschaften eines Kontrollfeldes zu finden. Als Beispiel verwende ich hier eine Checkbox. Wir werden jetzt den Status der Checkbox prüfen und dem Status entsprechend Änderungen im Dialog durchführen. Als Erstes ist es wichtig den Dialog öffentlich zu deklarieren damit alle Routinen auf das Object zugreifen können. Die erste Routine startet den Dialog. Public myDlg as Object sub test_dialog doc = thiscomponent dlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1) dlg.Execute() end sub Das folgende Makro ist mit dem Ereignis "Status geändert" der Checkbox verknüpft. sub checkboxchange msgbox "Der Status wurde geändert" end sub Klickt man jetzt die Checkbox an, erscheint die Meldung. Anstatt der Meldung kann man aber auch andere Kontrollfelder manipulieren. Im Beispiel fügen wir jetzt dem Dialog ein Textfeld hinzu, das nur zu sehen ist und Eingaben zuläßt wenn die Checkbox aktiviert ist. Um das Textfeld nicht sichtbar zu machen muss das Textfeld vor dem Start des Dialoges eingestellt (visible=false) werden. sub test_dialog doc = thiscomponent dlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1) ctl = dlg.getControl("TextField1") ctl.visible=true dlg.Execute() end sub Danach kann man diesen Parameter in der Routine zu Checkbox ändern. Dabei wird der Status der Checkbox ( 0/1) abgefragt und entsprechend reagiert. sub checkboxchange ctlcheck=dlg.getControl("CheckBox1") ctl = dlg.getControl("TextField1") if ctlcheck.model.State=1 then ctl.visible=true else ctl.visible=false end if end sub Dieses Beispiel läßt sich auf alle anderen Manipulationen eines Kontrollfeldes ableiten. Einzig die Größe des Dialoges kann man nicht ändern. |
Seitenanfang |

2003 - 2009 von Michael Dannenhöfer |
Letzte Aktualisierung: 06.04.2009