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

منتظر ماندن یک sub تا گرفتن جواب از sub دیگر


arf

سوال

سلام

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

بعد می خوام این جواب را ریترن کنم.

چی کار کنم

Sub chek_phone(ID As String,phone As String) As Boolean
	Dim s As String
	s="ID="&ID&"&phone="&phone
	ht.PostString("http://tolugroup.ir/far/chek_phone.php",s)
	Return result
End Sub

Sub Jobdone (job As HttpJob)
	If job.Success = True Then
			ProgressDialogHide
		If ht.GetString <> "eror" Then result= ht.GetString And Main.result1=result Else Main.result1="eror"
	Else
		ToastMessageShow("خطا در برقراری اتصال" , False)
	End If
End Sub

در واقع اگر result  مساوی با true بود باید chek_phone آن را ریترن کند و الا false رو ریترن کنه.

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

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

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

در 2 ساعت قبل، arf گفته است :

سلام

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

بعد می خوام این جواب را ریترن کنم.

چی کار کنم


Sub chek_phone(ID As String,phone As String) As Boolean
	Dim s As String
	s="ID="&ID&"&phone="&phone
	ht.PostString("http://tolugroup.ir/far/chek_phone.php",s)
	Return result
End Sub

Sub Jobdone (job As HttpJob)
	If job.Success = True Then
			ProgressDialogHide
		If ht.GetString <> "eror" Then result= ht.GetString And Main.result1=result Else Main.result1="eror"
	Else
		ToastMessageShow("خطا در برقراری اتصال" , False)
	End If
End Sub

در واقع اگر result  مساوی با true بود باید chek_phone آن را ریترن کند و الا false رو ریترن کنه.

سلام دوست عریر 

شما یه متغیر int تعریف کن 

و بیا توی ساب Jobdone بگو اگه موفقیت امیز بود متغیر عددی رو برابر یک بزار و اگر موفق نبود برابر 0 بزاره 

بعد توی ساب check_phone بعد از خط postsrting بیا متغیر عددی رو چک کن و اگه برابر 1 بود true رو برگردون و اگه  0 بود false رو برگردون

با اجازتون من کدتون رو تغیر دادم والان امتحانش کنید 

Dim YorN As int

 

Sub chek_phone(ID As String,phone As String) As Boolean
	Dim s As String
	s="ID="&ID&"&phone="&phone
	ht.PostString("http://tolugroup.ir/far/chek_phone.php",s)
	
	If YorN = 1 Then
		Return True
	Else
		Return False
		
	End If

End Sub

Sub Jobdone (job As HttpJob)
	If job.Success = True Then
		YorN = 1
		ProgressDialogHide
	Else
		YorN = 0
		ToastMessageShow("خطا در برقراری اتصال" , False)
	End If
End Sub

 

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

ممنون

ولی مشکل اینجاست که این ساب ها داخل یک کلاسند

از بیرون کلاس ابتدا ساب چک فون فرواخوانی می شود

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

ht.PostString("http://tolugroup.ir/far/chek_phone.php",s)

 

پاسخ که از سرور میاد به طور خودکار ساب jobdone آن را دریافت می کند.

مشکل از اینجاست که ساب چک فون ابتدا ریترن رو انجام میده و بعد جواب ساب jobdone می آید بخاطر تأخیر سرور

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

شما ساب check_phone رو از حالت بولین خارج کن و فقط بزار پست رو انجام بده 

 

ht.PostString("http://tolugroup.ir/far/chek_phone.php",s)

بعد از این خط هم چیزی ننویس 

در انتهای ساب Jobdone بیا و یه ساب دیگه رو اجرا کن که پس از نتایج چی میخوای اتفاق بیفته 


Sub chek_phone(ID As String,phone As String)
	Dim s As String
	s="ID="&ID&"&phone="&phone
	ht.PostString("http://tolugroup.ir/far/chek_phone.php",s)
	

End Sub

Sub Jobdone (job As HttpJob)
	If job.Success = True Then
		YorN = 1
		ProgressDialogHide
	Else
		YorN = 0
		ToastMessageShow("خطا در برقراری اتصال" , False)
	End If

run(YorN)

End Sub



Sub run (res As Int)
	
	
	If res = 1 Then
	'   کار هایی که میخوای انجام بدی در صورتی که ترو باشه
	Else
	'   کار هایی که میخوای انجام بدی در صورتی که فالس باشه
	End If
	
End Sub

 

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

ممنون ولی:

این ها همه تو یک کلاسه

قراره کلاس به اکتیویتی خروجی بده بدون اینکه بخواد به متغیر یا سابی در main دسترسی داشته باشد

وقتی من چک فون رو بولین می کنم زمانی که در main فراخوانی می شود یک نتیجه ای بهت میده

اگر بولینش نکنم چگونه نتیجه را دریافت کنم؟؟

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

بایگانی شده

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

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

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