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.