رفتن به مطلب
  • 0

قطع و وصل شدن " خواندن متون " با یک دکمه


arastooms

سوال

سلام 
یک ساب کلیک دکمه دارم که تعریف کردم هر وقت کلیک شد 
شروع میکنه به خوندن یک متن ثابت " دو خطی "

حالا چه کدی باید بزنم و یا ساب رو چهطور باید تغییر بدم که هر وقت دوباره روی همون دکمه کلیک شد هرجای خوندن هست قطع بشه و دیگه ادامه نده؟؟
ساب من الان به این شکله
 


Sub Button2msg_Click
	
	If shenakhtloghat = 2 Then
		tts1.Speak(loghat1,False)	
	Else 
		tts1.Speak(mani2,False)
	End If
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

15 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام

یک متغییر توی Globals  تعریف کنید ( از نوع Boolean ) :

Dim MyBool As Boolean

و توی رویداد کلیک به این شکل بنویسید :

If MyBool = False Then
 TTS.Speak("Hello",False)
 MyBool = True
Else
 TTS.Speak("Are You OK ?",False)
 MyBool = False
End If

کد رو تست نکردم ولی خب منطقش به این شکله که دفعه اول میاد میگه Hello  و دفعه بعدی میگه Are You OK .

موفق باشید.

سلام متاسفانه به درستی کار نمیکنه 

من کلا برنامه رو انطوری نوشتم که اینجا قرار میدم 

ولی نیازی به این ندارم که " نگه داشته بشه متن با زدن دکمه " در واقع نمیخام puse بشه 

بلکه کافی فقط  قطع بشه و تمام و سری بعد که کلیک شد باز از اول بخونه 

در هر صورت ممنون میشم کمک کنید 

من سورس رو هم زمیمه کردم که مثال خود سایت بیسیک هست برای دوستانی که شاید نیاز داشته باشند 

با تشکر 

 

#Region Module Attributes
	#FullScreen: False
	#IncludeTitle: True
	#ApplicationLabel: TTS example
	#VersionCode: 1
	#VersionName: 
	#SupportedOrientations: portrait
#End Region

Sub Process_Globals
	Dim TTS1 As TTS
End Sub

Sub Globals
	
	Dim barPitch As SeekBar
	Dim barSpeechRate As SeekBar
	Dim btnSpeak As Button
	Dim EditText1 As EditText
	Dim spnrLanguages As Spinner
	
End Sub

Sub Activity_Create(FirstTime As Boolean)
	
	Activity.LoadLayout("1")
	spnrLanguages.AddAll(Array As String("en", "fr", "de" , "it"))
	
End Sub

Sub TTS1_Ready (Success As Boolean)
	
	If Success Then
		'enable all views
		For i = 0 To Activity.NumberOfViews - 1
			Activity.GetView(i).Enabled = True
		Next
		btnSpeak_Click 'play first sentence
	Else
		Msgbox("Error initializing TTS engine.", "")
	End If
	
End Sub
Sub Activity_Resume
	If TTS1.IsInitialized = False Then
		TTS1.Initialize("TTS1")
	End If
End Sub

Sub Activity_Pause (UserClosed As Boolean)
	TTS1.Release
End Sub

Sub btnSpeak_Click
	If EditText1.Text.Length > 0 Then
		TTS1.Speak(EditText1.Text, True)
		EditText1.SelectAll
	End If
End Sub

Sub btnstop_click
	
	
	TTS1.Stop
	
	
End Sub

Sub barSpeechRate_ValueChanged (Value As Int, UserChanged As Boolean)
	If UserChanged Then
		TTS1.SpeechRate = Value / 10
	End If
End Sub
Sub barPitch_ValueChanged (Value As Int, UserChanged As Boolean)
	If UserChanged Then
		TTS1.Pitch = Value / 10
	End If
End Sub
Sub spnrLanguages_ItemClick (Position As Int, Value As Object)
	If btnSpeak.Enabled = False Then Return
	If TTS1.SetLanguage(Value, "") = False Then
		ToastMessageShow("Language data not found.", True)
		Return
	End If
End Sub

اینم سورس برای اصلاح و اجرا 

سپاس از کمک دوستان 

http://s6.picofile.com/file/8223322876/tts.zip.html

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ُلام

نمیدونم دقیقا منظورتون همچین چیزیه یا نه :

