Dialoge bestehen aus Kontrollfeldern, die die eigentliche Eingabe unterstützen.
Folgende Kontrollfelder gibt es:
Schaltflächen ( CommandButton)
Schaltflächen sind da um einen bestimmten Befehl nach einem Mausklick durch den Anwender
auszuführen. Üblicherweise steht auf der Schaltfläche der Befehl.
OptionButtons
Ein OptionButton kann eigentlich immer nur zusammen mit mindestens einem weiteren
Optionbutton verwendet werden. Mehrere Optionbuttons werden zusammengefasst, um
zwischen ihnen eine eindeutige Auswahl zu ermöglichen.
Checkboxen
Ein Checkbox ist für die Abfrage von Ja/Nein-Werten gedacht. Sie sind damit eine Kurzfassung
von zwei Optionbutton.
Listboxen
Eine Listbox ist eine Liste von Einträgen aus denen der Anwender auswählen kann. Zum
Einen
stehen Eigenschaften in der IDE zur Verfügung zum Anderen noch Methoden des Objektes die
den Zugriff auf die Listenelemente ermöglichen.
Textfeld (Textfield)
Eingabefeld für Text/Zahlen
Kombinationsfeld
Das Kombinationsfeld ist der Listbox ähnlich. Das Feld stellt auch eine Liste zur
Auswahl zur
Verfügung. Aber mit einer entscheidenden Unterschied in dem Textfeld oberhalb der Liste kann
der Anwender eine neue Eingabe tätigen. Außerdem ist beim Kombinationsfeld keine
Mehrfachauswahl möglich.
Rahmen (FrameControll)
Rahmen in Dialogen haben zwar in Starbasic den Namen FrameControl, was darauf schließen
lassen könnte, dass sich mit diesen Objekt zusammenfassen lassen. Dies ist leider nicht
möglich. Ein Rahmenobjekt ist in Starbasic-Dialogen einfach nur eine Gestaltungsmittel. Zum
Beispiel kann man damit Gruppen von Optionbutton optisch hervorheben.
Beschriftungsfeld (Label)
Dieses ist ein Feld mit dem ein beliebiger Text im Dialog positioniert werden kann.
Obwohl in
der Maske im Dialogeditior "Titel" steht ist die Property "Label".
Grafisches Kontrollfeld (ImageControl)
Dieses Feld dient dazu um eine Grafik im Dialog anzuzeigen. Diese Grafik muss zur
Laufzeit
entsprechend der Pfadangabe zur Verfügung stehen.
Kontrollfelder können über ihren Namen angesprochen werden.
Nachdem der Dialog geladen worden ist, stehen die Kontrollfelder zur Verfügung. Und
können
mit GetControl zugewiesen werden.
DialogLibraries.LoadLibrary(
"Standard" )
MyDialog = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
MyControl=MyDialog.GetControl("Kontrollfeld")
Danach stehen unter dem Objekt MyControl die Eigenschaften und Methoden zur Verfügung.
Viele davon, vor allem die Wichtigsten, befinden sich im Service Model von MyControl.
Objektübersicht eines Kontrollfeldes
Es gibt einige Eigenschaften die alle Kontrollfelder haben. Die Wichtigsten hiervon
sind:
Eigenschaften von Kontrollfeldern
Name, Aktiviert,Seite(Step),Höhe,Breite,PositionX,PositionY,Zusatzinformationen,Hilftext,Hilfe
URL.
Name
In der Eigenschaft "Name" steht der eindeutige Name des Kontrollfeldes.
Mit diesem Namen
erfolgte der Zugriff auf dieses Kontrollfeld. Diesen Namen zu ändern macht nur Sinn wenn man
ein Kontrollfeld während der Laufzeit neu hinzufügt. Normalerweise wird der Name beim
Erstellen des Dialoges im Dialogeditor eingetragen. Der Name eines Kontrollfeldes muß
innerhalb eines Dialoges eindeutig sein. Dabei wird Groß- und Kleinschreibung unterschieden.
Die wesentliche Verwendung erfolgt beim Aufruf eines Kontrollfeldes über
Dialog.getControl(Name)
Aktiviert
Über den Schalter "Aktiviert", wird entschieden ob das Kontrollfeld aktiviert
oder nicht aktiviert
ist. Ein nicht aktiviertes Kontrollfeld kann nicht angesprochen und ist dann nur als hellgrauer
Schatten zu sehen. Die Eigenschaft im Model ist enabled.
MyControl.Model.enabled = true
Seite(Step)
Mit dieser Eigenschaften kann man Kontrollfelder bestimmten Dialogseiten zuordnen.
Dies
erfolgt in der Regel auch beim Gestalten eines mehrseitigen Dialoges. Näheres zu Erstellen
von mehrseitigen Dialogen steht
hier.
Zugriff über
MyControl.Model.Step=0
Reihenfolge
In der Reihenfolge (Tabindex) ist die Stelle des Kontrollfeldes innerhalb des Dialoges
hinterlegt.
Hat man zum Beispiel drei Eingabefelder, die hintereinander abgefragt werden sollen,
bekommen die drei fortlaufende Einträge in der Eigenschaft Reihenfolge. Diese Reihenfolge
entspricht auch der Bewegung innerhalb der Maske mit der Tabulator-Taste.
Höhe
Legt die Höhe des Objektes in Pixel fest.
MyControl.Model.Height = 15
Breite
Legt die Breite des Objektes in Pixel fest.
Starbasic: MyControl.Model.Width = 15
PositionX, PositionY
Mit diesen beiden Eigenschaften läßt sich das Kontrollfeld innerhalb des Dialoges
positionieren.
StarBasic: MyControl.Model.PositionX und MyControl.Model.PositionY
Zusatzinformation
Hier kann ein zusätzlicher Text hinterlegt werden. Zum Beispiel ein Kommentar zu dem
Kontrollfeld.
Starbasic: MyControl.Model.Tag
Hilfetext
Dies ist ein automatisch eingeblendeter Hilfetext, der angezeigt wird,
sofern der Mauszeiger über dem Steuerelement zum Stehen kommt.
HilfeUrl
Legt die ID-Nummer für den Zugriff auf die Online Hilfe fest. Damit wird eine bestimmte
Stelle in
der Online-Hilfe mit dem Kontrollfeld verbunden, die dann beim Drücken der F1-Taste
automatisch aufgerufen wird. Theorie! In der Praxis ist die Funktion nicht hinterlegt.
Zeichensatz
Mit der Eigenschaft Zeichensatz öffnet sich in der IDE ein Dialog mit den Schrifteinstellungen.
Innerhalb von Starbasic kann man diese Parameter ebenfalls ansprechen. Dafür steht die
Eigenschaft FontDesscriptor als Struktur zur Verfügung. Der Umgang mit Strukten bei
Objekten steht im Kapitel "Objekte und Strukturen"
'Anlegen des Strukturobjektes
Dim myFont As New com.sun.star.awt.FontDescriptor
'Zuweisen der Werte
MyFont.Name = "Arial"
MyFont.StyleName = "Fett"
MyFont.Height = 8
'Übergabe an Konrollfeld
MyControl.Model.FontDescriptor=MyFont
Drucken
Entscheidet ob ein Kontrollfeld beim Ausdrucken auf dem Papier mit gedruckt wird.
Dies ist
eine Eigenschaft die für Basicdialoge nicht wichtig ist. Man kann aber Kontrollfelder auch in
Dokumenten verwenden. Dort mach diese Eigenschaft dann einen Sinn. Man kann zu Beispiel
ein Dokument mit einer Schaltfläche versehen, die dann nicht mit gedruckt wird.
Starbasic: MyControl.Model.Printable = True
Tapstop
Mit Tapstop wird entschieden ob das Kontrollfeld mit der Tabtaste erreichbar ist.
Also ob es
innerhalb der Reihenfolge beim Sprung mit Tab- Taste beachtet oder ignoriert werden soll. Es
gibt zu jedem Kontrollfeld einen Standardwert. Zum Beispiel bei einer Schaltfläche ja und bei
einem Label nein.
Drehfeld
Drehfelder sind Eingabefelder, die sich noch zusätzlich mit Pfeiltasten einstellen
lassen. Sie
machen nur bei Zahlen und Datums/Zeit- Eingaben einen Sinn.
Starbasic: MyControl.Model.Spin = true / false
Nur Lesen
Der Inhalt des Steuerelementes ist schreibgeschützt. Er kann also nicht geändert werden.
Dies
kann für Datenfelder, die nicht geändert werden dürfen, interessant sein. Außerdem besteht auf
die Daten Zugriff um diese zum Beispiel zu markieren und zu kopieren.
StarBasic: MyControl.Model.Readonly=True / False