Was du nicht machen kannst ist ein String einem Char übergeben. Das geht nicht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var s: String; c: Char; begin s := 'a'; c := s; |
auch wenn s nur ein Zeichen enthält.
Was aber geht ist das:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var s: String; c: Char; begin s := 'a'; c := s[1]; |
Hier wird nur ein Zeichen übergeben (die 1 steht für das erste Zechen, nicht für ein Zeichen). Aber Vorsicht! ein Char besteht immer aus einem Zeichen, ein String kann mehr Zeichen enthalten, auch auch keins.
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var s: String; c: Char; begin c := s[1]; |
Hier gibt es eine Fehlermeldung, da s leer ist, als keine Zeichen entgällt.
Wenn du also auf diese Art ein Zeichen übergeben willst, dann prüf vorher ob der String mindestens ein Zeichen enthält:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var s: String; c: Char; begin if Length(s) > 0 then c := s[1] else ShowMessage('Fehler, String enthält keine Zeichen'); |