![]() |
Re: If-Abfrage, die einen Befehl (Console) überprüfen kann (
Ich würde mal spontan sagen ich hätte da ein end vergessen (wenn's jetzt nicht dastehen würde :roll: ), aber sowas hätte man ja auch so merken können :)
|
Re: If-Abfrage, die einen Befehl (Console) überprüfen kann (
Ok, das habe ich bemerkt, der eigentliche Fehler ist beseitigt, aber wenn ich #color(maroon) eintippe, kommt der Fehler falscher Farbwert.
Delphi-Quellcode:
if (copy(line, 1, 6) = '#color(') and (line[length(line)] = ')') then begin
if copy(line, 7, length(line) - 8) = 'black' then Console.color := clBlack else if copy(line, 7, length(line) - 8) = 'maroon' then Console.color := clMaroon else Console.Lines.Add('Falscher Farbwert'); end else |
Re: If-Abfrage, die einen Befehl (Console) überprüfen kann (
Warum machst du es nicht einfach so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var lInput, lValue: String; lColor: Integer; begin // Eingabe aus Editfeld holen lInput := AnsiLowerCase(Edit1.Text); // Befehl prüfen if (Pos('#color(', lInput) = 1) and (Pos(')', lInput) > 1) then begin // Farbwert extrahieren lValue := Copy(lInput, 8, Pos(')', lInput) - 8); // Farbwert in Delphifarbe umwandeln if IdentToColor('cl' + lValue, lColor) then Console.Color := lColor else Console.Lines.Add('Ungültiger Farbwert!'); end; end; |
Re: If-Abfrage, die einen Befehl (Console) überprüfen kann (
Also ich benutze jetzt folgenden Code:
Delphi-Quellcode:
Die Farbe wird mir dem Befehl #color(maroon) abgeändert, allerdings wird später leider noch folgender Code aktiv:
var
iLine : Integer; Line : String; lInput, lValue: String; lColor: Integer; begin // ... lInput := AnsiLowerCase(Line); if (Pos('#color(', lInput) = 1) and (Pos(')', lInput) > 1) then begin lValue := Copy(lInput, 8, Pos(')', lInput) - 8); if IdentToColor('cl' + lValue, lColor) then Console.Color := lColor else Console.Lines.Add('Ungültiger Parameter'); end; // ...
Delphi-Quellcode:
Wie kann ich umgehen, dass nach der Abänderung der Farbe 'Unbekannter Befehl' noch in das Memo hinzugefügt wird ?
if Console.Lines[iLine] <> '' then
begin Console.Lines.Add('Unbekannter Befehl'); end; Ich möchte mich ganz herzlich bei euch allen bedanken, da ihr mir sehr bei dem Problem weitergeholfen habt, das Problem ist dann so ziemlich gelöst, danke für alles !! |
Re: If-Abfrage, die einen Befehl (Console) überprüfen kann (
Wie wäre es mit 'nem ELSE, also diese Abfrage nur machen, wenn worherige übergangen wurde?
Delphi-Quellcode:
PS: vielleicht ist dir aufgefallen, daß ich oben das # vor'm color vergaß und wenn du dieses schon einfügst, dann müssen natürlich auch die Positionen (also die 6en, 7en und 8en) um das hinzugefügte Zeichen erweiters werden, also um 1 erhöt :roll:
var
iLine : Integer; Line : String; lInput, lValue: String; lColor: Integer; begin // ... lInput := AnsiLowerCase(Line); if (Pos('#color(', lInput) = 1) and (Pos(')', lInput) > 1) then begin lValue := Copy(lInput, 8, Pos(')', lInput) - 8); if IdentToColor('cl' + lValue, lColor) then Console.Color := lColor else Console.Lines.Add('Ungültiger Parameter'); end else if Console.Lines[iLine] <> '' then begin Console.Lines.Add('Unbekannter Befehl'); end;
Delphi-Quellcode:
line := trim(line);
if (copy(line, 1, 7) = '#color(') and (line[length(line)] = ')' then begin if copy(line, 8, length(line) - 8) = 'black' then Console.color := clBlack else if copy(line, 8, length(line) - 8) = 'maroon' then Console.color := clMaroon else Console.Lines.Add('Falscher Farbwert'); //end else if (copy(line, 1, 14) = '#otherCommand(') and (line[length(line)] = ')' then begin // if copy(line, 14, length(line) - 14) = '...' then // ... // else Console.Lines.Add('Falscher Parameter'); end else Console.Lines.Add('Befehl unbekannt.'); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 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