Hi Christoph,
ich habe da mal ein bisserl rumgespielt und habe folgenden Lösungsansatz für dich und habe deinen Code entsprechend erweitert:
Code:
...
implementation
{$R *.dfm}
var Zeichen : string;
function TForm1.GetKey(Key: Word): String;
begin
case Key of
VK_NUMPAD6 : Result := 'VK_NUMPAD6';
VK_NUMPAD7 : Result := 'VK_NUMPAD7';
VK_NUMPAD8 : Result := 'VK_NUMPAD8';
VK_NUMPAD9 : Result := 'VK_NUMPAD9';
VK_MULTIPLY : Result := 'VK_MULTIPLY';
VK_ADD : Result := 'VK_VKADD';
VK_SEPARATOR : Result := 'VK_SEPARATOR';
VK_SUBTRACT : Result := 'VK_SUBTRACT';
VK_DECIMAL : Result := 'VK_DECIMAL';
VK_divIDE : Result := 'VK_divIDE';
else
Result := Chr(Key);
end;
end;
procedure TForm1.ListBox1KeyPress(Sender: TObject; var Key: Char);
var I: Integer;
begin
Zeichen:=Zeichen+Key;
for i:=0 to Listbox1.Items.Count do
begin
Memo1.Text:=Zeichen;
if (Length(ListBox1.Items[i])=Length(Zeichen)) or (Length(ListBox1.Items[i])>Length(Zeichen)) then
begin
Label1.Caption:=Copy(ListBox1.Items[i],0,Length(Zeichen));
if Copy(ListBox1.Items[i],0,Length(Zeichen))=Zeichen then
begin
ListBox1.ItemIndex:=i;
exit;
end;
end;
end;
end;
...
Ich hoffe da hilft dir bei deinem Problem weiter.
Bei mir tut es das was du dir vorgestellt hast, könnte aber sein das man es noch etwas eleganter progen kann.