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.