امیرحسین قاسمی 610 ارسال شده در 13 آذر، ۱۴۰۱ اشتراک گذاری ارسال شده در 13 آذر، ۱۴۰۱ سلام برای اینکه یه toast شخصی بسازیم ابتدا از Project->Add New Module->Class Module->Standard Class یه Class به اسم CustomToast میسازیم و کدهای پیشفرضشو پاک می کنیم و کدهای زیر رو قرار میدیم: Private Sub Class_Globals Private ToastLBL As Label Dim QueueList As List End Sub Sub Initialize QueueList.Initialize QueueList.Clear End Sub Private Sub Isinitialized End Sub Sub Show(Text As String,LongDuration As Boolean) If ToastLBL.IsInitialized Then If ToastLBL.Visible Then QueueList.Add(CreateMap("Text":Text,"LongDuration":LongDuration)) Return End If End If Dim R As Reflector R.Target = R.GetActivityBA ToastLBL.Initialize("") ToastLBL.Visible=False R.GetField("vg").As(Activity).AddView(ToastLBL,20%x,80%x,60%x,10%y) Dim CD As ColorDrawable CD.Initialize(Colors.DarkGray,10) ToastLBL.Background=CD ToastLBL.Text=Text ToastLBL.Gravity=Gravity.CENTER ToastLBL.TextSize=18 ToastLBL.TextColor=Colors.White ToastLBL.SingleLine=False ToastLBL.SetVisibleAnimated(500,True) Dim SU As StringUtils ToastLBL.Height=SU.MeasureMultilineTextHeight(ToastLBL,ToastLBL.Text)+1%y Dim jo As JavaObject=ToastLBL Dim TextWidth As Int=jo.RunMethodJO("getPaint",Null).RunMethod("measureText",Array(ToastLBL.Text)) If TextWidth<60%x Then ToastLBL.Width=TextWidth+4%x End If ToastLBL.Top=92.8%y-ToastLBL.Height ToastLBL.Left=50%x-ToastLBL.Width/2 Dim MyLongDuration As Int=3500 If LongDuration=False Then MyLongDuration=2000 End If Sleep(MyLongDuration) ToastLBL.SetVisibleAnimated(500,False) ToastLBL.Visible=False ToastLBL.RemoveView Queue End Sub Sub Queue If QueueList.IsInitialized Then If QueueList.Size>0 Then Dim mymap As Map=QueueList.Get(0).As(Map) QueueList.RemoveAt(0) Show(mymap.Get("Text"),mymap.Get("LongDuration")) End If End If End Sub از کلاسی که ساختیم در داخل اکتیویتی به این شکل استفاده میکنیم: Sub Globals Dim Toast As CustomToast End Sub Sub Activity_Create(FirstTime As Boolean) Toast.Initialize End Sub Private Sub Button1_Click Toast.Show("تست",False) End Sub اگر چندین بار پشت سر هم روی دکمه کلیک کنین و درخواست نمایش Toast رو بدین درخواست هاتون توی صف قرار میگیرن و بعد از اینکه Toast اولی نمایش داده شد، Toast دومی و بعد Toast سومی و... نمایش داده خواهد شد. کتابخونه های مورد نیاز: StringUtils و Reflection هزینه استفاده: 3 صلوات بر محمد و آل محمد لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
MR.B4A 104 ارسال شده در 18 آذر، ۱۴۰۱ اشتراک گذاری ارسال شده در 18 آذر، ۱۴۰۱ در ۱۴۰۱/۹/۱۳ در 01:46، امیرحسین قاسمی گفته است: سلام برای اینکه یه toast شخصی بسازیم ابتدا از Project->Add New Module->Class Module->Standard Class یه Class به اسم CustomToast میسازیم و کدهای پیشفرضشو پاک می کنیم و کدهای زیر رو قرار میدیم: Private Sub Class_Globals Private ToastLBL As Label Dim QueueList As List End Sub Sub Initialize QueueList.Initialize QueueList.Clear End Sub Private Sub Isinitialized End Sub Sub Show(Text As String,LongDuration As Boolean) If ToastLBL.IsInitialized Then If ToastLBL.Visible Then QueueList.Add(CreateMap("Text":Text,"LongDuration":LongDuration)) Return End If End If Dim R As Reflector R.Target = R.GetActivityBA ToastLBL.Initialize("") ToastLBL.Visible=False R.GetField("vg").As(Activity).AddView(ToastLBL,20%x,80%x,60%x,10%y) Dim CD As ColorDrawable CD.Initialize(Colors.DarkGray,10) ToastLBL.Background=CD ToastLBL.Text=Text ToastLBL.Gravity=Gravity.CENTER ToastLBL.TextSize=18 ToastLBL.TextColor=Colors.White ToastLBL.SingleLine=False ToastLBL.SetVisibleAnimated(500,True) Dim SU As StringUtils ToastLBL.Height=SU.MeasureMultilineTextHeight(ToastLBL,ToastLBL.Text)+1%y Dim jo As JavaObject=ToastLBL Dim TextWidth As Int=jo.RunMethodJO("getPaint",Null).RunMethod("measureText",Array(ToastLBL.Text)) If TextWidth<60%x Then ToastLBL.Width=TextWidth+4%x End If ToastLBL.Top=92.8%y-ToastLBL.Height ToastLBL.Left=50%x-ToastLBL.Width/2 Dim MyLongDuration As Int=3500 If LongDuration=False Then MyLongDuration=2000 End If Sleep(MyLongDuration) ToastLBL.SetVisibleAnimated(500,False) ToastLBL.Visible=False ToastLBL.RemoveView Queue End Sub Sub Queue If QueueList.IsInitialized Then If QueueList.Size>0 Then Dim mymap As Map=QueueList.Get(0).As(Map) QueueList.RemoveAt(0) Show(mymap.Get("Text"),mymap.Get("LongDuration")) End If End If End Sub از کلاسی که ساختیم در داخل اکتیویتی به این شکل استفاده میکنیم: Sub Globals Dim Toast As CustomToast End Sub Sub Activity_Create(FirstTime As Boolean) Toast.Initialize End Sub Private Sub Button1_Click Toast.Show("تست",False) End Sub اگر چندین بار پشت سر هم روی دکمه کلیک کنین و درخواست نمایش Toast رو بدین درخواست هاتون توی صف قرار میگیرن و بعد از اینکه Toast اولی نمایش داده شد، Toast دومی و بعد Toast سومی و... نمایش داده خواهد شد. کتابخونه های مورد نیاز: StringUtils و Reflection هزینه استفاده: 3 صلوات بر محمد و آل محمد سلام. تشکر از این که علمتان را در اختیار بقیه قرار میدهید. فقط کلاسی که نوشتید دوتا خطا داره: و هردوشون هم میگن متغیر فلان تعریف نشده!! البته این سورس نیاز به کتابخانه جاوا هم داره لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
امیرحسین قاسمی 610 ارسال شده در 18 آذر، ۱۴۰۱ سازنده اشتراک گذاری ارسال شده در 18 آذر، ۱۴۰۱ من الان امتحان کردم هیچ خطایی نداره و نباید هم داشته باشه. کلاس رو پیوست میکنم تست کنین. کتابخونه های StringUtils و Reflection و JavaObject هم تیک بزنین هرچند که ربطی به این خطاهای شما نداره. اگه خطا همچنان پابرجا بود مربوط به Core خواهد بود و B4A نسخه 12 و SDK مخصوصش رو از اینجا دریافت و نصب کنین. mToast.zip لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
MR.B4A 104 ارسال شده در 18 آذر، ۱۴۰۱ اشتراک گذاری ارسال شده در 18 آذر، ۱۴۰۱ 2 دقیقه قبل، امیرحسین قاسمی گفته است: من الان امتحان کردم هیچ خطایی نداره و نباید هم داشته باشه. کلاس رو پیوست میکنم تست کنین. کتابخونه های StringUtils و Reflection و JavaObject هم تیک بزنین هرچند که ربطی به این خطاهای شما نداره. اگه خطا همچنان پابرجا بود مربوط به Core خواهد بود و B4A نسخه 12 و SDK مخصوصش رو از اینجا دریافت و نصب کنین. mToast.zip 937 B · 0 دریافت آخخخخخخخخخخخخخخخخخخخخ داداش شرمنده. کداش شکل کدای b4a بود، من به این دقت نکردم که این سورس برای کاتلین هست. بازهم پوزش میطلبم. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
امیرحسین قاسمی 610 ارسال شده در 18 آذر، ۱۴۰۱ سازنده اشتراک گذاری ارسال شده در 18 آذر، ۱۴۰۱ 9 دقیقه قبل، batman123 گفته است: این سورس برای کاتلین هست دوست عزیز برای B4A هست نه کاتلین! لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
MR.B4A 104 ارسال شده در 18 آذر، ۱۴۰۱ اشتراک گذاری ارسال شده در 18 آذر، ۱۴۰۱ ۱ ساعت قبل، امیرحسین قاسمی گفته است: دوست عزیز برای B4A هست نه کاتلین! پس این چه آدرسه؟! https://s6.uupload.ir/files/8_oyt4.png لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
امیرحسین قاسمی 610 ارسال شده در 18 آذر، ۱۴۰۱ سازنده اشتراک گذاری ارسال شده در 18 آذر، ۱۴۰۱ 20 دقیقه قبل، batman123 گفته است: پس این چه آدرسه؟! https://s6.uupload.ir/files/8_oyt4.png اشتباه شده میگم اصلاح میکنن. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
DexterFstone 395 ارسال شده در 19 آذر، ۱۴۰۱ اشتراک گذاری ارسال شده در 19 آذر، ۱۴۰۱ 19 ساعت قبل، batman123 گفته است: سلام. تشکر از این که علمتان را در اختیار بقیه قرار میدهید. فقط کلاسی که نوشتید دوتا خطا داره: و هردوشون هم میگن متغیر فلان تعریف نشده!! البته این سورس نیاز به کتابخانه جاوا هم داره شاید از B4A نسخه قدیمی استفاده میکنید که متد AS هنوز اضافه نشده سیع کنید از آخری نسخه استفاده کنید که دچار چنین مشکلاتی نشید اگر هم میخواید بدون مشکل کارتون راه بیوفته 2 بخش As.(Activity) و As.(Map) پاک کنید به احتمال زیاد به مشکل نمیخورید مگر اینکه ورودی ها را اشتباه وارد کنید و از نوع Map و Activity نباشن لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.