Einzelnen Beitrag anzeigen

Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#1

Combobox anderes Verhalten als in Delphi

  Alt 4. Nov 2019, 13:21
Ich habe in Delphi eine TComboBox verwendet, in welche ich z.B. Nummern eingebe.
Die Combobox klappt automatisch auf und wählt den (je nach weite der Eingabe) passensten Eintrag schon aus.
Soweit so gut. Ich habe dann eine Prüfung eingebaut, das wenn der eingegebene Text zu keinem Eintrag in der Combobox passt, dieser um 1 Zeichen (das letzte eingegebene) gekürzt wird.

Jetzt stehe ich wie der Ochse vorm Berg:
Problem in Lazarus ist jedoch, das er immer sagt das der eingegebene Text nicht passt, da er immer nur die eingegebenen Zeichen prüft, nicht aber die "Vorauswahl".
Dadurch lösche ich natürlich immer die komplette Eingabe und man hängt quasi fest.

Delphi-Quellcode:
procedure TTools.ChooseFChange(Sender: TObject);
var
  LandD, IPD, IPT, DeviceD, puffer : string;
  i : integer;
begin
  if (ChooseF.Text <> '') and
     (ChooseF.Items.IndexOf(ChooseF.Text) <> -1) then
  begin
    //Bedingungen wenn der Text passt.
  end else
  begin //Wenn der Text nicht passt
    puffer := choosef.Text;
    choosef.Text := '';
    for i := 1 to length(puffer) - 1 do
    begin
      Choosef.Text := Choosef.Text + puffer[i];
    end;
    choosef.SelStart := length(choosef.text);
  end;
end;
Jemand eine Idee wie man das in Lazarus hin bekommt? Die Combobox scheint sich anders zu verhalten.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas ( 4. Nov 2019 um 13:38 Uhr)
  Mit Zitat antworten Zitat