Die Klasse Select (gb.qt4) stellt drei Konstanten (→ Tabelle 20.9.1.1) zur Festlegung der Mode-Eigenschaften vieler Komponenten zur Verfügung. Zu diesen Komponenten gehören:
ColumnView, DateBox, DateChooser, FileView, GridView, IconView, LCDNumber, ListBox, ListView, Stat, TableView, TreeView und _TreeView.
Select | Konstante | Beschreibung |
---|---|---|
None | 0 | Für die gewählte Komponente ist keine Auswahl von von Elementen möglich. |
Single | 1 | Die Komponente ermöglicht die Einfachauswahl (Default). |
Multiple | 2 | Eine Mehrfachauswahl ist für die gewählte Komponente bei gedrückter CTRL-Taste oder SHIFT-Taste (Block) möglich. |
Tabelle 20.9.1.1: Konstanten der Klasse Select
Im vorgestellten Projekt werden zwei Konstanten (Select.Single und Select.Multiple) eingesetzt, um die Auswahlmöglichkeiten von Dateien in der Komponente FileView festzulegen:
Abbildung 20.9.2.1: Mode: Select.Single
Abbildung 20.9.2.2: Mode: Select.Multiple
Hinweise:
Der Quelltext ist überschaubar und wird daher komplett angegeben:
' Gambas class file Private myStatusbar As Statusbar Public Sub Form_Open() FMain.Center FMain.Resizable = False DirView1.Root = User.Home txbDirectory.Text = DirView1.Current txbFile.Clear Timer1.Delay = 1000 Timer1.Start myStatusbar = New Statusbar(Me) myStatusbar.Add(0.3, Format$(Now, "dddd, dd/mm/yyyy hh:nn:ss")) ' 0.3 → 30% der StatusBar-Breite myStatusBar.SetBackground(0, &HEFFFDF) myStatusBar.SetForeground(0, &H000000) myStatusbar.SetToolTip(0, "Datum&Zeit") myStatusbar.SetAlignment(0, Align.Center) myStatusbar.Add(0.3, "Select-Mode: Select.Single") ' Starteinstellung myStatusBar.SetBackground(1, &HFFFFDF) myStatusbar.SetAlignment(1, Align.Center) ' Die Feldlänge wird beim letzten Feld automatisch gesetzt → 0 eintragen myStatusbar.Add(0, "Programm-Version = " & Application.Version) myStatusBar.SetBackground(2, &HEFFFDF) myStatusbar.SetAlignment(2, Align.Center) btnFileSelectMode.Picture = Picture["Symbols/multiple.png"] btnFileSelectMode.Value = False End ' Form_Open() Public Sub Timer1_Timer() myStatusbar.SetText(0, Format$(Now, "dddd, dd/mm/yyyy hh:nn:ss")) End ' Timer1_Timer() : Aktuelle Zeit im Panel 0 der StatusBar anzeigen Public Sub DirView1_Select() FileView1.Dir = DirView1.Current txbDirectory.Text = DirView1.Current txbFile.Clear FileView1.Mode = Select.Multiple lblFile.Text = "Dateiliste: " txbFile.Clear End ' DirView1_Select() Public Sub FileView1_Click() Dim sElement As String txbFile.Clear txbFile.Text = "| " If FileView1.Mode = Select.Single Then txbFile.Text = DirView1.Current &/ FileView1.Current Else For Each sElement In FileView1.Selection ' FileView1.Selection = Array mit den ausgewählten Dateien txbFile.Text &= sElement & " | " Next ' sElement Endif ' FileView1.Mode = Select.Single ? End ' FileView1_Click() Public Sub btnFileSelectMode_Click() If btnFileSelectMode.Value = True Then ' Wenn True, dann ist Select.Multiple aktiv btnFileSelectMode.Picture = Picture["Symbols/single.png"] btnFileSelectMode.Tooltip = "Umschalten auf Select-Mode 'Single'" FileView1.Mode = Select.Multiple lblFile.Text = "Dateiliste: " txbFile.Clear myStatusbar.SetText(1, "Select-Mode: Select.Multiple") Else btnFileSelectMode.Picture = Picture["Symbols/multiple.png"] btnFileSelectMode.Tooltip = "Umschalten auf Select-Mode 'Multiple'" FileView1.Mode = Select.Single lblFile.Text = "Dateipfad: " If FileView1.Selection.Count > 0 Then txbFile.Text = DirView1.Current &/ FileView1.Selection[0] Endif ' FileView1.Selection.Count > 0 ? myStatusbar.SetText(1, "Select-Mode: Select.Single") Endif ' btnSelectMode.Text = " Select.Single" ? End ' btnFileSelectMode_Click() Public Sub btnClose_Click() FMain.Close End ' btnClose_Click() Public Sub Form_Close() myStatusBar.Delete() End ' Form_Close()