Public oGenie, oAgent lcAgent = "f:\winnt\msagent\chars\merlin.acs" lcCharacter = 'check' oAgent = createobject("Agent.Control.1") With oAgent .connected = .t. .characters.load(lcCharacter, lcAgent) Endwith oGenie = oAgent.characters(lcCharacter) oGenie.Show oForm = CREATEOBJECT("myForm") oForm.Show() Read EVENTS Define CLASS myform AS form AutoCenter = .t. DoCreate = .T. Caption = "Speak test" Name = "Form1" Add OBJECT text1 AS editbox WITH ; Height = 50, ; Left = 10, ; Top = 30, ; Width = 300, ; Value = 'Hello there from Visual Foxpro.'+chr(13)+'Do not hunt foxes.', ; Name = "Text1" Add OBJECT command1 AS commandbutton WITH ; Top = 90, ; Left = 10, ; Caption = "Konus", ; Name = "Command1" Procedure Unload Release oGenie Release oAgent Endproc Procedure queryunload Clear events Endproc Procedure command1.Click With oGenie .Balloon.Visible = .f. .MoveTo(thisform.left+objtoclient(thisform.text1,2),thisform.top+objtoclient(thisform.text1,1),200) .Speak(ThisForm.text1.Value) .Speak(ThisForm.Caption) Endwith Endproc EnddefineYou need a 'speaking' agent such as Merlin + speech Engine. Visit MS agent site to download them.