Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: ComboBox.ItemIndex liefert falsche Ergebnisse

  Alt 12. Apr 2017, 08:22
einen Wert kleiner 0, obwohl in der Combobox eindeutig was drin steht
< 0 oder genauer -1 bedeutet "nichts ausgewählt", also kein Items ist selektiert.

Und nur weil etwas drin steht, muß noch lange nichts selektiert sein.
Wenn man "Freitext" erlaubt (csDropDown oder csSimple), dann wird eben nicht automatisch selektiert, nur weil "zufällig" irgendein Item (es könnten auch mehrere sein und das weiß Delphi/VCL/Windows nicht) mit dem .Text übereinstimmt.

Also entweder du mußt dafür sorgen, dass ein Item ausgewählt wird, wenn du nur auf ItemIndex zugreifst.
Delphi-Quellcode:
DeineComboBox.ItemIntex := DeineComboBox.Items.IndexOf(DeineComboBox.Text);

// oder, damit ausversehn gelöscht werden könnte, falls kein Item gefunden wird

i := DeineComboBox.Items.IndexOf(DeineComboBox.Text);
if i >= 0 then
  DeineComboBox.ItemIntex := i;
bzw. statt DeineComboBox.ItemIndex eben DeineComboBox.Items.IndexOf(DeineComboBox.Text) zum Auslesen verwenden.

Oder csDropDownList.
$2B or not $2B
  Mit Zitat antworten Zitat