Ich brauche leider den Itemindex bereits im OnChange Ereignis.
Also, ich habe zwar leider nicht ganz verstanden, was Du machen möchtest, aber wenn Du das aktuellste ItemIndex haben willst, dann musst Du nicht das OnChange-Event, sondern das OnChangeTracking-Event nehmen.
Dabei gilt folgende Besonderheit: Wenn Du den ItemIndex selber programmgesteuert (also nicht der User in der Bedienung) änderst, löst das kein OnChange-Event aus, aber das OnChangeTracking-Event. Da erhältst Du dann auch das aktuelle ItemIndex.
Ich ändere den Itemindex mit einem Mausklick auf das gewünschte Item. Nicht per code! Das control startet daraufhin von sichaus eine suche nach einem Item mit dem "sametext" des Items das ich angeklickt habe und setzt den Itemindex entsprechend falsch und führt dann das Onchange ereignis aus.
Nach dem onchange ereignis und setzt es den Itemindex auf das Item das angeklickt wurde.....argh...also auf das richtige Item...
Der beste weg wäre dieser code schnipsel gewesen!
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
(ComboEdit1.Items as TStringList).CaseSensitive := True;
end;
aber als der kam hatte ich mir schon ein eigenes Frankenstein-Control gebaut was das wie gewünscht macht.
Jeder der das TComboedit control benutzt sollte mkinzlers Lösung verwenden!
Aber
nur, wenn man ganz bewusst vom Standardverhalten abweichen will, denn Standard ist, dass Strings.indexof eben nicht case-sensitiv ist:
http://docwiki.embarcadero.com/Libra...trings.IndexOf
Insofern kann ich hier keinen Fehler erkennen und der Aussage TComboEdit ItemIndex funktioniert in Firemonkey nicht, könnte ich so nicht zustimmen.