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.