Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Problem Autovervollständigen


Hendrik - So 16.03.08 17:57
Titel: Problem Autovervollständigen
Hey!

Ich habe in einem Editfeld eine Autovervollständigenfunktion bei OnKeyUp hinterlegt.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
i:=length(edit.text);
 if table.Locate('feld',edit.text,[loCaseInsensitive, loPartialKey])  then begin
 edit.text:=table.fieldbyname('feld').asstring;
 edit.selstart:=i;
 edit.sellength:=length(edit.text)-i;
end;


Leider habe ich hier das Problem, dass es bei einer schnellen Eingabe Probleme gibt. Dann wird das angegebene Zeichen hinter den Autotext (von dem es sich unterscheidet) gesetzt und die Eingabe stimmt nicht mehr.

Hat jemand eine Idee, wie ich es anders machen kann?


Fabian E. - Mo 17.03.08 01:52

naja so wie ich das jetzt verstanden habe schreibst du etwas ins Edit, das wird vervollständigt und dann ist bei schnellem schreiben hintendran das nächste zeichen?
ich würde es so lösen, das erst bei einer 0,5 sekündigen pause nach OnKeyUp das ganze passiert.
also eine Timer der im OnKeyUp aktiviert, bzw. im OnKeyDown deaktiviert wird.

gruß


Hendrik - Di 18.03.08 01:41

Das ist ne gute Idee! Danke!