'Buchstabenfilter' unter Delphi 5

Hallo!

Ich möchte unter Delphi 5 gerne einen Buchstabenfilter programmieren, der alle Vokale herausfiltert. Als Ein- und Ausgabe habe ich TEdit verwendet.

Ich wollte dies mit einem „Zwischenspeicher“ in Form eines Labels lösen, leider funktioniert das nicht so, wie ich will. Ebenso ungünstig ist die FOR-Schleife, die ermöglichen soll, dass die IF-Schleife möglichst immer wieder durchlaufen werden soll. Auch da bin ich mir sicher, dass es eine elegantere Lösung gibt.

**…
procedure TForm1.Edit1Change(Sender: TObject);

begin

edit2.text:=edit1.text;
end;
end.

procedure TForm1.FormCreate(Sender: TObject);
VAR ii:Integer;
begin
edit1.text:=label4.Caption;
FOR ii:=1 to 15 DO BEGIN
edit1.text:=label4.Caption;
IF edit1.text=label4.caption+‚A‘ then edit2.text:=label4.Caption;
IF edit1.text=label4.caption+‚E‘ then edit2.text:=label4.Caption;

end;
end;

end.**

Hallo Christoph,

versuche es doch mal mit folgender Prozedur, die TForm1.EditChange ersetzt. Alles andere für diese Funktion kann dann im Quelltext gelöscht werden und das Label als Zwischenspeicher entfällt.

procedure TForm1.Edit1Change(Sender: TObject);
var
TempChar : Char;
Counter : Integer;
Const
Vocals:set of Char=[‚A‘,‚E‘,‚I‘,‚O‘,‚U‘,‚a‘,‚e‘,‚i‘,‚o‘,‚u‘];
begin
Edit2.Text:=’’;
For Counter:=1 To Length(Edit1.Text) do
begin
TempChar:=(Edit1.Text[Counter]);
If TempChar in Vocals Then Edit2.Text:=Edit2.Text+Edit1.Text[Counter];
end;
end;

Gruß
U.Teichert