TDirectoryEdit mit TListBox

Rund um die LCL und andere Komponenten
Antworten
laserflor
Beiträge: 8
Registriert: Fr 8. Dez 2017, 20:47

TDirectoryEdit mit TListBox

Beitrag von laserflor »

Hallo an alle,
jeder von euch kennt sicherlich die Listbox, die aufpoppt, wenn man in einem (System-) Dateidialog einige Zeichen eingibt, wo man dann direkt eine Zeile auswählen kann, die ins Eingabefeld übernommen wird. Ich frage mich, ob ich das auch für das TDirectoryEdit hinbekomme, ohne dass ich den SpeedButton benutzen muss. Ich habe zwar hin und wieder auch schon Komponenten programmmiert, mir fehlt aber die nötige Erfahrung, um so etwas zu stemmen.

Vielleicht fehlt mir auch nur ein Denkanstoß, weil ich nicht wirklich weiß, wie ich an die Sache herangehen sollte.

Gruß laserflor

wp_xyz
Beiträge: 4892
Registriert: Fr 8. Apr 2011, 09:01

Re: TDirectoryEdit mit TListBox

Beitrag von wp_xyz »

Ich denke, das ist nicht ganz einfach, da TDirecoryEdit intern eine Edit-Komponente verwendet, diese aber keine Dropdown-Liste hat. Eine Combobox wäre das richtige, da gibt es auch ein AutoComplete. Nur: wie ersetzt man das Edit durch eine Combobox?

Einfacher erscheint mir, einfach eine Combobox zu nehmen und ans rechte Ende einen separaten Speedbutton zu setzen. Mit dem Speedbutton rufst du einen SelectDirectoryDialog auf, nicht anders als bei einem DirectoryEdit, nur mit dem nicht sichtbaren Unterschied, dass der Speedbutton außerhalb des Eingabeelements liegt, beim DirectoryEdit aber innen. Schließlich musst du mit FindAllDirectories eine Liste der Unterordner im aktuellen Verzeichnis erstellen und in the Items der Combobox laden. Wenn nun Combobox.AutoComplete = true ist müsste beim Tippen der nächst-passende Ordnername ergänzt werden. Du kannst den Style der Combobox auch auf csSimple setzen, so dass das Dropdown-Fenster gar nicht erscheint

laserflor
Beiträge: 8
Registriert: Fr 8. Dez 2017, 20:47

Re: TDirectoryEdit mit TListBox

Beitrag von laserflor »

Danke, ich werde es mit der ComboBox realisieren :)

Antworten