Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#4

AW: spvoice ist zu langsam

  Alt 31. Mär 2013, 18:07
Das würde ich mit einem Timer erledigen.

Das Timer-Intervall z.B. auf 500 (ms) setzen und den Timer im KeyEvent neu starten (Enabled einmal auf false und dann wieder auf true setzen).

Im Timer-Event selbst dann Enabled auf false (sonst quaselt er weiter). Die Voice-Ausgabe erfolgt dann ausschließlich im Timer-Event.

Etwa so (nur so eingetippt):

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  Timer1.Enabled := false;
  if key = vk_right then begin
    xk:=xk+1; // Überprüfung auf Max-Wert fehlt!
    yk:=0;
  end
  else if key = vk_left then begin
    if xk > 0 then begin
      xk:=xk-1;
      yk:=0;
    end;
  end;
  Timer1.Enabled := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := false;
  Spvoice1.Volume:= 100;
  spvoice1.Speak(inttostr(xk)+'\'+inttostr(yk), 1);
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat