Eine übersichtliche Benutzeroberfläche spart dem Anwender Zeit: Wenn neben dem Text einer Option ein verständliches Symbol erscheint — die Flagge eines Landes, das Logo eines Zahlungsdienstleisters, ein farbiger Statusindikator —, dauert die Auswahl des richtigen Punkts Sekunden statt mühsamem Entschlüsseln nüchterner Zeilen. Genau für solche Szenarien wurde in die Komponentensammlung FastEditors VCL, die Bestandteil von FastReport VCL Ultimate, hinzugefügt: das neue Steuerelement — TfrImageComboBox.
TfrImageComboBox — ist ein Editor mit einer Dropdown-Liste, dessen jeder Eintrag einen Schlüsselwert, ein Bild aus TImageList und eine Textbeschriftung kombiniert. Ein direktes Gegenstück in der Standardkomponentenpalette gibt es nicht. Die Komponente unterstützt die horizontale Ausrichtung der Bilder sowie verschiedene Varianten der Verschiebung des Textes in horizontaler und vertikaler Richtung — sowohl in den Listeneinträgen als auch im Editorfeld.
In diesem Artikel gehen wir ausführlich auf die Eigenschaften und Ereignisse der Komponente ein, zeigen typische Anwendungsszenarien in der Benutzeroberfläche und geben ein Schritt-für-Schritt-Beispiel, mit dem Sie noch heute loslegen können.
Â
Â
Die Komponente ImageComboBox ist in der IDE auf der Palette von FastEditors VCL verfĂĽgbar und dient zur Auswahl von Bildern mit Textbeschriftungen aus einer Dropdown-Liste sowie zur anschlieĂźenden Anzeige im Editorfeld.
Die wichtigsten Funktionen von TfrImageComboBox:
Betrachten wir die wichtigsten Eigenschaften, die diese Komponente von den anderen Editoren der FastEditors-VCL-Sammlung unterscheiden.
Â
Â
Value — der aktuelle Schlüsselwert des ausgewählten Listeneintrags. Sie können hier einen Wert vom Typ Variant speichern; wenn die Komponente diesen Wert in der Eintragsammlung findet, zeigt sie automatisch das entsprechende Bild und die Beschriftung im Editorfeld an. Wird der ImageComboBox innerhalb einer Zelle der FastGrid-Komponente verwendet, wird als Value automatisch der Wert dieser Zelle eingesetzt.
ItemIndex — der Index des ausgewählten Eintrags der Dropdown-Liste. Entspricht der Wert Value keinem der Schlüsselwerte der Listeneinträge, ist diese Eigenschaft gleich -1.
Selected — die Eigenschaft, die den ausgewählten Listeneintrag vom Typ TfrImageComboBoxItem enthält.
Properties.AutoDropDown — bestimmt, ob die Dropdown-Liste automatisch angezeigt werden kann, wenn der Benutzer beginnt, Text im Editorfeld einzugeben.
Properties.DropDownCount — die maximale Anzahl der Zeilen, die in der Dropdown-Liste angezeigt werden. Ist dieser Wert gleich 0, versucht die Komponente, so viele Listeneinträge anzuzeigen, wie auf den Bildschirmmonitor passen.
Properties.ShowDropdownWindow — bestimmt, ob die Anzeige der Dropdown-Liste der Einträge zulässig ist.
Properties.IncrementalFiltering — bestimmt, ob die Funktion der Suche und Filterung nach den Textbeschriftungen der Listeneinträge aktiviert ist.
Diese Eigenschaften bestimmen, was die Komponente anzeigt, wenn der Wert Value keinem der Listeneinträge entspricht:
Properties.Layout — ein Satz von Eigenschaften, der die Ausrichtung von Text und Bild im Editorfeld steuert.
Properties.DropdownItemLayout — ein Satz von Eigenschaften, der die Ausrichtung von Text und Bild in den Einträgen der Dropdown-Liste steuert.
Properties.DropDownWidth — die Breite der Dropdown-Liste. Ist sie gleich 0, hat die Dropdown-Liste dieselbe Breite wie die Komponente TfrImageComboBox selbst.
Properties.ImageMargin — der Abstand, der die Position des Bildes im Editorfeld und in der Dropdown-Liste steuert.
Properties.ItemHeight — die Höhe eines Listeneintrags. Bei einem Wert von 0 wird die Höhe automatisch berechnet. Wenn ein Listeneintrag jedoch manuell unter Verwendung des Ereignisses Properties.OnCustomDrawItem gezeichnet werden soll, ist es zweckmäßig, für diese Eigenschaft einen von 0 verschiedenen Wert festzulegen.
Properties.ItemImages — die ImageList-Komponente, die die Bilder für die Sammlung der Einträge der Dropdown-Liste enthält. Ist diese Eigenschaft gleich nil, werden keine Bilder angezeigt, aber die Möglichkeit, Text anzuzeigen, bleibt erhalten.
Properties.Items — die Sammlung der Einträge der Dropdown-Liste. Jeder Eintrag hat die folgenden Eigenschaften:
Â
Â
Properties.OnDropDown — das Ereignis, das beim Erscheinen der Eintragsliste ausgelöst wird.
Properties.OnCloseUp — das Ereignis, das beim Schließen der Eintragsliste ausgelöst wird.
Properties.OnCustomDrawItem — das Ereignis für das manuelle Zeichnen der Listeneinträge. Zum Beispiel:
procedure TForm1.frImageComboBox2PropertiesCustomDrawItem(Sender: TfrImageComboBoxCustomProperties; ACanvas: TfrCustomCanvas; AItemViewInfo: TfrImageComboBoxItemViewInfo; var DefaultDraw: Boolean); var LText: string; LTextRect: TRect; begin DefaultDraw := False; LText := 'Item ' + Sender.Items[AItemViewInfo.SourceItemIndex].Caption; LTextRect := AItemViewInfo.ItemRect; ACanvas.FillRect(LTextRect, clWhite); ACanvas.DrawFocusRect(LTextRect); ACanvas.DrawText(LTextRect, LText); end;
Diese Eigenschaften ermöglichen es, den visuellen Anzeigestil und das Verhalten getrennt für das Editorfeld und für die Dropdown-Liste anzupassen:
Â
In der Dropdown-Liste lassen sich Bilder anhand des Inhalts der zugehörigen Beschriftungen suchen und filtern: Beginnen Sie einfach, Text im Editorfeld einzugeben, und die Liste zeigt nur die übereinstimmenden Einträge an.
Â
Â
TfrImageComboBox ist besonders dort nützlich, wo die Auswahl aus einer Liste von einem visuellen Bild neben dem Text profitiert. Hier sind typische Elemente der Benutzeroberfläche, in denen die Komponente glänzt:
Â
Â
TfrImageComboBox lässt sich in wenigen Schritten in ein Projekt einbinden:
procedure TForm1.FormCreate(Sender: TObject); var I: Integer; LItem: TfrImageComboBoxItem; begin frImageComboBox1.BeginUpdate; try for I := 0 to 9 do begin LItem := frImageComboBox1.Properties.Items.Add; LItem.Caption := 'Item ' + IntToStr(I); LItem.ImageIndex := I; LItem.Value := I; end; finally frImageComboBox1.EndUpdate; end; end;
Und das war alles — die Komponente ist einsatzbereit.
Â
Â
TfrImageComboBox verwandelt die gewöhnliche Listenauswahl in ein übersichtliches und bequemes Element der Benutzeroberfläche. Bilder neben den Beschriftungen sehen vorteilhafter aus als die Zeilen eines Standard-TComboBox, und die Textfilterung der Dropdown-Liste macht die Suche nach der passenden Variante schnell und natürlich.
Fügen Sie dazu noch die flexible Anpassung des Erscheinungsbilds von Editorfeld und Liste, die Ereignisse für das manuelle Zeichnen der Einträge und die integrierte FastGrid-Unterstützung hinzu — und Sie erhalten ein vollwertiges Werkzeug für moderne Oberflächen von Geschäftsanwendungen: CRM, Aufgabenverfolgung, Kataloge und Überwachungssysteme.
Wenn Ihr Projekt eine saubere und moderne Optionsauswahl mit Symbolen und Beschriftungen benötigt — probieren Sie TfrImageComboBox aus der Sammlung FastEditors VCL aus. Für den Einstieg genügt es, die Komponente auf das Formular zu platzieren, die TImageList anzubinden und die Sammlung Items wie im obigen Beispiel zu füllen.