====== TFilterComboBox — Dateifilter zum Auswählen ====== Eine [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]], die einen **Filtertext im Delphi-Format** in Einträge zerlegt („Textdateien (*.txt)%|%*.txt%|%Alle%|%*“) und die gewählte Maske an eine [[lyx_-_programmiersprache:vega:controls:tfilelistbox|TFileListBox]] weiterreicht. Unit: ''vega.filectrls'' · Basis: [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] → [[lyx_-_programmiersprache:vega:controls|Alle Steuerelemente]] · [[lyx_-_programmiersprache:vega:klassenbaum|Klassenbaum]] · [[lyx_-_programmiersprache:vega:guides:komponenten|Guide: Komponenten]] ---- ===== Vererbung ===== **Kette:** [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] → [[lyx_-_programmiersprache:vega:controls:tcontrol|TControl]] → [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] → **TFilterComboBox** **Direkte Nachfahren:** keine — diese Klasse wird nicht weiter abgeleitet. **Quelle:** ''vega/filectrls.lyx'' ---- ===== Verwendung ===== var fc: TFilterComboBox := new TFilterComboBox(); fc.SetBounds(8, 260, 200, 24); fc.SetFilter("Textdateien (*.txt)|*.txt|Alle Dateien|*"); fc.FileList := dateiliste; // bekommt die Maske fc.SetParent(f); ---- ===== Besonderheiten ===== * **Der Filtertext hat zwei Teile je Eintrag**: Anzeigename und Muster, mit einem senkrechten Strich getrennt. Die Liste zeigt den Namen, weitergegeben wird das Muster. * **''FileList'' ist die Kopplung** — ohne sie liefert die Auswahl nur ''OnFilterChange'', und das Programm setzt die Maske selbst. ---- ===== Eigenschaften ===== Alle Eigenschaften, auch die geerbten. ^ Name ^ Typ ^ Bedeutung ^ Herkunft ^ | ''ComponentState'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Zustand als Bitmaske (''csLoading'', ''csDestroying'' …) | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''ComponentStyle'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Stil als Bitmaske; Vorgabe ''csInheritable'' | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Name'' | [[lyx_-_programmiersprache:sprache:datentypen#8_zeiger|pchar]] | Name der Komponente — für ''FindComponent'' und beim Laden aus LFM | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''OwnedComponents'' | [[lyx_-_programmiersprache:vega:controls:tobjectlist|TObjectList]] | Die Komponenten, die DIESER gehoeren. Delphis Components[]. Zeigerliste, keine Kopien: TObjectList hält int64-Adressen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Owner'' | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | Wer diese Komponente wegraeumt. Nicht der Elternteil im Zeichenbaum — das ist bei TControl `Parent` | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Tag'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Freier Wert für eigene Zwecke; die Bibliothek fasst ihn nicht an | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''AutoComplete'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Beim Tippen den ersten passenden Eintrag ergaenzen | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''AutoDropDown'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Beim Tippen die Liste aufklappen | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''DropDownCount'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Wieviele Zeilen die aufgeklappte Liste hoechstens zeigt | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''DroppedDown'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Ob die Liste gerade aufgeklappt ist | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''Editor'' | [[lyx_-_programmiersprache:vega:controls:tedit|TEdit]] | Das Eingabefeld der tippbaren Fassung. Bei CS_DROPDOWNLIST bleibt es unsichtbar stehen — es wird einmal gebaut und nicht bei jedem Stilwechsel neu | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''ItemIndex'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Ausgewählter Eintrag, ''-1'' = keiner | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''Items'' | [[lyx_-_programmiersprache:vega:controls:tstringlist|TStringList]] | Kind Nummer ''i'' | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''Sorted'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Wie in Delphi: Text ist das, was im Feld steht. Bei einer reinen Auswahlliste ist das der gewaehlte Eintrag; später, wenn die Liste auch tippbar wird, kann es davon abweichen | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''Style'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Auswahlliste oder tippbares Feld | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''TopIndex'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Erster sichtbarer Eintrag | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''FileList'' | [[lyx_-_programmiersprache:vega:controls:tfilelistbox|TFileListBox]] | Die Dateiliste, die mitwandert | eigen | | ''Filter'' | [[lyx_-_programmiersprache:vega:controls:ttextbuffer|TTextBuffer]] | Filtertext im Delphi-Format | eigen | ---- ===== Methoden ===== Alle Methoden, auch die geerbten. ^ Signatur ^ Zweck ^ Herkunft ^ | ''ClearState(bits: int64): void'' | Zustandsbits löschen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''ComponentCount(): int64'' | Anzahl der eigenen Komponenten | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''ComponentIndex(): int64'' | Delphis ComponentIndex: der eigene Platz in der Liste des Besitzers | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Components(index: int64): TComponent'' | Eigene Komponente an dieser Stelle | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Destroy(): void'' | Raeumt die eigene Liste ab, aber NICHT die Einträge — welche Komponenten ihre Besitztuemer mitnehmen, entscheidet die Ableitung über DestroyComponents() | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''DestroyComponents(): void'' | Baut die Besitztuemer ab. Von hinten, weil jedes Destroy() sich selbst aus der Liste austraegt | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''FindComponent(name: pchar): TComponent'' | Sucht unter den EIGENEN Komponenten, eine Ebene tief — wie in Delphi | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''GetName(): pchar'' | Namen lesen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''GetNamePath(): pchar'' | Der eigene Name. Delphi hängt bei Unterkomponenten den des Besitzers davor; Vega hat keine, also ist es der Name selbst | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''GetTag(): int64'' | ''Tag'' lesen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''HasState(bits: int64): bool'' | Sind diese Zustandsbits gesetzt | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''InitComponent(): void'' | Kein Konstruktor: lyxc vererbt Konstruktoren nicht, jede Ableitung ruft InitComponent() im eigenen Create() | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''InsertComponent(c: TComponent): void'' | Komponente in Besitz nehmen; ein bisheriger Besitzer gibt sie ab | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''RemoveComponent(c: TComponent): void'' | Komponente aus dem Besitz nehmen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''SetName(v: pchar): void'' | Setzt ''Name'' | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''SetState(bits: int64): void'' | Zustand setzen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''SetTag(v: int64): void'' | Setzt ''Tag'' | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Add(s: pchar): int64'' | Einen Eintrag aufnehmen; mit Sorted an der richtigen Stelle | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''ButtonWidth(): int64'' | Breite des Aufklapp-Knopfes rechts | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''Clear(): void'' | Delphis Clear leert den TEXT, nicht die Liste — dafuer gibt es ClearItems | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''ClearItems(): void'' | Alle Einträge entfernen | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''CloseUp(): void'' | Liste zuklappen | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''Count(): int64'' | Zahl der Einträge | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''Create(): void'' | Anlegen; ''new TFilterComboBox()'' | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''Delete(index: int64): void'' | Eintrag entfernen | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''Destroy(): void'' | Gibt eigene Ressourcen frei | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''DropDown(): void'' | Liste aufklappen | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''DropHeight(): int64'' | Höhe der aufgeklappten Liste | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''DropIndexAt(y: int64): int64'' | Zeile unter einer Position in der aufgeklappten Liste, oder VEGA_NO_ITEM | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''DropRect(): TRect'' | Das Rechteck der aufgeklappten Liste, in eigenen Koordinaten. Es liegt UNTER dem Control. Einmal ausgerechnet, weil Zeichnen und Treffertest sonst zwei Rechnungen für dasselbe Rechteck … | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''Editable(): bool'' | Ob der Text bearbeitet werden darf | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''FindPrefix(prefix: pchar, ab: int64): int64'' | Ersten Eintrag mit diesem Anfang suchen. -1, wenn keiner passt | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''ItemHeight(): int64'' | Höhe eines Eintrags | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''MaxLength(): int64'' | Liest ''MaxLength'' | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''SelLength(): int64'' | Länge der Auswahl, in Zeichen | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''SelStart(): int64'' | Anfang der Auswahl, in Zeichen | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''SelTextTo(dst: TTextBuffer): void'' | Schreibt den ausgewählten Text nach ''dst'' | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''SelectAll(): void'' | Alles auswählen | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''Selected(): pchar'' | Die gewählte Farbe | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''SetMaxLength(v: int64): void'' | Setzt ''MaxLength'' | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''SetSelText(s: pchar): void'' | Ersetzt die Auswahl durch ''s'' | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''SetSelection(start: int64, laenge: int64): void'' | Auswahl auf ''start'' mit ''laenge'' setzen | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''SetSorted(v: bool): void'' | Setzt ''Sorted'' | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''SetStyle(v: int64): void'' | Setzt ''Style'' | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''SetText(s: pchar): void'' | Den Text im Feld setzen. Trifft er einen Eintrag, wandert auch die Auswahl mit — so wie Delphi es bei einer Zuweisung an Text macht | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''SetTextHint(s: pchar): void'' | Setzt den Platzhaltertext für das leere Feld | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''Text(): pchar'' | Der Text im Feld — bei einer Auswahlliste der gewaehlte Eintrag, bei der tippbaren Fassung das, was dort steht | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''Create(): void'' | Anlegen; ''new TFilterComboBox()'' | eigen | | ''Destroy(): void'' | Gibt eigene Ressourcen frei | eigen | | ''MaskOf(index: int64): pchar'' | Muster des Eintrags Nummer ''i'' | eigen | | ''SelectedMask(): pchar'' | Muster des gewählten Eintrags | eigen | | ''SetFileList(fl: TFileListBox): void'' | Setzt ''FileList'' | eigen | | ''SetFilter(s: pchar): void'' | Den Filtertext zerlegen: abwechselnd Beschriftung und Muster | eigen | ---- ===== Ereignisse ===== ^ Name ^ Typ ^ Wann ^ Herkunft ^ | ''OnChange'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TNotifyEvent]] | Feuert bei jeder Änderung der Auswahl — Delphi trennt hier zwischen OnChange (Text) und OnSelect (Klick in der Liste). Beides zu haben ist wichtiger als die feine Unterscheidung | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''OnCloseUp'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TNotifyEvent]] | Die Liste wurde zugeklappt | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''OnDrawItem'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TDrawItemEvent]] | Selbst gezeichnete Einträge — auch für den geschlossenen Teil, der dann ODS_COMBOBOXEDIT im Zustand hat. 0 = die Vorgabe zeichnet | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''OnDropDown'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TNotifyEvent]] | Die Liste wurde aufgeklappt | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''OnSelect'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TNotifyEvent]] | Ein Eintrag wurde ausgewählt | [[lyx_-_programmiersprache:vega:controls:tcombobox|TComboBox]] | | ''OnFilterChange'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TNotifyEvent]] | Ein anderer Filter wurde gewählt | eigen | ---- Letzte Aktualisierung: 2026-09-05 — Seite neu angelegt; erhoben aus ''vega/filectrls.lyx'' im Repo ''lyx-vcl''.