![]() |
Re: Aktuelle Zeile auslesen ...
Zitat:
|
Re: Aktuelle Zeile auslesen ...
Du könntest eine Befehlsliste verwenden:
Delphi-Quellcode:
Und später dann prüfst du so:
var
CommandList: TStringList; begin CommandList := TStringList.Create; with CommandList do begin Sorted := true; CaseSensitive := false; Add('#exit'); Add('#pause'); // ... end; end;
Delphi-Quellcode:
marabu
if CommandList.IndexOf(command) >= 0
then // gültiger Befehl else // ungültiger Befehl ; |
Re: Aktuelle Zeile auslesen ...
Zitat:
|
Re: Aktuelle Zeile auslesen ...
Weil der Befehl dann nicht in der Liste steht? :roll:
|
Re: Aktuelle Zeile auslesen ...
Zitat:
- Ach ich idiot ... schon gut. - Nur was ist dann Comman bei dem Indexof ? |
Re: Aktuelle Zeile auslesen ...
Zitat:
|
Re: Aktuelle Zeile auslesen ...
Delphi-Quellcode:
Jetzt kann ich halt kein #exit mehr eintippen, da alles vollgemüllt wird.
procedure TForm1.ConsoleKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); var iLine: integer; CommandList: TStringList; begin CommandList := TStringList.Create; with CommandList do begin Sorted := true; CaseSensitive := false; Add('#exit'); Add('#pause'); end; iLine := Console.Perform(EM_LINEFROMCHAR, -1, 0); { // #exit if (Key = VK_Return) and (LowerCase(Console.Lines[iLine]) = '#exit') then Application.Terminate; if not (Key = VK_Return) and (LowerCase(Console.Lines[iLine]) = '#exit') then Console.Lines.Add('Befehl konnte nicht gefunden werden.'); } if CommandList.IndexOf(IntToStr(iLine)) >= 0 then // gültiger Befehl else Console.Lines.Add('Ungültiger Befehl'); ; end; |
Re: Aktuelle Zeile auslesen ...
Delphi-Quellcode:
Jetzt schaust du dir mal den Sourcecode an, und gehst dich danach schämen.
if CommandList.IndexOf(IntToStr(iLine)) >= 0
then // gültiger Befehl else Console.Lines.Add('Ungültiger Befehl'); Aber immerhin eine Leistung, zweimal den selben Fehler zu machen :thumb: |
Re: Aktuelle Zeile auslesen ...
Nils, meinst du nicht auch, dass deine CommandList besser in dem Ereignis OnCreate() der Form aufgebaut wird? Sie ändert sich ja nicht bei jedem Tastendruck. Auch ist mein Code für die Überprüfung eines Befehls eher beispielhaft. Du musst dir da schon noch ein paar eigene Gedanken machen. Deine Befehle werden vielleicht nicht immer alle einsam und alleine in einer Zeile stehen - oder?
Freundliche Grüße vom marabu |
Re: Aktuelle Zeile auslesen ...
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz