Im Prinzip müsste dein Programm so aussehen. Ich hoffe dir ist klar an welcher Stelle du "TuWasMitBuchstabe()" in deinem Projekt aufrufen musst.
Delphi-Quellcode:
type
TForm1 = class(TForm)
{...}
private
FRichtigerText: string;
FMaskierteText: string;
FFalscheBuchstaben: string;
function IstBuchstabeInText(AValue: Char; const AText: string): Boolean;
function IstBuchstabeRichtig(AValue: Char): Boolean;
procedure TuWasMitBuchstabe(AValue: Char);
procedure TuWasMitBuchstabeRichtig(AValue: Char);
procedure TuWasMitBuchstabeFalsch(AValue: Char);
procedure BuchstabenAnzeigen;
end;
function TForm1.IstBuchstabeInText(AValue: Char; const AText: string): Boolean;
begin
Result := (Pos(AValue, AText) <> 0);
end;
function TForm1.IstBuchstabeRichtig(AValue: Char): Boolean;
begin
Result := IstBuchstabeInText(AValue, FRichtigerText);
end;
procedure TForm1.TuWasMitBuchstabe(AValue: Char);
begin
if IstBuchstabeRichtig(AValue) then
TuWasMitBuchstabeRichtig(AValue)
else
TuWasMitBuchstabeFalsch(AValue);
end;
procedure TForm1.TuWasMitBuchstabeRichtig(AValue: Char);
begin
{...}
BuchstabenAnzeigen;
end;
procedure TForm1.TuWasMitBuchstabeFalsch(AValue: Char);
begin
if not IstBuchstabeInText(AValue, FFalscheBuchstaben) then
begin
FFalscheBuchstaben := FFalscheBuchstaben + AValue;
BuchstabenAnzeigen;
end;
end;
procedure TForm1.BuchstabenAnzeigen;
begin
LabelAnzeige.Caption := FMaskierteText;
Label5.Caption := Format('Falsche Buchstaben: %s', [FFalscheBuchstaben]); // Label5 einen vernünftigen Namen geben!
end;