Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ComboBox-Item anhand des Textes auswählen (https://www.delphipraxis.net/53711-combobox-item-anhand-des-textes-auswaehlen.html)

ringli 21. Sep 2005 18:16


ComboBox-Item anhand des Textes auswählen
 
Normalerweise funktioniert das Auswählen eines Combobox-Items durch diese Codezeile:
Delphi-Quellcode:
ComboBox.ItemIndex := ComboBox.Items.IndexOf('bla');
Leider funktioniert das aber nur wenn man den kompletten Text des Items kennt. Gibt es eine Möglichkeit diese Funktion so zu erweitern das die Suche anhand eines Teilstrings funktioniert?

SirThornberry 21. Sep 2005 18:29

Re: ComboBox-Item anhand des Textes auswählen
 
man kann sich selbst sowas schreiben, da wäre allerdings die Frage welches Autom augewählt werden soll wenn du nach "ab" suchst und die Liste folgendes enthält

ab-Test1
ab-Test2
ab-Test3

da fangen ja alle mit "ab" an, welches wölltest du in diesem fall auswählen?

faux 21. Sep 2005 18:32

Re: ComboBox-Item anhand des Textes auswählen
 
Das einfachste zu Programmieren wäre das erste bzw letzte... :lol:

SirThornberry 21. Sep 2005 18:36

Re: ComboBox-Item anhand des Textes auswählen
 
wenn der Style "csDropDownList" ist geht folgendes
Delphi-Quellcode:
procedure Search(AHandle: Cardinal; AText: String);
var LChar: String;
    LCount: Integer;
begin
  for LCount := 1 to Length(AText) do
    PostMessage(AHandle, WM_CHAR, Integer(AText[LCount]), 0);
end;

[...]
Search(Combobox1.Handle, 'Wortanfang');

ringli 21. Sep 2005 18:44

Re: ComboBox-Item anhand des Textes auswählen
 
@SirThornberry:

Das wäre in meinem Fall kein Problem weil ich nur nach dem ersten Buchstaben suchen muss um eine eindeutige Identfizierung zu haben.

Hintergrund:
Ich erstelle mir in der Combobox eine Laufwerksliste mit allen Laufwerksbuchstaben die noch verfügbar bzw. die via "subst" oder "net use" gemappt sind. Ist ein Laufwerksbuchstabe z.B. via "net use" gemappt wird mir in der Combobox auch noch der gemappte Pfad angezeigt. Der Text der sich also in der Combobox befindet lautet bspw. "C: \\PC\Freigabe".
Übergebe ich via Kommandozeile an mein Programm einen Laufwerksbuchstaben soll dieser entsprechend in der Combobox markiert werden.

Ich werde mal deinen geposteten Code probieren ob ich es damit hinkriege. :-)

SirThornberry 21. Sep 2005 18:49

Re: ComboBox-Item anhand des Textes auswählen
 
wenn es nur um den ersten buchstaben geht dann gehts auch so
Delphi-Quellcode:
PostMessage(Combobox1.handle, WM_CHAR, Integer(ErsterBuchstabe), 0);

ringli 21. Sep 2005 19:08

Re: ComboBox-Item anhand des Textes auswählen
 
@SirThornberry:
Vielen, vielen Dank. Soweit funktioniert es jetzt schon mal. :firejump:

Jetzt habe ich noch eine Frage die ich mal hier gepostet habe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz