PDA

View Full Version : سوال: مشکل بزرگ در برنامه خواندن متن



coder.of.night
پنج شنبه 17 شهریور 1390, 23:28 عصر
درود و خسته نباشید خدمت مدیران و برنامه نویسان محترم

بنده در حال طراحی یک برنامه هستم که یک متن 15 پاراگرافی را از دیتابیس لود میکنه توی textbox و سپس با یک سرعت تعریف شده شروع به خواندن متن کند .

برنامه به خوبی طراحی شد ولی یک مشکل در حین خواندن متن ، برنامه هنگ میکند و نمیتوان تا پایان خواندن متن هیچ عملی انجام داد جستجوی فراوانی در سرار نت انجام دادم ولی هیچ مطلبی نبود !!!!




Dim msg, sapi
msg = Text1.Text
Set sapi = CreateObject("sapi.spvoice")
sapi.Rate = 1
sapi.Speak msg



با اجازه نمونه برنامه رو پیوست کردم خواهش مندم سریع تر کمکم کنید .


میخام وقت خواندن متن حداقل 3 یا 4 پاراگراف برنامه هنگ نکند.:لبخند: منتظرم دوستان

vbhamed
جمعه 18 شهریور 1390, 00:35 صبح
سلام

خب اين كه كاري نداره
شما دستور آخر كه مربوط به خواندن هست رو براي هر پاراگراف جداگانه فراخواني كن يا حتي براي هر سطر جداگانه و بينشون از دستور DoEvents استفاده كن و حتي مي‌توني چك كني اگر دكمه اي هم زده شده بود ديگه ادامه نده
سطرهاي متن رو هم مي‌توني با استفاده از تابع Split از هم جدا كني

coder.of.night
جمعه 18 شهریور 1390, 05:04 صبح
ممنون از بابت راهنمایی

عذر میخام
میشه نمونه برام ایجاد کنید و قرار بدید ممنون میشم . با تشکر

coder.of.night
جمعه 18 شهریور 1390, 16:57 عصر
درود استادان عزیز لطفا کمک کنید من توی این پروژه گیر کردم .

vbhamed
شنبه 26 شهریور 1390, 17:46 عصر
سلام

به اينصورت فراخواني كنيد تا همزماني خواندن با اجراي بقيه برنامه انجام بشه (يك پارامتر 1 به متد Speak اضافه شده)
دقت كنيد كه متغير در sapi قسمت عمومي فرم تعريف شده
يك دكمه براي خروج به اسم cmdExit هم تعريف شده كه اگر دستور End اون رو ننويسيد مي‌تونيد ازش براي متوقف كردن خواندن متن استفاده كنيد، هر چند كه متد sapi.Pause و sapi.Resume هم براي توقف و ادامه پخش هستن ولي اون دستور سريعتر عمل مي‌كنه و حافظه متغير هم آزاد ميشه

Dim sapi

Private Sub cmdExit_Click()

Set sapi = Nothing
End

End Sub

Private Sub Form_Load()

Set sapi = CreateObject("sapi.spvoice")

sapi.Rate = 1

Show
DoEvents

sapi.Speak Text1, 1
DoEvents

End Sub