رفتن به مطلب

Salar82

پاسخگو و راهنما
  • تعداد ارسال ها

    473
  • تاریخ عضویت

  • آخرین بازدید

  • روز های برد

    69

آخرین بار برد Salar82 در 3 آبان

Salar82 یکی از رکورد داران بیشترین تعداد پسند مطالب است !

اعتبار در سایت

543 عالی

8 دنبال کننده

درباره Salar82

  • درجه
    کاربر حرفه ای
  • تاریخ تولد 22 شهریور 1382

مشخصات پروفایل

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

آخرین بازدید کنندگان نمایه

1,341 بازدید کننده نمایه
  1. سلام به همه اساتید با کد زیر که در تمامی پلتفرم های بیسیک کار میکنه، میتونید چک کنید که آیا فرمت ایمیلی که وارد شده، درسته یا نه. Private Sub EmailAddressCheck(email As String) As Boolean Return Regex.IsMatch("^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$",email) End Sub اول ساب بالا رو به کلاستون اضاف کنید و به شکل زیر ایمیل رو چک کنید: If EmailAddressCheck("test@b4x.de") Then Log("E-Mail is valid") Else Log("E-Mail is not valid") End If موفق باشید
  2. سلام به همه گاهی اوقات لازمه که شفافیت یه ویو رو تغییر بدیم. با کد زیر که هم در B4A ، هم در B4i و هم در B4J بخوبی کار می‌کنه، میشه این کار رو براحتی انجام داد Public Sub SetAlpha (View As B4XView, Level As Float) #If B4A Dim jo As JavaObject = View Dim alpha As Float = Level jo.RunMethod("setAlpha", Array(alpha)) #Else If B4J Dim n As Node = View n.Alpha = Level #Else if B4i Dim v As View = View v.Alpha = Level #End If End Sub حداقل مقدار ممکن (بیشترین شفافیت): 0 حداکثر مقدار ممکن (کمترین شفافیت): 1 امیدوارم مفید باشه موفق باشید
  3. سلام به همه دوستان سورس بارکدخوان برای B4A و B4i با استفاده از B4XPages رو قرار میدم. سورس ساده‌ای هست: Project.zip دو نکته رو فراموش نکنید: PlistExtra # در B4i کدهای مانیفست و AdditionalJar# در B4A برای استفاده هم باید کتابخونه BcToast که یک کتابخونه داخلی هست، رو فعال کنید. اگر هم کتابخونش رو ندارین، از لینک زیر تهیه کنید: https://www.b4x.com/android/forum/threads/b4x-bctoast-cross-platform-custom-toast-message.111046/#content امیدوارم مفید باشه موفق باشید
  4. سلام دوست عزیز چرا sql رو تو DirInternal ذخیره نمیکنین؟ اینطوری کاربر دیگه به دیتابیس دسترسی نداره و حتی دیگه دسترسی هم نیازی نیست در ضمن پست رو تو تالار مناسبی نذاشتین
  5. Salar82

    منوی باز شو

    سلام دوست عزیز اگه اشتباه نکنم، منظور شما Popup Menu هست که کتابخونه های مختلفی در این زمینه رپ شده که تو انجمن هم موجوده:
  6. جلسه چهارم _ بخش دوم بسسسسیار مهههههم قبل از اینکه این جلسه رو شروع کنم، عذر خواهی من رو بابت تاخیر در این جلسه بپذیرید. یکی از دلایل تاخیر، سوالی بود که در سایت مرجع پرسیده بودم؛ سوال مربوط به جابجایی ویوها بین صفحات B4XPages بود: https://www.b4x.com/android/forum/threads/b4xpages-move-view-between-pages.123863/#post-773784 خب همچون جلسات گذشته، در این جلسه هم، بیشتر با کدنویسی در B4XPages آشنا میشیم. بنده یک نکته رو از جلسات گذشته، فراموش کردم خدمتتون عرض کنم: رویداد Initialize در هر بار نمایش صفحات، اجرا میشه.... تو این جلسه، بطور کامل، چگونی دسترسی به ویوها و دیگر متغیرها در دیگر پیج ها و یا حتی جابجایی اونها بین صفحات رو بررسی میکنیم: برای اینکه بتونیم به متغیرها و ویوهای یک پیج، دسترسی داشته باشیم، اول باید به اون پیج دسترسی داشته باشیم؛ این روند منطقی ای هست که باید انجام شه. برای دسترسی به پیج های دیگه، اول از همه باید یه متغیر از اون پیج رو تعریف کرد: Dim P2 As Page2 P2.Initialize Page2، کلاس دیگری هست که ساختیم و اون رو به عنوان یه پیج جدید، به B4XPages اضافه کردیم که در جلسه سوم، کامل توضیح دادم. الان به اون کلاس دسترسی داریم اما هنوز به اون پیج دسترسی پیدا نکردیم. _دقت داشته باشید که در B4XPages، مفهوم هر پیج با هر کلاس فرق داره؛ باین صورت که هر پیج، یه کلاس B4XPages هست اما هر کلاس، لزوماً یک پیج نیست؛ چگونگی تبدیل یک کلاس به پیج رو در جلسات قبل، بطور کامل توضیح دادم خدمتتون_ . همونطور که گفتم، الان به کلاس Page2 دسترسی داریم اما به عنوان یک پیج خیر. در مرحله بعد، با استفاده از متد GetPage از کلاس B4XPages، به اون پیج دسترسی خواهیم داشت: Dim P2 As Page2 P2.Initialize P2 = B4XPages.GetPage("Page2_id") بعد از اینکه متغیرمون رو Initialize کردیم، اون رو از طریق متد GetPage، که یه ورودی از ما میگیره، برابر با متغیر P2 قرار میدیم. در ورودی این متد، همون id یی که برای Page2 در نظر گرفتیم(در جلسات قبل توضیح داده شده) رو وارد میکنیم. الان به پیج مد نظرمون، دسترسی 100 درصدی داریم. طبق چیزی که قبلا گفته شد، ساب Class_Globals، دقیقا عین Process_Globals در اکتیویتی ها هست. یعنی به ما این اجازه رو میده که به متغیرهایی که در این ساب تعریف شدن، دسترسی داشته باشیم. الان برای دسترسی به متغیرها، کافیه از متغیر P2 که از نوع همون کلاس هست، استفاده کنیم. مثلا فرض کنید که متغیر a از نوع Int رو در کلاس Page2، تعریف کردیم. حالا برای اینکه در پیج B4XMainPage، به اون دسترسی داشته باشیم کافیه بشکل زیر عمل کنیم: Dim P2 As Page2 P2.Initialize P2 = B4XPages.GetPage("Page2_id") Log(P2.a) اگر کد زیر در مکانی دلخواه، از هرپیجی که خواستین امتحان کنید. میبینید که دقیقا مقدار متغیر a به ما برمیگردونه. از این روش، میتونید به تمامی متغیرها و ویوها دسترسی داشته باشیم اما برای دسترسی به ویوها، باید یه نکته رو در نظر بگیریم: بطور پیشفرض، با تعریف یک ویو از طریق دیزاینر، اون ویو بصورت Private تعریف میشه. نکته‌ای که هست، اینه که به ویوها و متغیرهایی که بصورت Private تعریف میشن، نمیتونیم در دیگر پیج‌ها دسترسی داشته باشیم. برای رفع این مشکل، کافیه بجای Private، از Public استفاده کنیم: Public Btn1 As Button Public V1 As B4XView به همین سادگی با تغییر Private به Public، میتونیم به اونها دسترسی داشته باشیم. مثلا فرض کنید دو متغیر بالا در Page2 تعریف شدن. ما میتونیم در B4XMainPage، به تمامی اونها دسترسی کامل داشته باشیم: Dim P2 As Page2 P2.Initialize P2 = B4XPages.GetPage("Page2_id") Dim s As String = P2.Btn1.Text P2.Btn1.Text = "abc" با کد بالا، براحتی میتونیم متن یک ویو رو بگیریم و یا حتی اون رو تغییر بدیم. جابجایی ویوها بین پیج‌ها: بعضی وقتها، لازمه خود ویو رو بین پیج‌ها جابجا کنیم(دقت کنید که در اکتیویتی ها، قابلیت تغییر مشخصات یک ویو از دیگر اکتیویتی‌ به هیچ وجه امکان پذیر نیست. چه برسه به اینکه بخوایم ویو رو جابحا کنیم ) به تصویر زیر دقت کنید: در این تصویر، خطی که کشیده میشه، به پیچ قبلش هم منتقل میشه که این واقعا فوق‌العادست.... برای جابجا کردن یک ویو، کافیه از کد زیر استفاده کنیم: Dim P2 As Page2 P2.Initialize P2 = B4XPages.GetPage("Page2") Dim b1 As Button = P2.Btn1 b1.RemoveView Root.AddView(b1, 0, 0, 100%X, 20%Y) در اینجا بعد از تعریف و اینیشالایز کردن متغیر از نوع کلاس مدنظر و دادن دسترسی به اون پیج، میایم یه متغیر از نوع همان ویو(در اینجا، Button) تعریف میکنیم و به روشی که توضیح داده شد، برابر با ویوی مد نظرمون میزاریم. برای اینکه به ارور بر نخوریم، از RemoveView استفاده کردیم، و در نهایت، اون ویو(b1) رو به پیجمون اد میکنیم. به همین راحتی... با 6 خط کد... نکته بسسسسسیار مهم: برای اینکه ویو رو بتونید جابجا کنید، باید اول اینیشالایز شده باشه. مثلا شما نمیتونید ویویی از پیج دیگه که هنوز اون پیج نمایش داده نشده رو جابجا کنید. پس اول باید حداقل یکبار اون پیج، نمایش داده بشه تا اون ویو اد بشه. تو سورس به این موضوع پرداختم. نمونه سورس پیوست شد: Project_B4XPages.zip این جلسه هم به پایان رسید.... ان شاءالله در جلسه آینده بیشتر با قابلیت‌های B4XPages، آشنا میشیم. موفق باشید اگر نقدی، مشکلی و یا ایرادی از بنده هست، تو خصوصی میتونید پیام بدید. حتما استقبال میکنم.
  7. جلسه چهارم _ بخش اول قبل از اینکه وارد کار با ویوها و نحوه دسترسی بهشون در دیگر پیج ها بشیم، بهتره یه آشنایی با XUIViews داشته باشین: بخش بعد، با خصوصیات منحصر به فرد B4XPages، آشنا میشیم موفق باشید اگر نقدی، مشکلی و یا ایرادی از بنده هست، تو خصوصی میتونید پیام بدید. حتما استقبال میکنم.
  8. سلام خدمت همه‌ی دوستان یه کتابخونه بسیار مهم و کاربردی از سری کتابخونه های b4xlib رو براتون آوردم. امیدوارم مفید باشه. قبل از اینکه ویوها رو تا حدودی بررسی کنیم، یه پیش‌ نمایش کلی رو داشته باشیم: از اسم کتابخونه هم مشخص هست که این کتابخونه، یسری ویوها و دیالوگ ها از سری B4X (یعنی هم در B4A، هم در B4i و هم در B4J قابل استفاده هستن) رو در اختیارمون قرار میده که برای توسعه برنامه ها در B4XPages، خییلی بکارمون میاد. ویوها: B4XComboBox: خودتون هم میدونید، همون Spinner خودمونه ScrollingLabel: همونطور که از اسمش پیداست، لیبل قابل اسکرول هست(یعنی اگر متنی که در لیبل قرار میگیره، بیشتر از ارتفاع لیبل بشه، لیبل بطور اتوماتیک، قابل اسکرول میشه) البته کتابخونه های خاصی هم در این مورد رپ شدن؛ اما بصورت Custom View نیستن. AnotherProgressBar: همون پروگرس باری هست که در تصویر بالا و برنامه B4A-Bridge می‌بینید. B4XLoadingIndicator: شش انیمیشن مختلف برای لودینگ RoundSlider SwiftButton: دکمه 3 بعدی AnimatedCounter: مثل زیر B4XFloatTextField: B4XSwitch: اگر اطلاع داشته باشین، مثلا B4J در حالت عادی، چیزی به اسم سوئیچ نداره (بطور پیشفرض)، با این کتابخونه، میتونید این ویو رو اضافه کنید... B4XBreadCrumb: همون Navigation Control(همه ی اینها رو میتونید خودتون اضافه کنید و ببینید) B4XSeekBar: سیک بار عمودی و افقی MadeWithLove: قلب (در B4A-Bridge هم هست): B4XImageView: یک ایمیج ویوی بسیار کاربردی که یکی از قابلیتهاش، گرد کردن تصاویر هست. اینها، ویوها بودن.... الان بریم سراغ دیالوگها و قالب‌ها: B4XDialog: دیالوگ B4XDateTemplate: یک DatePicker هست. اما بر حسب میلادیه که تو تصویر هم مشخصه B4XColorTemplate: B4XLongTextTemplate : اگر دقت کنید، تو تصویر بالا، کاملا مشخصه(یک دیالوگ که متن زیاد رو ساپورت میکنه) B4XListTemplate : یک لیست از آیتم های مختلف که کاربر میتونه یکی از اونها رو انتخاب کنه: B4XSignatureTemplate: B4XInputTemplate : همون Input Dialog که میتونید یه متن رو در قالب دیالوگ، از کاربر بگیرید: B4XSearchTemplate : دیالوگی بین یه سری آیتم، قابلیت سرچ داره: موارد بیشتری هم هست که تصویرشون رو میذارم: کاستوم دیالوگ: و.... در کل کتابخونه بسسسسیار کاربردی هست. چه تو پروژه های B4XPages، چه تو پروژه های عادی (B4A,B4i,B4j) برای اطلاعات بیشتر، میتونید به پست اصلی در سایت مرجع مراجعه کنید: https://www.b4x.com/android/forum/threads/b4x-xui-views-cross-platform-views-and-dialogs.100836/#content کتابخونه( البته کتابخونه، داخلی هست و بطور پیشفرض در بیسیک موجوده ): XUI Views.rar نمونه سورس: XUI Views Example.zip برای استفاده از این ویوها، کافیه پست زسر رو مطالعه بفرمایید: البته دوستان قبلا چنین تاپیکی زده بودن، ولی تو این پست، بیشتر با اونها آشنا شدیم موفق باشید
  9. البته اگر دوستان هم در این زمینه همکاری داشته باشن، واقعا خوشحال میشم. به امید پیشرفت روز افزون انجمن...
  10. جلسه سوم _ قسمت 2 سلام دوستان یسری نکات برای استفاده از خاصیت CrossPlatform کلاسهای B4XPages باید در نظر داشته باشیم. مثلا از هر کتابخونه ای استفاده نکنیم. چون کتابخونه هایی که برای اندروید نوشته میشه، قابل استفاده در ios نیست، این مشکل یه سری راه حل داره که اینجا دو موردش رو خدمتتون عرض میکنم: 1- بیسیک برای حل این مشکل، یه سری کدها و کتابخونه هایی طراحی کرده، که هم در B4A، هم در B4i و هم در B4J قابل استفاده هست. کتابخونه های که در این زمینه آماده میشن، کتابخونه های سری b4xlib هستن که مثل کتابخونه های پیشفرض، دوفایل jar و xml نیستن و فقط یک فایل با پسوند b4xlib هست. من این کدها و کتابخونه ها رو تا جایی که بتونم، تو انجمن قرار میدم و برای شناسایی اونا، عنوان رو با *B4X* مشخص میکنم. پس هر تاپیکی از بنده که دارای عبارت *B4X* و یا *B4XPages* بود، میتونید به عنوان یک کتابخونه، در B4XPages و یا دیگر پروژه های B4A، B4i و یا B4J استفاده کنید. 2- دومین روش اینه که در B4XPages چک کنید که مثلاً اگر در B4A بودیم، از فلان کتابخونه استفاده شه و یا اگر در B4i بودیم، از فلان کتابخونه دیگه استفاده کن. در واقع به IDE میفهمونیم، که از چه کتابخونه ای استفاده کنه. چک کردن این مورد، دو راه داره: راه اول استفاده از #: #If B4A Dim p As Phone p.SetRingerMode(i.RINGER_NORMAL) #Else IF B4J Dim j As JFX 'j. #Else '...... #End If اگر این رو هرجایی از بیسیک بنویسید(فرض بر این میگیریم، که هر سه بلوک، دارای کد خاص خودشون باشن)، در بیسیک، موقع کامپایل، فقط کد داخل بلوک B4A کامپایل میشه؛ در B4J، فقط کدهای مربوط به خودش کامپایل میشه و بهمین ترتیب در B4i راه حل دوم برای چک کردن IDE، استفاده از کتابخونه xui هست: Dim xui As XUI If xui.IsB4A Then Dim p As Phone p.SetRingerMode(i.RINGER_NORMAL) Else If xui.IsB4J Then Dim j As JFX 'j. Else End If این هم دقیقا عین بالاس، هیچ فرقی نداره. هر تاپیکی از بنده که دارای عبارت *B4X* و یا *B4XPages* بود، میتونید به عنوان یک کتابخونه، در B4XPages و یا دیگر پروژه های B4A، B4i و یا B4J استفاده کنید.(پس با استفاده از این کتابخونه ها، دیگه لازم نیست چنین شرط‌هایی بذاریم) مثل این پست: پیشنهاد میکنم حتما حتما حتما فیلم آموزشی زیر از خود شخص ارل رو ببینید تا درکتون از این پروژه ها در B4XPages، بره بالاتر. https://vimeo.com/440642051 شرمنده خودم وقت مناسب ندارم که چنین فیلمهایی پر کنم. جلسه بعد، بیشتر با خصوصیات و رفتار B4XPages آشنا میشیم. موفق باشید اگر نقدی، مشکلی و یا ایرادی از بنده هست، تو خصوصی میتونید پیام بدید. حتما استقبال میکنم.
  11. سلام به همه اینم یه کتابخونه خوب دیگه استفاده کنید... لینک توضیحات مربوطه در سایت مرجع: https://www.b4x.com/android/forum/threads/b4x-xui-as-swipe-card-a-tinder-like-swipeable-card-view.117415/ دانلود: کتابخانه(b4xlib): ASSwipeCard.rar مثال در B4A B4A Example.zip مثال در B4i B4I Example.zip مثال در B4J B4J Example.zip موفق باشید
  12. سلام دوستان همونطور که قول داده بودم، لینک تمامی آموزش‌ها و سورس‌ها رو همینجا قرار میدم. موفق باشید
  13. Salar82

    *B4XPages* ساخت QR کد

    سلام خدمت همه دوستان پیشنهاد میکنم حتماحتما قبل از باز کردن سورس، ویدیوی آموزشی زیر رو از خود شخص ارل که ساخت همین پروژه هست، مطالعه کنید. https://vimeo.com/440642051 سورس ساده و کاربردی زیر که با B4XPages نوشته شده رو قرار دادم که با مطالعه و بررسی اون، بر B4XPages، تسلط کافی داشته باشین. سورس ساده هست و کافیه یه کلاس باسم QRGenerator رو به پروژه اضاف کنید و چندتا کد ساده برای استفاده از کلاس، بنویسید. همین این سورس، CrossPlatform هست؛ یعنی با دو کلاس B4XPages، سه پروژه نوشته شده. B4A، B4i و B4J. Project.zip با مطالعه این سورس، به اهمیت B4XPages پی می‌برید. موفق باشید
  14. سلام دوست عزیز ببینید این مشکلتون رو حل میکنه
×
×
  • جدید...