Sub Button_Click
 
 If Button.Text = "Play" Then
   TTS.Speak("Hello My Freind's",False
   Button.Text = "Stop"
 Else
  TTS.Stop
  Button.Text = "Play"
 End If

End Sub

اینجا با اسم دکمه روند رو کنترل می کنیم.

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

موفق باشید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اساتید بزرگ نیاز مند راهنمایی هستیم همچنان 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

منم‌ دقیقا‌ همین مشکلو با کلیک ایمیج‌ ویو داشتم اما با کدایی مشابه‌ اونچه اقای ارتا زحمت کشیدن واستون گذاشتن حل شد

ی راح حل خیلی بهتر

چرا از ToggleButton استفاده نمیکنید ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

ببینید دسترسی به برنامه ندارم تا الگوریتمشو بنویسم.

ببینید در همچین مواقعی اگر کتابخونه رویداد End  و یا Complete  چیزی میداشت خیلی راحت می شد کنترلش کرد.

حالا شما این کدرو هم تست کنید :

 If Button.Text = "Play" Then
   TTS.Speak("Hello My Freind's",False
   Button.Text = "Stop"
 Else If Button.Text = "Stop" Then
  TTS.Stop 
  Button.Text = "Play"
 Else
 Button.Text = "Play"
 End If
لینک ارسال
به اشتراک گذاری در سایت های دیگر

میشه بی

 

سلام

منم‌ دقیقا‌ همین مشکلو با کلیک ایمیج‌ ویو داشتم اما با کدایی مشابه‌ اونچه اقای ارتا زحمت کشیدن واستون گذاشتن حل شد

ی راح حل خیلی بهتر

چرا از ToggleButton استفاده نمیکنید ؟

میشه بیشتر راهنمایی کنید 
من اطلاعات دقیقی ندارم
در باره ToggleButton
و یا سورس و راهنمایی معرفی کنید 
خیلی لنگ این موضوع هستم 
سپاس

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

 

ببین از دیزاینر ی توگل باتن ادد میکنی بعدش :

Dim tb As ToggleButton

اینم Event ش :

tb_CheckedChange(Checked As Boolean)
If Checked = True Then
MsgBox("کلیک +")
Else 
MsgBox("کلیک -")
End Sub

 واسه چک بودن یا نبودنش هم متن میتونی بذاری هم تصویر :write:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

 

ببین از دیزاینر ی توگل باتن ادد میکنی بعدش :

Dim tb As ToggleButton

اینم Event ش :

tb_CheckedChange(Checked As Boolean)
If Checked = True Then
MsgBox("کلیک +")
Else 
MsgBox("کلیک -")
End Sub

 واسه چک بودن یا نبودنش هم متن میتونی بذاری هم تصویر :write:

سلام الیاس جان 

در حقیقت مشکل از تعریف دکمه نیست!!

مشکل اینه که نمیتونیم بهش بگیم هر وقت متن خوانده شده تموم شد دکمه رو عوض کن !!!

در واقع اگر سورسی رو که قرار دادم ببینی مشکلش اینه که رویداد خوندن متن گزینه پایان نداره 

که بهش بگیم هر وقت تموم شد فلان کار رو بکن

///////////

مشکل از دکمه و تعریف دکمه نیست 

تو مثالی که شما زدی پلیر این گزینه رو داره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

سلام

ببینید دسترسی به برنامه ندارم تا الگوریتمشو بنویسم.

ببینید در همچین مواقعی اگر کتابخونه رویداد End  و یا Complete  چیزی میداشت خیلی راحت می شد کنترلش کرد.

حالا شما این کدرو هم تست کنید :

 If Button.Text = "Play" Then
   TTS.Speak("Hello My Freind's",False
   Button.Text = "Stop"
 Else If Button.Text = "Stop" Then
  TTS.Stop 
  Button.Text = "Play"
 Else
 Button.Text = "Play"
 End If

سلام و متاسفانه حل نشد و من هنوز مشکل دارم با این باگ 

از دوستان کسی هست این مشکل رو بتونه حل کنه 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوستان نیاز مند یاری شما هستیم
برای کدی که "بفهمه خوندن نوشته تموم شده !!!"
:D  :D  :gol:  :gol:  :D  :D

لینک ارسال
به اشتراک گذاری در سایت های دیگر

نیازمند یاری اساتید هستیم 
با تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام مجید جان 
دقیقا مشکل همین بود و هنوز هم یک خط کد کم داره که مینویسم و امید وارم محبت کنید و اگر وقت دارید من رو راهنمایی کنید
/////////////////
با فرمان شما همه چیز خوب کار میکنه فقط وقتی که شما در هنگام خوندن متن روی دکمه کلیک کنید 
//////////////////
اگر فقط دکمه را که پیش فرض برنامه " play " هست بزنیم به " stop " تغیر میکنه و شروع به خواندن میکند
و اگر همچنان کلیک نکنیم تا متن قطع شود" متن تمام میشود و دکمه باید به حالت "play" برگردد که این طور نمی شود
/////////////////
در واقع این ساب نیاز به یک خط کد دیگر هم دارد که چک کند 
اگر متن به پایان رسید دکمه را به " play" برگردان
/////////////////
با تشکر پیشاپیش ار لطف  و راهنمایی شما

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

یک متغییر توی Globals  تعریف کنید ( از نوع Boolean ) :

Dim MyBool As Boolean

و توی رویداد کلیک به این شکل بنویسید :

If MyBool = False Then
 TTS.Speak("Hello",False)
 MyBool = True
Else
 TTS.Speak("Are You OK ?",False)
 MyBool = False
End If

کد رو تست نکردم ولی خب منطقش به این شکله که دفعه اول میاد میگه Hello  و دفعه بعدی میگه Are You OK .

موفق باشید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شرمنده " طبق قوانین "پست رو بالا میارم 
شاید در بین دوستان عزیزی باشه که این مشکل رو حل کرده باشه
با تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

عزیزان ببخشید پست رو میارم بالا _" البته طبق قوانین یک روز گذشته" 
ولی نیاز شدید دارم به این کد و نمی تونم پیدا کنم 
ممنون میشم راهنمایی کنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...