Hier muss es krachen:
Delphi-Quellcode:
procedure THangManWord.NewWord(a: string);
var i:integer;
begin
if ClearWord = true then
begin
Word:= a;
WordLength:= Length(a);
SetLength(FCharWord, WordLength);
for i:=0 to WordLength do
begin
FCharWord[i]:='_';
end;
end;
end;
Wenn FCharWord das dynamische Char-Array ist. Begründung siehe oben.
Und diese Schleife:
Delphi-Quellcode:
procedure THangManWord.TestLetter(a: Char);
var i:integer;
begin
for i:=0 to WordLength do
begin
if Word[i] = a then
begin
SetCharWord(i,a);
end;
end;
end;
muss von ein bis WordLength laufen, Word ein String ist.
Auch hier sollte es krachen:
Delphi-Quellcode:
procedure TFormMain.Button1Click(Sender: TObject);
var a:char; output: string; i:integer;
begin
a:=edit2.text[1];
Hangmanword.TestLetter(a);
for i:=0 to HangManWord.WordLength do
begin
output[i]:=HangManWord.CharWord[i];
end;
edit1.Text:=output;
end;