Hallo Stefan,
die Variable
easterstring mußt du im private Teil des Formulars unterbringen, damit ihr Inhalt mehrere Aufrufe der FormKeyPress-Routine überlebt. Der Löschbefehl zu Beginn der Routine schadet auch nur, oder?
Probiere es einmal so:
Delphi-Quellcode:
type
TForm1 = class (TForm)
...
private
easterstring : string;
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
const
MAGICTEXT = 'test';
begin
case key of
'1' : button1.click;
...
'r' : button23.click;
else
easterstring := easterstring + key;
if (easterstring <> Copy(MAGICTEXT, 1, Length(easterstring)) then
easterstring := ''
else
if (easterstring = MAGICTEXT) then
begin
showmessage('hui');
easterstring := '';
end;
end;
end;
Wenn der MAGICTEXT auch Zeichen enthalten soll, die für die Bedienung der Buttons benötigt werden, dann solltest du die Überprüfung aus dem ELSE-Zweig herausnehmen und hinter die CASE-Anweisung verschieben.
Gruß Hawkeye