Einzelnen Beitrag anzeigen

Benutzerbild von Legolas
Legolas

Registriert seit: 28. Sep 2003
Ort: Frankfurt am Main
72 Beiträge
 
Delphi 2005 Personal
 
#4

Re: ListBox Tastatur- bzw. Worteingabe

  Alt 17. Feb 2004, 22:00
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.
Grüße Legolas

Wissen ist Macht.
Wir wissen nichts, macht nichts.
  Mit Zitat antworten Zitat