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

لود پنل ها قبل از رسیدن اسکرول به انتها!


HS71

سوال

با سلام

،

طبق دو تا تاپیک که یکیش اینه:

میخوام قبله اینکه اسکرول به انتها برسه لود بشه پنل ها تا وقفه ای ایجاد نشه با این کد:

If Scroll.ScrollPosition + Scroll1.Height = Scroll1.Panel.Height Then

اما تمام کارهایی که تو تاپیک بود رو کردم + منفی، مثبت، درصد، دیپ، و جابجا کردم کدهارو اما بازم فایده نداشت لطفا اگه راه حلی داره بگید لطفا.

 

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

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

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

کد زیر رو استفاده کنید.

If Scroll.ScrollPosition + Scroll1.Height > Scroll1.Panel.Height-500 Then

«موفق باشید.»

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

در 2 ساعت قبل، amin.mn گفته است :

کد زیر رو استفاده کنید.


If Scroll.ScrollPosition + Scroll1.Height > Scroll1.Panel.Height-500 Then

«موفق باشید.»

خیلی ممنون فقط یه باگی داره، وقتی آروم آروم اسکرول بشه که درسته.

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

مثلا اگه از 30 با سرعت عبور کنیم در حالی که شاید تا 50 همین پنل رو باز کنه اما اسکرول برمیگرده به مثلا 40...و

با تشکر.

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

در 7 ساعت قبل، amin.mn گفته است :

کد زیر رو استفاده کنید.


If Scroll.ScrollPosition + Scroll1.Height > Scroll1.Panel.Height-500 Then

«موفق باشید.»

سلام استاد

من داخل برنامه و اسکرول به آخر میرسه و میخواد اطلاعات جدید بگیره یه مسیج شو میدم که مثلا در حال بارگذاری...

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

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

اگه میشه راهنمایی بفرمایید

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

در 6 ساعت قبل، Siaic گفته است :

سلام استاد

من داخل برنامه و اسکرول به آخر میرسه و میخواد اطلاعات جدید بگیره یه مسیج شو میدم که مثلا در حال بارگذاری...

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

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

اگه میشه راهنمایی بفرمایید

شما باید از یه متغیر بولی برای مشخص کردن رسیدن به انتهای دیتابیس استفاده کنید.

و هنگام اسکرول مقدار اون رو هم چک کنید که آیا به انتها رسیده یا نه

در 11 ساعت قبل، HS71 گفته است :

خیلی ممنون فقط یه باگی داره، وقتی آروم آروم اسکرول بشه که درسته.

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

مثلا اگه از 30 با سرعت عبور کنیم در حالی که شاید تا 50 همین پنل رو باز کنه اما اسکرول برمیگرده به مثلا 40...و

با تشکر.

شما می تونین مقدار Scroll.ScrollPosition رو قبل از بارگذاری اطلاعات دیتابیس گرفته و بعد از اون دوباره مقدارش رو تنظیم کنید.

«موفق باشید.»

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

در 14 ساعت قبل، amin.mn گفته است :

شما باید از یه متغیر بولی برای مشخص کردن رسیدن به انتهای دیتابیس استفاده کنید.

و هنگام اسکرول مقدار اون رو هم چک کنید که آیا به انتها رسیده یا نه

شما می تونین مقدار Scroll.ScrollPosition رو قبل از بارگذاری اطلاعات دیتابیس گرفته و بعد از اون دوباره مقدارش رو تنظیم کنید.

«موفق باشید.»

آقا شرمنده دیگه، نمیدونم چرا هرچی تست و عوض میکنم جای کدهارو نمیشه....:unknown:

خیلی که درست رفتم تونستم اسکرول رو به عقب برنگردونم اما بجاش مثلا به 50 یا هر پوزیشنی که لیمیت داده شده میرسه همونجا درجا توقف میکنه که جالب نیست و از همه مهمتر به آخرین آیتم که میرسه دیگه اسکرول برنمیگرده به عقب و هرچی اسکرول کنیم به عقب یه زره میره اما دوباره سریع میره رو آخره پوزیشن.

 If Scroll1.ScrollPosition + Scroll1.Height > Scroll1.Panel.Height-600 Then
 	Scroll1.ScrollPosition = Scroll1.ScrollPosition
	Scroll1.ScrollPosition = Scroll1.ScrollPosition&scorll.height
	Scroll1.ScrollPosition = Scroll1.ScrollPosition&scorll.height&scroll.panel.height

