Autovervollständigen

Hallo,

ich schreibe gerade eine Access-DB basierte Anwendung in Delphi. Im Großen und Ganzen sollen Zeiten für einen Volkslauf verwaltet werden. Nun möchte ich bei der Registratur Zeit sparen und für bereits in die DB eingetragene Vereine eine Autovervollständigen-Funktion einfügen. Also ich tippe einen oder mehrere Buchstaben und der Computer macht einen Vorschlag für die komplette Bezeichnung. Ihr kennt das bestimmt, z.B. aus MS Word oder MS Excel.

Bleibt die Frage: Wie mache ich das in Delphi? Meine Überlegungen gehen in die Richtung eigene Komponente von TEdit ableiten und ein Ereignis OnEnterChar definieren. Doch so was habe ich noch nie gemacht und wüsste nicht, wie das gehen sollte (ein eigenes Ereignis coden). Was ist eure Meinung dazu?

Viele Grüße
Jochen

Hallo
Versuche mal folgendes:

function AutoFill(text:string):string;
begin
text:=AnsiUppercase(text);
result:=text;
if text>’’ then
begin
form1.table1.findNearest([Text]);
result:=AnsiUppercase(form1.table1Suchbegriff.Value);
if copy(result,1,length(text))text then
begin
result:=text;
end
end
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var s:string;
pos:integer;
begin
if key>=’ ’ then
begin
pos:=Edit1.SelStart;
s:=key;
SendMessage(edit1.Handle, EM_REPLACESEL, 0, LongInt(s));
s:=AutoFill(Edit1.Text);
SendMessage(edit1.Handle, WM_SETTEXT, 0, Longint(s)) ;
SendMessage(Edit1.Handle, EM_SETSEL, Length(s), pos+1);
key:=#0;
end;
end;

Hallo,

danke für den Tipp. Da ich mit SQL-Abfragen arbeite und nicht mit Table-Objekten, habe ich zum Vergleich die Funktion StrLIComp benutzt. Funktioniert ebenso gut. Nochmal danke!

Jochen