Hi, hab hier mal angefangen eine Procedure zu schreiben, die ein Memo Buchstabe für Buchstabe durchgeht und jeden einzelnen vorliest. Jedoch tut sie das nicht
Wäre nett, wenn mir mal wer sagen könnte, woran das liegt.
Code:
procedure TForm1.play;
var buco, lico:integer;
var zeile:string;
begin
for lico:=0 to memo1.Lines.Count-1 do begin
zeile := memo1.Lines[lico];
for buco:=0 to length(zeile) do begin
case zeile[buco] of
'a' : begin
MP1.FileName := '/a.wav';
MP1.Play;
end;
'b' : begin
MP1.FileName := '/b.wav';
MP2.Play;
end;
'c' : begin
if ((zeile[buco-1] = 'a') OR (zeile[buco-1] = 'o') OR (zeile[buco-1] = 'u')) AND (zeile[buco+1] = 'h') then
begin
mp1.FileName := '/chr.wav';
mp1.Play;
end;
if ((zeile[buco-1] = 'i') OR (zeile[buco-1] = 'e')) AND (zeile[buco+1] = 'h') then
begin
mp1.FileName := '/ch.wav';
mp1.Play;
end;
if zeile[buco+1] = 'k' then
begin
mp1.FileName := '/ck.wav';
mp1.Play;
end;
if ((zeile[buco+1] <> 'h') AND (zeile[buco+1] <> 'k')) then
begin
MP1.FileName := '/c.wav';
MP1.Play;
end;
end;
'd' : begin
MP1.FileName := '/d.wav';
MP1.Play;
end;
'e' : begin
if zeile[buco+1] = 'i' then begin
MP1.FileName := '/ei.wav';
MP1.Play;
end
else begin
MP1.FileName := '/e.wav';
MP1.Play;
end;
end;
'q' : begin
if zeile[buco+1] = 'u' then begin
MP1.FileName := '/qu.wav';
MP1.Play;
end
else begin
MP1.FileName := '/q.wav';
MP1.Play;
end;
end;
'r' : begin
MP1.FileName := '/r.wav';
MP1.Play;
end;
's' : begin
if ((zeile[buco+1] = 'c') AND (zeile[buco+2] = 'h')) then begin
MP1.FileName := '/sch.wav';
MP1.Play;
end
else
if (zeile[buco+1] = 's') then begin
MP1.FileName := '/ss.wav';
MP1.Play;
end
else begin
MP1.FileName := '/s.wav';
MP1.Play;
end;
end;
end;
end;
end;
memo1.Enabled := true;
end;
Ich hab einige Buchstaben rausgenommen, da es sonst zu viel Text ist...
Buco ist ein Counter für die Buchstaben und Lico einer für die Zeilen des Memos.