Einzelnen Beitrag anzeigen

iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#1

Sprachausgabe in Thread

  Alt 27. Feb 2020, 10:19
Delphi-Version: 7
Hallo,

ich versuche einen Thread zu schreiben, der einen String per Sprachausgabe ausgibt, aber ich bekomme beim Aufruf die EOIeException "CoInitialize wurde nicht aufgerufen", obwohl ich das explizit aufrufe.

Hier mein Thread-Code:
Delphi-Quellcode:
unit UThreadSpeak;

interface

uses
  Classes, ComObj, SysUtils, ActiveX;

type
  TSpeak = class(TThread)
  private
    { Private declarations }
    txt: string;
    stimme: Olevariant;
    destructor Destroy; override;
  protected
    procedure Execute; override;
  public
    constructor Create(text: string);
  end;

implementation

{ TSpeak }

constructor TSpeak.Create(text: string);
begin
inherited Create(true);
txt:=text;
FreeOnTerminate:=true;
CoInitialize(nil);
Stimme:=CreateOleObject('SAPI.SpVoice');
Suspended:=false;
end;

destructor TSpeak.Destroy;
begin
CoUninitialize;
inherited destroy;
end;

procedure TSpeak.Execute;
begin
  Stimme.speak(txt);
end;

end.
  Mit Zitat antworten Zitat