Ich bin auf eine andere Methode fast zum Ergebnis gekommen.
Delphi-Quellcode:
procedure TForm1.ConsoleKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
var
iLine: integer;
begin
iLine := Console.Perform(EM_LINEFROMCHAR, -1, 0);
if Key = VK_RETURN
then
begin
if LowerCase(Console.Lines[iLine]) = '
#exit'
then
Application.Terminate;
if LowerCase(Console.Lines[iLine]) = '
#help'
then
begin
with Console.Lines
do
begin
Add('
');
Add('
');
Add('
#help = ruft die Hilfe auf');
Add('
#exit = beendet das Programm');
Add('
#opencd = öffnet das CD-Laufwerk');
Add('
#closecd = schließt das CD-Laufwerk');
Add('
');
end;
end;
if LowerCase(Console.Lines[iLine]) = '
#opencd'
then
begin
mciSendString('
Set cdaudio door open wait',
Nil, 0,
Handle);
end;
if LowerCase(Console.Lines[iLine]) = '
#closecd'
then
begin
mciSendString('
Set cdaudio door closed wait',
Nil, 0,
Handle);
end
else
Console.Lines.Add('
Unbekannter Befehl');
Console.Lines.Add('
');
end;
end;
Das Problem ist, wenn ich opencd und closecd eingebaut habe wird zwar jeder Befehl augeführt, es kommt aber hinter jedem Befehl 'Unbekannter Befehl'. Wenn ich opencd und closecd nicht eingebaut habe tritt der Fehler nicht auf.