' If Scroll1.ScrollPosition + Scroll1.Height > Scroll1.Panel.Height Then 
' 	Scroll1.ScrollPosition = Scroll1.ScrollPosition
' End If

'	If Scroll1.ScrollPosition + Scroll1.Panel.Height = Scroll1.Panel.Height Then
'		Scroll1.ScrollPosition = Scroll1.Height
'	End If

'	If Scroll1.ScrollPosition + Scroll1.Panel.Height = Scroll1.Panel.Height Then
'		Scroll1.ScrollPosition = Scroll1.panel.Height
'	End If
..................................

بعضی از نمونه کدهایی که نوشتمه اما:

انواع این کدهارو نوشتم جابجایم کردم و بعده حلقه هم نوشتم اما درست نشد..... لطفا اگه میشه یکم دقیق تر بگید با مثال مشکل چیه دقیقا ممنون.:give_rose:

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

شما یه متغیر قبل بارگذاری اطلاعات دیتابیس بسازین که مقدار Scroll.ScrollPosition رو ذخیره کنه

بعد از بارگذاری کامل اونا هم دوباره مقدار متغیر رو به Scroll.ScrollPosition برگردنه

If Scroll1.ScrollPosition + Scroll1.Height > Scroll1.Panel.Height-600 Then
 	Dim pos As Int=Scroll1.ScrollPosition
	'اینجا هم برای
	'بارگذار داده ها
	Scroll1.ScrollPosition=pos
End If

به محلی که برای بارگذاری داده ها مشخص کردذم دقت کنید.

«موفق باشید.»

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

در 55 دقیقه قبل، amin.mn گفته است :

شما یه متغیر قبل بارگذاری اطلاعات دیتابیس بسازین که مقدار Scroll.ScrollPosition رو ذخیره کنه

بعد از بارگذاری کامل اونا هم دوباره مقدار متغیر رو به Scroll.ScrollPosition برگردنه


If Scroll1.ScrollPosition + Scroll1.Height > Scroll1.Panel.Height-600 Then
 	Dim pos As Int=Scroll1.ScrollPosition
	'اینجا هم برای
	'بارگذار داده ها
	Scroll1.ScrollPosition=pos
End If

به محلی که برای بارگذاری داده ها مشخص کردذم دقت کنید.

«موفق باشید.»

ممنون امین جان تغییرات انجام شد و  باز نیاز شد تغییراتی دیگه بدم چون مشکل داره که تغییراتی دادم..... اما مشکلی که هست هنگام اسکرول سریع، اسکرول روی پوزیشن ثابت میشه که جالب نیست..:sorry:

و به آخرای لیست که میرسه اون پنج شیش تای آخری اونجا اسکرول مثله چسب میشه! که وقتی اسکرول میشه یکم یکم میره پایین!!:shout:

خلاصه ممنون از راهنماییهات اگه راهی میدونستی که بگو  لطفا...اگرم نه که تاپیک فک کنم رو به قفلی میره...  خودمم سعی میکنم ببینم چی میشه...اگه تونستم همینجا کد نهایی رو میزارم...

باز هم تشکر موفق باشید.    :53:

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

خب اگر به آخر برسه و دیتابیس چیزی نداشته باشه که نشون بده

نباس با یه شرط اینو چک کنید تا در یک تکرار نامتناهی گرفتار نشید.

یه متغیر بساز از نوع بولی قبل از اجرای کد زیر مقدارش رو با if چک کن

If Scroll1.ScrollPosition + Scroll1.Height > Scroll1.Panel.Height-600 Then
 	Dim pos As Int=Scroll1.ScrollPosition
	'اینجا هم برای
	'بارگذار داده ها
	Scroll1.ScrollPosition=pos
End If

خب هر گاه دیتابیس چیزی برای نمایش نداشت. مقدارش رو false کن

البته من از همین روش برای یکی از مشتری هام استفاده کردم و یه if دیگه هم جهت اطمینان از یک بار اجرا شدن بارگذاری در هر مرحله استفاده کردم.

خیلی خوب و روان شده بود.

به هرحال سعی کنید روند اجرای کدی که می نویسید رو از قبل بررسی کنید تا دچار مشکل کمتری بشید.

«موفق باشید.»

 

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

بایگانی شده

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

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

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