2008-10-16 30 views
5

2000/NT/XP'de Delphi ile OLE nesnesini aşağıdaki gibi oluşturarak yaptım:Vista'da konuşma metni

Voice := CreateOLEObject('SAPI.SpVoice'); 
Voice.speak(...) 

Ancak bu Vista'da çalışmaz, programımı Vista'da nasıl yazabilirim?

+0

teşekkürler François. Bileşenle önerdiğiniz bir kağıtta çalışır (http://www.blong.com/Conferences/DCon2002/Speech/SAPI51/SAPI51.htm) –

cevap

4

Sadece aşağıdaki kod ile (Vista Home Premium'da D2009) denedim ve işe yarıyor! bir EZeroDivide Vista'da çalışan ve vermek neden yayınlanmadığını için

:

unit Unit1; 

interface 

uses 
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
    Dialogs, StdCtrls, ComObj; 

type 
    TForm1 = class(TForm) 
    Button1: TButton; 
    procedure Button1Click(Sender: TObject); 
    private 
    { Private declarations } 
    public 
    { Public declarations } 
    end; 

var 
    Form1: TForm1; 

implementation 

{$R *.dfm} 

procedure TForm1.Button1Click(Sender: TObject); 
var 
    Voice: Variant; 
begin 
    Voice := CreateOLEObject('SAPI.SpVoice'); 
    Voice.speak('Hello World'); 
end; 

end. 

Bilginize, bir Brian Long tarafından nice paper on using speech in Delphi programming ...


(Çok) Geç Güncelleme yoktur IDE dışındaki istisnai diğer soruya bakın: Delphi SAPI Text-To-Speech

+0

Kağıt için teşekkürler. Ancak, gösterdiğiniz kodu çalıştırarak, Vista'da "Sıfır noktası ayırma sıfıra" hatası alıyorum. Vista'da test ettin mi? (Windows XP'de BDS2006 ile kurdum ve Vista'da çalıştırılabilir çalıştırdım) –

+0

Vista'da (aynı makinede) –

+0

teşekkürler ve test ettim François. Bu bir bileşene çalışır önerdiğiniz kağıt (http://www.blong.com/Conferences/DCon2002/Speech/SAPI51/SAPI51.htm) –