View
108
Download
1
Category
Preview:
Citation preview
List und Combo Boxen
© 1999 TMN-Systemberatung GmbH
Grundsätzliches
List und Combo Boxen sind sich im Aufbau sehr ähnlich und wurden bzgl. Datenquellen und Handling aneinander angepaßt.
Beide Elemente sind nur im Ansatz objektorientiert, sie sind keine Container Objekte
List und Combo Boxen sind sehr komplexe Controls mit unzähligen Möglichkeiten
List und Combo Boxen sind dumm! Ohne Programmierung führen diese keinerlei zu erwartende Aktion selbständig aus.
© 1999 TMN-Systemberatung GmbH
Einsatz der Boxen
Listbox– Darstellung mutipler Inhalte– Sortieren der Eintragsreihenfolge über Moverbars– Auswahl mehrerer Elemente
Combo Box– Platzsparende Darstellung mutipler Inhalte – Auswahl aus einer Wertliste mit der Möglichkeit
neue Werte einzugeben. Kombination aus Liste und TextBox.
© 1999 TMN-Systemberatung GmbH
RowSource Type-Datenquelle
0 - keineWerte von per AddItem / AddListItem zuordnen
1 - Values Hier geben Sie eine komplette Liste mit den Werten (Komma getrennt) an. Die Sorted Eigenschaft kann verwendet werden
2 - AliasTabelle oder View Diese Einstellung positioniert in der Tabelle,
wenn Sie die Selektion in der Box ändern ! 3 - SQL-Statement
SELECT ... INTO Cursor da Sie sonst ein Browse Fenster erhalten. Diese Einstellung positioniert im Cursor, wenn Sie die Selektion in der Box ändern !Achtung: angelegte Cursor werden NICHT automatisch geschlossen.
© 1999 TMN-Systemberatung GmbH
RowSource Type-Datenquelle
4 - Query VFP Abfrage 5 - Array Anzeige eines gefüllten Arrays 6 - Feldliste
Diese Einstellung positioniert in der Tabelle, wenn Sie die Selektion in der Box ändern ! Achtung: Wenn Sie mehrere Felder benötigen, so darf der Alias nur vor dem ersten Feld stehen ! Bsp.: Customer.Name,Vorname, Telefon
7 - DateienSehr guter Aufbau, um Files zu selektieren ABER: Es werden keine Pfade sondern nur Dateinamen zurückgegeben
8 - DBF-StrukturHiermit kann man sich schnell die Struktur eine Tabelle anzeigen lassen.
(9 - Popup) Anzeige eines Popups
© 1999 TMN-Systemberatung GmbH
Spezielle Properties / Events
Combo Box– Style 0 Dropdown Combo– Drop Down Event– Einige Eigenschaften, die TextBox typisch sind
Bsp.: Backcolor, ForeColor....
List Box:– Mover Bars– MultiSelect
© 1999 TMN-Systemberatung GmbH
ListIndex und ListItem (1)
Die Boxen unterscheiden bei Zugriffen auf die Werte zwischen Index und Item. Index bezieht sich dabei immer auf die optische Reihenfolge, während Item sich auf eine eindeutige Identifikationsnummer bezieht.
ListIndex (Datentyp "N")– Nummer des aktuellen Eintrags (bezogen auf die optische
Reihenfolge der Einträge)
ListItemId (Datentyp "N")– eindeutige Identifikationsnummer (unabhängig von der optischen
Reihenfolge)
© 1999 TMN-Systemberatung GmbH
ListIndex und ListItem (2)
Mit den Methoden ItemToIndex und IndexToItem können Sie die beiden Werte umrechnen.
Die Properties auf welche mittels Index bzw. Item zugegriffen wird haben Array ähnliches verhalten. Es kann aber nicht mit Array Befehlen zugegriffen werden.
© 1999 TMN-Systemberatung GmbH
DisplayValue
(Datentyp "N" oder "C")
Inhalt der ersten Spalte bzw. bei ComboBox mit Style 0 Inhalt des Eingabebereiches
© 1999 TMN-Systemberatung GmbH
Value
(Datentyp "N" oder "C") aktueller Eintrag: Standardmäßig zeigen Ihnen die Value
und die DisplayValue Eigenschaft denselben Wert an. Dies entspricht nämlich dem Wert in der 1. Spalte der Box.
Wenn Sie Value mit einem numerischen Wert initialisieren, so zeigt Ihnen die Value Eigenschaft ab dann immer die Zeilennummer des gewählten Eintrags an.
Alle Werte werden als Character Werte behandelt, das Zurückschreiben in z.B. numerische Felder über die ControlSource wird hierbei aber gewährleistet !
© 1999 TMN-Systemberatung GmbH
Methoden und Properties
Index-Zugriff: arbeitet mit "Index“ AddItem IndexToItem ItemData List ListIndex NewIndex Picture RemoveItem Selected TopIndex
ID-Zugriff: arbeitet mit "ItemId" AddListItem Methode ItemToIndex Methode ItemIdData Prop. Array ähnlich ListItem Prop. Array ähnlich ListItemId Property NewItemId Property <keine Entsprechung> RemoveListItem Methode SelectedId Prop. Array ähnlich TopItemId Property
© 1999 TMN-Systemberatung GmbH
Zugriff auf Einträge
Index-Zugriff: arbeitet mit "Index" ItemData List Picture Selected
ID-Zugriff: arbeitet mit "ItemId" ItemIdData ListItem <keine Entsprechung> SelectedId
© 1999 TMN-Systemberatung GmbH
Properties für Mehrspaltigkeit
ColumnCount Anzahl der Spalten ColumnLines Trennlinien anzeigen ? ColumnWidth Spaltenbreite
jeweils mit Komma getrennt. Zum verstecken von Spalten 0
verwenden
BoundColumn welche Spalte steuert das Value DisplayValue zeigt immer erste Spalte an!
© 1999 TMN-Systemberatung GmbH
SORTED - Sortierung in der Listbox nur mit RowSourceType 0 - None und 1 - Value. SORTED auf .T. stellen, bewirkt ein sortiertes
Darstellen der Werte in der Listbox. die Sortierung kann durch MoverBars bzw.
explizites Hinzufügen von Einträgen mit AddItem/AddListItem gestört werden (obwohl Sorted = .T. bestehen bleibt)
eine erneute Zuweisung "Sorted = .T." bewirkt ein neuerliches Sortieren
© 1999 TMN-Systemberatung GmbH
SORTED - Sortierung in der Listbox Sorted hat teilweise Probleme mit mehrspaltigen
Listboxen Wir empfehlen daher: Wenn möglich die Daten
vorher sortieren und dann schon sortiert einstellen
© 1999 TMN-Systemberatung GmbH
Moverbars in Listboxen
nur mit RowSourceType 0 - None und 1 - Value. bei MoverBars = .T. kann die ListBox per Maus
umsortiert werden
© 1999 TMN-Systemberatung GmbH
Multiselect - Mehrfachauswahl
Multiselect auf .T. stellen Nur die SELECTED und SELECTEDID
Properties zeigen an ob ein Eintrag selektiert ist.Das Abfragen welche Einträge selektiert sind muß selbst programmiert werden.
© 1999 TMN-Systemberatung GmbH
Bitmaps in Boxen
PICTURE( ListIndex ) = "xyz.bmp" bewirkt die Anzeige der entsprechenden Bitmap links neben der ersten Spalte einer Box
bei der ComboBox werden die BMPs nur in der aufgeklappten Liste angezeigt
fehlende BMPs erzeugen keinen Fehler GENERAL-Felder können im Widerspruch zur
Dokumentation nicht verwendet werden
© 1999 TMN-Systemberatung GmbH
Wichtige Events im Zusammenhang mit Boxen
Click DblClick InteractiveChange ProgrammaticChange Valid When
© 1999 TMN-Systemberatung GmbH
Click-Event
wird aktiviert– bei Mausclick– beim tastaturgesteuerten "Wandern" in einer Listbox mit den
Cursor-Tasten– (nicht dagegen bei HOME, END, PgUp, PgDn!)– beim "ENTER"-Drücken in aufgeklappter ComboBox
wird nicht aktiviert:– bei Klick in den ScrollBar– bei Klick in nicht belegte Teile einer Listbox
wird doppelt aktiviert– (in bestimmten Konstellationen)
© 1999 TMN-Systemberatung GmbH
DblClick-Event
wird aktiviert– bei Maus-Doppelclick– beim "ENTER"-Drücken in einer ListBox
ACHTUNG: Bei TabStop = .T. verliert die ListBox in diesem Fall den Eingabefocus!
wird nicht aktiviert:– in der ComboBox (Ausnahme: Doppelclick im
Eingabebereich bei Style 0)– bei Klick in nicht belegte Teile einer Listbox
wird doppelt(!) aktiviert– (in bestimmten Konstellationen)
© 1999 TMN-Systemberatung GmbH
InteractiveChange-Event
wird aktiviert, wenn ein anderer als der gerade aktive Eintrag zum aktuellen Eintrag gemacht wird
– durch Mausclick auf einen anderen als den aktiven Eintrag– durch Tastatur-Navigation
wird nicht aktiviert:– bei Klick in den ScrollBar– bei Klick in nicht belegte Teile einer Listbox
bei MultiSelect = .T. auch beim Deselektieren des Eintrags
© 1999 TMN-Systemberatung GmbH
ProgrammaticChange-Event
wird aktiviert, wenn der Wert einer Box per Programm geändert wird (Value Eigenschaft)
Es empfiehlt sich in der Regel den ProgrammaticChange Event an den InterActiveChange Event weiterzureichen.
© 1999 TMN-Systemberatung GmbH
Valid-Event
wird aktiviert:– bei Mausclick (Auswahlliste der ComboBox)– bei Maus-Doppelclick (ListBox)– beim "ENTER"-Drücken (List-/ComboBox; die ListBox und
eine nicht aufgeklappte ComboBox verliert bei TabStop=.T. in diesem Fall den Focus!)
wird nicht aktiviert:– bei Mausclick in ListBox– bei Tastatur-Navigation in aufgeklappter ComboBox
© 1999 TMN-Systemberatung GmbH
When-Event
wird aktiviert:– beim Aktivieren einer List- oder ComboBox– als letzter Event bei Mausklick oder Tastatur-Navigation in
der ListBox (außer bei Mausclick auf den aktiven Eintrag!)– als letzter Event bei Mausklick oder "ENTER"-Drücken in
der aufgeklappten ComboBox– beim "ENTER"-Drücken (ListBox und nicht aufgeklappte
ComboBox bei TabStop=.F.)
© 1999 TMN-Systemberatung GmbH
Wie verwende ich die Boxen
Bei reiner Anzeige ohne Sorted, Mover können Sie bedenkenlos alle RowSourceTypes verwenden.
Wenn Sie Movers, Sorted verwenden oder aber Einträge Hinzufügen oder Entfernen möchten so empfehlen wir ihnen RowSourceType 0 - None und das Arbeiten über die ID´s. – Hierzu können Sie sich dann eine eigene Klasse mit
der gewünschten Grundfunktionalität bauenBsp.: Alle Einträge in Array stellen, Listbox aus Array füllen.....
© 1999 TMN-Systemberatung GmbH
Wie verwende ich die Boxen
Auch bei den Combos sollten Sie sich eine Klasse bauen. – Gerade die Funktionalität neue Werte einzutragen
und diese sofort in der Liste zur Verfügung zu haben sollten Sie nicht jedesmal neu programmieren.
Ansonsten geht bei den Combos probieren über studieren
© 1999 TMN-Systemberatung GmbH
Zusammenfassung
Einsatz der Boxen Row Source Type Spezielle Properties und Events Methoden und Properties Zugriff auf Einträge Properties für Mehrspaltigkeit InterActive und ProgrammaticChange Valid When
© 1999 TMN-Systemberatung GmbH
Anregungen und Fragen
TMN-Systemberatung GmbH
Allee 62
74072 Heilbronn
http://www.tmn-systemberatung.de
info@tmn-systemberatung.de
Recommended