رفتن به مطلب

تخته امتیازات

  1. محمدرضا شاهپیری

    محمدرضا شاهپیری

    مدیر کل سایت


    • امتیاز

      577

    • تعداد ارسال ها

      3,041


  2. Salar82

    Salar82

    پاسخگو و راهنما


    • امتیاز

      531

    • تعداد ارسال ها

      466


  3. Mr.Kafiri

    Mr.Kafiri

    کاربر رو به رشد


    • امتیاز

      186

    • تعداد ارسال ها

      213


  4. mahdi tahan

    mahdi tahan

    کاربر فعال


    • امتیاز

      124

    • تعداد ارسال ها

      847



مطالب محبوب

در حال نمایش مطالب دارای بیشترین امتیاز از زمان جمعه, 3 آبان 1398 در همه بخش ها

  1. 10 امتیاز
    بسم الله الرحمن الرحیم سلام و درود خدمت همه‌ی اعضای انجمن انسرسنتر B4X چن وقتی هست از یه سری کتابخونه ها رونمایی کرده؛ مثل B4XTurtle و B4XPages و .... که فوق العاده کاربردی هستن. همونطور که قولش رو داده بودم، قرار شد یه دوره کامل و رایگان آموزش کار با این کتابخونه های جامع و کامل رو قرار بدم. که انشاءالله با B4XPages که خیلی مورد استقبال برنامه نویسان قرارگرفته دوره ها رو شروع می‌کنم. منتها قبل از شروع آموزش، یه سری نکات هست که باید خدمت همگی عرض کنم: 1- برای اینکه آموزشها پراکنده نشن، لطفا تو این پست، چیزی نفرستین و اگر موردی، سوالی و یا مشکلی بود، یه پست جدید ایجاد کنید. 2- آموزشها تا اطلاع ثانویه بصورت چند روز یکبار قرار داده میشن (بدلیل کمبود وقت بنده) اما هر زمان که وقت اضاف آوردم، حتما سعی میکنم جلسه بعد رو آماده کنم و بفرستم. (چون خودم هم باید مطالعه در این مورد داشته باشم ) 3- آموزش های مقدماتی همینجا قرار داده میشن و دیگر سورس ها و آموزش های مربوطه، تو یه پست جدید میذارم تا مشکلات مربوط به اونا، همونجا مطرح بشن. 4- البته لینک آموزشهای دیگه هم، اینجا قرار داده میشه. پس تمامی آموزشهای مربوط به B4XPages، همینجا در دسترس هستن. 5- آموزشها، کاملا مطابق با سایت مرجع پیش میره. پس نگران ناقص بودن دوره نباشید 6- مهم ترین نکته‌ای که مد نظر بنده هست و بهمین خاطر آموزش رو رایگان گذاشتم، اینه: هزینه هر آموزش، یه صلوات برای سلامتی و ظهور امام عصر (عج) هست .... ان شاءالله تا چن روز آینده، دوره آموزشی رو شروع می‌کنیم. امیدوارم در تمام مراحل زندگی موفق باشید.
  2. 9 امتیاز
    جلسه اول خدا رو شکر جلسه اول آماده شد. امیدوارم کامل و مفید باشه. اول از همه، بهتره یه مقدمه از B4XPages بگم تا بفهمیم اصلا چی هست و بدرد چی میخوره و چه مزیت هایی داره. در واقع B4XPages، یه پنله داخل یه اکتیویتی اما در عمل، یه کلاس جایگزین برای Activity ها هست. یعنی کسی که با این کلاس کار میکنه، لایوت رو تو همین کلاس لود میکنه و کدهاشم همینجا مینویسه و دیگه کاری به اکتیویتی ها نداره. مهمترین فایده‌ی B4XPages، اینه که دیگه لازم نیست با رویدادها و چرخه حیات یک اکتیویتی (مثل Activity_Create , Activity_Resume , Activity_Resume , Activity_KeyPress و ....) سر و کله بزنیم؛ صفحات هیچ وقت از بین نمیرن و براحتی از هر کجا میشه به صفحات دیگه دسترسی داشت (که ان‌شاءالله در جلسات بعد، کامل بررسی میکنیم) این کلاس واقعا کار رو برای یه توسعه دهنده اندروید ساده میکنه. فایده دیگه ای که داره، اینه که با یه کد، میتونید همزمان برای اندروید و ios برنامه بنویسین. (البته نه دقیقا، یه سری تفاوتها هست که ان‌شاءالله در آینده در این مورد بحث خواهیم کرد) خب قبل از اینکه بطور تخصصی وارد آموزش بشیم بهتره که این موارد رو درنظر بگیریم: 1- هیچ کسی مجبور نیست از این روش برای نوشتن برنامش استفاده کنه. 2- هنوز یه سری محدودیت ها داره که ان‌شاءالله رفع میشه. یکی از مهمترین محدودیتهاش اینه که انیمیشن بین صفحات، فقط در یک جهت حرکت میکنن و قابل تغییر هم نیستن. 3- برای استفاده از B4XPages، باید از نسخه 10 به بعد بیسیک استفاده کنید. اینم یه پیشنمایش از B4XPages: سعی کردم حجم آموزش رو کمتر و در عوض، آموزشها رو پیوسته‌تر کنم. ان‌شاءالله در جلسه بعد، بیشتر بررسی می‌کنیم که B4XPages، دقیقا چه مشکلاتی رو برای برنامه نویس رفع میکنه. اگر نقدی، مشکلی و یا ایرادی از بنده هست، تو خصوصی میتونید پیام بدید. حتما استقبال میکنم.
  3. 8 امتیاز
    مشاهده فایل PersianAudioRecorder با سلام. با یه کتابخونه بسیار کاربردی دیگه در خدمت دوستان هستیم. یکی از مواردی که اکثر دوستان باهاش مورد داشتن ضبط صدای با کیفیت توی اندروید هست. این کتابخونه این امکان رو برای شما فراهم میکنه که یک ضبط صدای با کیفیت دلخواه داشته باشین. این کتابخونه تقریبا از تلگرام قسمت voice برداشته شده و قاعدتا خیلی حرفه ای روش کار شده. کار با کتابخونه خیلی راحت هست به این ترتیب که اول به صورت زیر اینشیالایز میکنید Private audiorecord As PersianAudioRecorder audiorecord.Initialize("audio",audiorecord.ENCODING_PCM_16BIT,audiorecord.CHANNEL_IN_MONO,44100,32000) ورودی اول که ایونت هست ورودی دوم اینکدینگ هست که دو حالت pcm8 و pcm16 رو دارین که دومی کیفیتش بالاتر هست. همینطور وردی سوم کانال ضبط هست که مونو و استریو هست و وردی چهرم و پنجم هم سمپل ریت و بیت ریت هست که به صورت دلخواه میتونید بدید. و اما ضبط صدا هم که به شکل زیر باید درخواست بدید audiorecord.startRecord(dir) ورودی این متد یه استرینگه که میتونید مسیر دلخواه برای ذخیره فایل بدین یا اینکه یه رشته خالی رو بدین که پیش فرض توی File.DirDefaultExternal ذخیره میشه. برای متوقف کردن هم میتونید از دستور زیر استفاده کنید audiorecord.stopAudioRecorder این متد یه استرینگ برمیگردونه که مسیر کامل فایل ضبط شده هست. برای پخش صدای ضبط شده هم متدی رو قرار دادیم. audiorecord.playAudio(prf.GetUriFromFile(audioPatch)) که prf رو از کتابخونه PersianFileProvider میتونید استفاده کنید. سورس کامل کار با کتابخونه. voicerecorder.zip ارسال کننده محمدرضا شاهپیری ارسال دوشنبه, 26 اسفند 1398 دسته کتابخانه ها  
  4. 7 امتیاز
    جلسه سوم _ قسمت 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 آشنا میشیم. موفق باشید اگر نقدی، مشکلی و یا ایرادی از بنده هست، تو خصوصی میتونید پیام بدید. حتما استقبال میکنم.
  5. 7 امتیاز
    سلام خدمت دوستان گرامی یک سورس کاربردی و متریال پیامرسان با دیتابیس آنلاین رو براتون آماده کردم که باهاش میتونید خیلی چیزها درست کنید ، تصویر دیتابیس آنلاین : دریافت سورس و فایل های php مورد نیاز : http://s16.picofile.com/file/8411389050/chatroom.rar.html التماس دعا یاعلی
  6. 7 امتیاز
    باسلام مجدد ، پست ویرایش شد و لینک ها قرار داده شد امکانات سورس : ارسال پیام های طولانی امکان ضبط و ارسال صوت تا 30 مگابایت امکان حرکت به آخرین پیام تشخیص عدم اتصال به اینترنت و قطع شدن خودکار بروزرسانی اولیه (مانند دیگر پیامرسان ها) و تشخیص این که چند پیام جدید دارید صدای دریافت و ارسال پیام پخش فایل های صوتی ارسال شده توسط کاربران بصورت سیک بار در بالای برنامه(شبیه سروش) اگر قسمتی از کدها را بد نوشتم و گمراه کننده بود درخدمتم چند نکته » توی کدها هر جا که نقطه چین (.......................................) گذاشتم باید آدرس هاستتون وارد بشه توی فایل های php هم فایل های check.php و getcontent.php و register.php باید اطلاعات دیتابیس رو وارد کنید و در فایل uploadsound.php باید در قسمت $target = 'data/'; اسم پوشه ای که قرار هست فایل های صوتی در آن ذخیره شود را بنویسید ، مثلا من data رو نوشتم ، فایل های php را در هرجایی از هاست قرار میدهید آن پوشه را هم در کنارشان ایجاد کنید .
  7. 7 امتیاز
    جلسه دوم B4XPages، چه مشکلاتی را برای ما رفع می‌کند؟ در ادامه جلسه قبل، تو این جلسه میخوایم بیشتر خصوصیات B4XPages رو بررسی کنیم. B4XPages که از نسخه 10 به بعد بیسیک وارد دنیای B4X شد، خیلی چیزها رو برای ما ساده میکنه. توسعه دهندگان اندروید، با پیچ و خم های اون، کاملا آشنا هستن و میدونن که یه برنامه نویس اندروید، با چه چالش هایی روبرو هست. بخاطر همین، شاید درک سادگی B4XPages برای بعضی‌ها مشکل باشه. همونطور که در جلسه اول گفتم، B4XPages چند هدف داره: Cross Platform Layer (قبلا هم اشاره شد. با یه کد و یه کلاس، میتونید علاوه بر اندروید، برای ios و حتی B4J هم برنامه بنویسین) توسعه برنامه‌های اندرویدی رو بسیار ساده تر میکنه. از مزایای CrossPlatformLayer، این هست که B4XPages میاد اکثر تفاوتهای اکتیویتی‌های B4A، صفحات B4i و فرم های B4J رو پنهان میکنه و این یه نقطه قوت برای این کلاس هست. به همین دلیل خییلی از برنامه نویسان بیسیک، به سمت B4XPages حرکت کردن و تا الان استقبال خیلی خوبی از B4XPages شده. حتی اگر شما فقط به توسعه برنامه اندرویدی علاقه داشته باشید، باز میتونید از B4XPages استفاده کنید. سه نکته مهم درمورد کلاسهای B4XPages: این کلاس‌ها بر خلاف اکتیویتی‌ها، چرخه حیات ندارن (مثلا مثل اکتیویتی ها نیستن که اول Activity_Create فراخوانی بشه و بعد Activity_Resume و مثلا موقع خارج شدن، Activtiy_Paused اجرا بشه.) B4XPages کاملا منظم هست و هیچ وقت از بین نمیره که مثلا بخواد OnPaused داشته باشه و همین کار رو برای شما بسیار ساده تر میکنه.(اگر بطور مثال بخوام بگم، فرض کنید شما از داخل یه اکتیویتی دیگه، مثلا بتونید Title یه اکتیویتی دیگه رو تغییر بدید. چنین قابلیت‌هایی در B4XPages، فوق العاده کاربردی هستن.) متغیرها و ویوهای یک پیج، هرگز Reset و بازنشانی نمیشن و این بسیار مهمه. در B4XPages، بجای هر اکتیویتی، یک پیج داریم. سه نکته بالا، خیلی از کارها رو ساده میکنن. برای مثال، یه لیستی از اون‌ها رو آوردم: رویدادها، هرگز از بین نمیرن و یا در صف قرار نمیگیرن حالت خواب، هرگز صدا زده نمیشه و بعنوان مثال، دیگه لازم نیست انیمیشن ها رو تو Activity_Resume مجددا restart کرد. در بیشتر موارد، دیگه نیازی از سرویس Starter نیست UI برنامه، هرگز از بین نمیره با استفاده از B4XPages، بطور مستقیم میشه ساب های مختلف در دیگر پیج ها رو فراخوانی کرد و دیگه نیاز به استفاده از CallSub و یا CallSubDelayed نیست. بطور مستقیم میتونیم به متغیرهای دیگر پیج ها دسترسی داشته باشیم. بطور مستقیم میشه به ویوهای دیگر پیج ها، دسترسی داشت و اونا رو دستکاری کرد. میشه یه ویو رو با تمام خصوصیاتش، بین پیج های B4XPages، جابجا کرد.(همونطور که در تصویر جلسه قبل هم مشخص بود) میتونید در یک پیج، پیج های دیگری اضافه کنید. (با کد) خیلی جاها، دیگه لازم نیست FirstTime = True رو چک کرد مدیریت دکمه بک گوشی، بسیار ساده تر است. اگر سورس چت بلوتوثی با اکتیویتی ها و B4XPages رو با هم مقایسه کنید، کاملا این سادگی رو متوجه میشید: سورس چت بلوتوثی قدیمی (با استفاده از اکتیویتی ها) Bluetooth.zip سورس چت بلوتوثی جدید (با B4XPages) خودتون این دو سورس رو مقایسه کنید. تا سادگی کار و کدها رو حس کنید. با این وجود، هیچ کسی مجبور نیست که از B4XPages استفاده کنه. در جلسه قبل هم گفته شد، B4XPages هنوز دارای یسری محدودیت ها هست. از جلسه بعد وارد کد نویسی و ایجاد این کلاس میشیم. موفق باشید اگر نقدی، مشکلی و یا ایرادی از بنده هست، تو خصوصی میتونید پیام بدید. حتما استقبال میکنم.
  8. 7 امتیاز
    سلام به همه یه کتابخونه دیروز تو سایت مرجع گذاشتش شد حیفم اومد اینجا نگمش. یه کتابخونه کامل برای قرار دادن ایموجی روی کیبورد. تصاویر: متاسفانه من وقت برای آموزشش ندارم(ببخشید) و گذاشتم که هرکس دوست داشت، بره ببینه. تو سایت مرجع کد به همراه مثال گذاشته شده و ساده هم هست. لینک صفحه اصلی: https://www.b4x.com/android/forum/threads/axemojiview.121321/#post-758511 کتابخونه + سمپل: https://www.dropbox.com/s/3by0a6pr5zylzgv/ax_emojiview.zip?dl=0
  9. 7 امتیاز
    با سلام خدمت همه عزیزان. یه کتابخونه فوقلاده زیبا و کاربردی رو براتون آماده کردیم. امروزه اپلیکیشنها واقعا از لحاظ بصری پیشرفتهای چشمگیری کردن و کمتر اپلیکیشن موفقی رو میبیند که طراحی و گرافیکش ضعیف باشه. بنابر این برای اینکه یه اپ موفق و جذاب داشته باشین باید حتما روی طراحی و گرافیکش کار کنید. تو کتابخونه حاظر یکی از جالبترین افکتها و طراحی ها یعنی پارالاکس رو براتون اماده کردیم. تو این کتابخونه تا جایی که تونستیم دست کاربر رو توی شخصی سازی باز گذاشتیم. اضافه کردن دکمه ها در جای دلخواه اضافه شدن دکمه منو. امکان چپ پین کردن و راست چین کردن دکمه ها امکان مخفی سازی خودکار تولبار حین اسکرول استفاده از فونت دلخواه. سازگاری کامل با ریسایکلرویو و ahnavigation جهت ساخت اسلاید منو. و بسیاری از قابلیتای دیگه که توی اموزش ذکر شده. *******این کتابخونه قبلا به صورت محدودتر توی ریسایکلر ویو وجود داشت. بنابراین دوستانی که ریسایکرویو رو دریافت کردن این کتابخونه به رایگان بهشون تعلق میگیره.******* لینک آموزش کار با کتابخانه. پیشنمایش.
  10. 6 امتیاز
    ***************نسخه 4.6 اضافه شد************** ویژگی اضافه شده تو این نسخه ریپل افکت هست که دوستان درخواست داده بودند. سورس و کتابخونه رو میتونید از پنل دریافت کنید. پیشنمایش. ***نسخه 4.5 منتشر شد. تو این نسخه قابلیت سایزبندی آیتمها به لیوت بیسیک اضافه شده. دانلود آموزش سایزبندی*** **سورس آموزش رو از پنل دریافت کنید** پیشنمایش نسخه androidx کتابخانه PersianRecyclerView اضافه شد نسخه جدید کتابخونه که توش از androidx استفاده شده منتشر شد. توصیه میشه دوستان حتما به نسخه جدید اپدیت کنن سورسشونو. پوشه لازم و آموزش تو لینک زیر. سورس جدید رو هم میتونید از پنل دریافت کنید *** دانلود پوشه extra برای این نسخه(مهم) *** *** دانلود آموزش راه اندزی نسخه androidx ***(مهم)*** توجه *** پکیج ScrollActivity از کتابخانه حذف شده است. از کتابخانه PersianParallax برای این کار استفاده کنید **************************************************************************************************************************************************************** ***بسیار مهم**آموزش مفاهیم و ساختار ریسایکلر ویو و متدهای اصلی اضافه شد. لینک آموزش***** *************************************************************************************************************************************** نسخه 3.6 اضافه شد. تو این نسخه نشانگر اسکرول به ریسایکلر اضافه شده . مثال و نحوه تنظیم. pr.Builder("pr").NormalRecycler.BALayout.ListView.SetScrollBarEnabled(True,pr.SCROLLBAR_POSITION_LEFT,Colors.Blue,1000).RecyclerView.Build *********************************************************************************************************************************************************** نسخه 3.5 اضافه شد. تو این نسخه متد getspansize برای چند ویویی کردن graidview اضافه شده. تو آموزش بالا به صورت کامل توضیح داده شده. ************************************************************************************************************************************************* نسخه 2.8 اضافه شد. دوستان دقت داشته باشن تو این نسخه کلاس PRViewUtils تغییر کرده. به صورت زیر استفاده شود. Dim pr As PersianRecyclerLayout Dim prview As PRViewUtils pr.Builder("pr").NormalRecycler.BALayout.ListView.RecyclerView.withDefaultDividier.Build prview=pr.PrViewUtils ' کلاس به این صورت گرفته میشود و متد اینشیالایز حذف شده است. ************************************************************************************************************************* ***قابل توجه دوستان عزیز.*** تو نسخه 2.5 متدهای کلیک برای ریسایکلر تغییر کرده اند و یه آرگومان به تابعها اضافه شده. تو این نسخه شما میتونید ویوی کلیک شده رو به صورت آبجکت داشته باشید و به راحتی میتونید اونو مدیریت کنید. توجه مثال زیر برای xml Sub pr_OnItemClick(contentTag As Object,viewclicked As Object,position As Int) Dim oi As PRViewUtils oi.init(viewclicked) oi.setTextForTextview("songnamtxt","cliked") End Sub برای بیسیک Private Sub pr_OnItemClick(ItemTag As Object,viewclicked As Object,position As Int) Dim st As String=ItemTag If "bt2".EqualsIgnoreCase(st) Then Dim bt As Button=viewclicked bt.Color=Colors.Red End If End Sub با سلام خدمت دوستان عزیز و همراهان همیشگی انجمن انسر سنتر بالاخره بعد از ماهها تلاش بی وقفه چیزی که قولش رو داده بودم آماده شد. یه نسخه کاملا متفاوت و جدید از کتابخونه بسیار کاربردی PersianRecyclerview. خیلی از دوستان با نسخه قبلی کتابخونه یه سری مشکلات داشتن. و خودم هم اعتقادم بر این بود که کار کردن باهاش یه کم پیچیده بود. خدا رو شکر توی نسخه حاظر تا جایی که امکان داشته کتابخونه رو ساده کردم و با چند خط کد به راحتی میتونید کتابخونه رو آماده و استفاده کنید. زحمت زیادی کشیده شده و امکانات بسیار زیاد و جذابی به کتابخونه اضافه شده که مطمئنا براتون جالب و حتی کاربردی خواهد بود. دوستانی که نسخه قبلی کتابخونه رو دریافت کردن میتونن از طریق پنل کتابخونه جدید و سورس رو دریافت کنن. و همچنین آموزش مقدماتی کار با کتابخونه رو از لینک زیر میتونن دریافت کنن. به زودی آموزشها قسمتها ی مختلف و امکانات جذاب کتابخونه توی همین تاپیک اضافه میشه. امیدوارم قدمی کوچک در راه توسعه نرم افزارهای ایرانی برداشته باشم . دوستان طبق معمول مارو از انتقادات و پیشنهادات سازنده خودتون بهره مند سازید. امیدوارم مورد استفاده قرار بگیره. لینک فروشگاه ***********************************************************************************آموزشهای مربوط به کتابخانه**************************************** 1-: قسمت اول آموزش مقدماتی کار با کتابخونه 2-: قسمت دوم آموزش(کار با لیوت منیجرهای کتابخانه قسمت 1) 3-: قسمت سوم(کار با لیوت منیجرهای کتابخانه قسمت 2) 4-: قسمت چهارم (کار با لیوت منیجر ها 3 (swipelayout)) 5:- قسمت پنجم(کار با لیوت منیجرها 4( steakyheader)) 6:-قسمت ششم(کار با لیوت منیجرها 5 (ویوپیجر لیوت منیجر)) 7:-قسمت هفتم(کار با انواع ریسایکلر ویوها شامل DiscreteScrollView , IndexRecyclervie , fastscrollrecycler ) 8:- قسمت هشتم (آموزش کار با treeview ویوی درختی) 9:- قسمت نهم(آموزش کار با گراف ویو (graphview)) 10:- قسمت دهم (آموزش دریافت و نمایش اطلاعات دیتابیس آنلاین و آفلاین در ریسایکلر ویو) 11:- قسمت یازدهم (آموزش نمایش اطلاعات بسیار زیاد دیتابیس آفلاین در ریسایکلر ویو با لیمیت ) 12:- قسمت دوازدهم (آموزش ساخت صفحه اول بازار ***** حتما آموزش رو ببینن دوستان******) **(دانلود سورس ویرایش شده) 13:- ساخت لیست علاقه مندی با استفاده از ریسایکلر و کتابخانه m.shfave (آموزش کنترل کامل ویوها در متد onclick) 14:- ساخت لیست ویو با تصویر گرد 15:- ساخت سرچ ویو با ریسایکلر ********************************************************پیش نمایش آموزشها********************************************** قسمت های دوم و سوم و چهارم پنجم و ششم مباحث زیر آموزش داده میشه. 1- CardLayout 2- FanLayout 3-CarouselLayoutManager 4-FlexboxLayoutManager 5- LadderLayout 6- PickerLayout 7- StackLayout 8- TurnLayout 9-VegaLayout 10- سوایپ لیوت (swipelayout) 11- SteackyHeader 12- ویوپیجر قسمت هفتم مباحث زیر آموزش داده میشه. 1:- DiscreteScrollView 2:- FastScrollRecycler 3:- IndexRecycler قسمت هشتم مبحث treeview یا همون ویوی درختی آموزش داده میشه. پیشنمایش زیر treeview قسمت نهم graphview قسمت دوازدهم صفحه اول بازار قسمت سیزدهم لیست علاقه مندی 14- لیست ویو با تصویر گرد 14- سرچ ویو bazar_first_page.zip
  11. 6 امتیاز
    جلسه سوم همونطور که در جلسه قبل گفته شد، از این جلسه به بعد، وارد کدنویسی میشیم. اما قبل از اون، یه کاربرد بسیار مهم B4XPages رو فراموش کردم بگم: شما میتونید به تمااامی مقادیر، متغیرها، ویوها، انیمیشن‌ها و ... دسترسی 100 درصدی داشته باشین. یعنی که بعنوان مثال، براحتی قادرید متن فلان Button در فلان پیج رو از دیگر پیج ها حتی اگر یه پیج دیگه نمایان باشه، بگیرید، تغییر دهید و یا حتی خود اون Button رو به یه پیج دیگه منتقل کنید. (این نکته رو حتما میدونید که یکی از معضلات بزرگ کار با اکتیویتی‌ها، جابجایی اطلاعات متغیرها بین اونهاست اما B4XPages، این مشکل رو براحتی حل کرده) خب شروع کنیم: از نسخه 10 به بعد بیسیک، IDE بدون اکتیویتی ها باز میشه. برای ایجاد یه پروژه B4XPages، در مسیر زیر، پروژه رو ایجاد میکنیم. Files -> New Project ->B4XPages بطور پیشفرض، با ایجاد یک پروژه B4XPages، همزمان سه پروژه با B4J،B4A و B4i + یک پوشه به اسم SharedFiles و کلاس B4XMainPage ایجاد میشه که این کلاس بین هر سه پروژه مشترک هست. اگر قصد دارید فقط با یک پلتفرم کار کنید، کافیه سه پوشه دیگه رو حذف و کلاس B4XMainPagev رو به پوشه B4A ایجاد شده، انتقال بدید. همین با ایجاد پروژه، همونطور که مشاهده میکنید در اکتیویتی Main، یسری تغییرات ایجاد شده؛ نباید به اینها کاری داشته باشیم و کد نویسی ما بجای اکتیویتی Main، از کلاس B4XMainPage شروع میشه. **** این نکته رو داشته باشید که برای استفاده از B4XPages، باید کتابخونش رو هم فعال کرد که البته بعد از ایجاد یک پروژه B4XPages، بطور پیشفرض، فعاله کلاس B4XMainPages که بطور پیشفرض ایجاد شد، دقیقا عین اکتیویتی Main هست و اولین صفحه‌ایه که نمایش داده میشه. الگوی کلاس‌های B4XPages، بسیار ساده هست: Sub Class_Globals Private Root As B4XView 'ignore Private xui As XUI 'ignore End Sub Public Sub Initialize End Sub 'This event will be called once, before the page becomes visible. Private Sub B4XPage_Created (Root1 As B4XView) Root = Root1 'load the layout to Root End Sub پس بعد از ایجاد پروژه، هر کد اضافی مشاهده کردید، میتونید پاکشون کنید. متغیر B4XView، زمانی بکار میره که بخوایم همزمان برای چند پلتفرم برنامه بنویسیم. همونطور که در جلسات قبل گفته شد، در B4XPages، رویداد Process_Globals وجود نداره و مثل دیگر کلاس‌ها فقط ساب Class_Globals هست که دقیقا کار Process_Globals رو انجام میده. دو متغیر Root و XUI، بطور پیشفرض تعریف شدن. پیشنهاد میکنم این دو رو حذف نکنید... رویداد B4XPage_Created وقتی برای اولین بار پیج نمایش داده می‌شه، اجرا میشه و باید لایوت رو هم، در همین ساب لود کرد؛ دقت کنید پیج‌ها هرگز از بین نمیرن، پس این ساب، فقط یکبار اجرا میشه. بطور پیشفرض، یک کد ماژول به اسم B4XPages در کتابخونه B4XPages وجود داره و برای دسترسی به ویژگی‌های مختلف پیج‌ها(مثل تایتل پیج، ایجاد پیج جدید و ...)، از این ماژول استفاده می‌کنیم. هر پیج، یک id از نوع String داره که به حروف کوچیک و بزرگ هم حساسه، id صفحه اصلی (B4XMainPage)، عبارت "MainPage" هست. *** نحوه لود کردن لایوت در B4XPage_Created: Private Sub B4XPage_Created (Root1 As B4XView) Root = Root1 'load the layout to Root Root.LoadLayout("Layout1") End Sub *** نحوه اضافه کردن یک پیج: برای افزودن پیج، همچون اکتیویتی‌ها، از مسیر Project -> Add New Module -> Class Module -> B4XPage رو انتخاب میکنیم و با نامگذاری نامی مناسب(اینجا، از B4XPage2 استفاده میکنم)، کلاس رو اضافه میکنیم. دقت کنید که الان، فقط کلاس اضافه شده و هنوز پیجی جدید نداریم. برای ایجاد پیج، اول باید یک متغیر از این کلاس ایجاد کنیم و از کد ماژول پیشفرض در کتابخونه B4XPages، بشکل زیر در مکان دلخواه(که بهترین مکان، همون ساب B4XPage_Created هست) استفاده کنیم: Private Sub B4XPage_Created (Root1 As B4XView) Root = Root1 'load the layout to Root Dim Page2 As B4XPage2 Page2.Initialize B4XPages.AddPage("Page 2", Page2) End Sub همونطور که گفتم، اول متغیر Page2 رو از نوع کلاسی که اضاف کردیم، تعریف و اون رو Initialize می‌کنیم. و بعد از متد AddPage کد ماژول B4XPages برای اضافه کردن پیج استفاده میکنیم. همونطور که مشاهده می‌کنید، متد AddPage، دو آرگومان داره، اولی همون id پیج هست (که بالاتر کامل توضیح دادم) و دومی، همون متغیری هست که تعریف کردیم. *** نحوه نمایش یک صفحه: بعد از اینکه پیج رو اد کردیم، در مکانی دلخواه (مثلا در رویداد کلیک دکمه) با کد زیر به صفحه بعد میریم و اون رو نمایش میدیم: B4XPages.ShowPage("Page 2") متد ShowPage، یک ورودی داره که همون id صفحه مورد نظر هست. دقت کنید که در حال حاضر، با این کد، پیج قبلی (MainPage) از بین نرفته و تمام خصوصیات، رویدادها ویوهای اون دردسترس هستن و هرگز ریست نمیشن. (پس نیازی به Initialize دوباره متغیرها نیست) نکته بسیااار مهم دیگه‌ای که هست، اینه که اگر دوباره صفحه MainPage رو نمایش بدیم، دیگه ساب B4XPage_Created اجزا نمیشه اما بعضی وقتها لازم هست، که دوباره یکسری چیزها مقدار دهی شن و یا بهر دلیلی لازم داریم که این ساب دوباره اجرا شه. برای این کار باید بجای استفاده از متد ShowPageٍ، از کد زیر استفاده کنیم: B4XPages.ShowPageAndRemovePreviousPages("Page 2") با اینکار، پیج قبلی، حذف میشه و عملا داریم کاری میکنیم که بعد از بازگشت به این صفحه، ساب B4XPage_Created فراخوانی بشه. برای درک بهتر موضوع، سورس ساده زیر رو حتما بررسی کنید: ThreePagesExample.zip اگر نتوستم درست توضیح بدم، ببخشید جلسه بعد، بیشتر با خصوصیات و رفتار B4XPages آشنا میشیم. موفق باشید اگر نقدی، مشکلی و یا ایرادی از بنده هست، تو خصوصی میتونید پیام بدید. حتما استقبال میکنم.
  12. 6 امتیاز
    مشاهده فایل کتابخانه بسیار کاربردی PersianTimer با سلام خدمت دوستان عزیز امیدوارم که حالتون خوب باشه و کدهاتون بی ارور با یک کتابخونه بسیار کاربردی و واجب در خدمتتون هستم. کتابخونه timer خود بیسیک واقعا ضعیف و بدون امکانات هست. و گزارشهایی هم شده که کتابخونه به درستی کار نمیکنه. تو این کتابخونه به جای خود تایمر اندروید و یا handler اومدیم و از scheduledexecutorservice که از خانواده قدرتمند ThreadPoolExecutor هست استفاده کردیم. یکی از مزیت های بسیار خوب این کتابخونه این هست که به راحتی میتونید بینهایت کار رو به صورت همزمان توی نخهای متفاوت بدون هیچ گونه تداخلی انجام بدین.این کار به وسیله Future ها انجام میشه و توی کتابخونه به وسیله tag تایمرها از هم متمایز میشن. امیدوارم که از کتابخونه واقعا کاربردی بهترین استفاده رو بکنید. لینک آموزش و سورس کتابخونه واما نحوه استفاده از کتابخونه. ابتدا کتابخونه رو تیک بزنید و اونو اینشیالایز کنید Dim prt As PersianTimer prt.Initialize("prt") توی این کتابخونه سه تا متد اصلی هست. متد اول متد schedule هست. این متد کارش اینه که یک کار مشخص رو بعد از یک تایم مشخص انجام میده. در واقع تایمر رو برای تایم مشخص ست میکنه. مثال. prt.schedule("schedule",prt.TimeUnit_SECONDS,10) Private Sub prt_onTick(Tag As String,TimeUntil As Int) بعد از 10 ثانیه این متد اجرا میشه End Select متد دوم scheduleAtFixedRate هست. این متد تایمر رو با یک وقفه مشخص برای یک دوره زمانی متناوب ست میکنه. مثال. prt.scheduleAtFixedRate("scheduleAtFixedRate",prt.TimeUnit_SECONDS,3,1) ' یعنی اینکه بعد از 3 ثانیه هر یک ثانیه تیک بخور تا زمانی که اونو کنسل نکنید به همین صورت هر یک ثانیه یک بار متد زیر اجرا میشه Private Sub prt_onTick(Tag As String,TimeUntil As Int) این متد هر یک ثانیه اجرا میشه End Select متد سوم متد scheduleCountDown هست. این متد یک تایمر معکوس با تایم مشخص و دوره تیک مشخص ایجاد میکنه. مثال prt.scheduleCountDown("scheduleCountDown1",prt.TimeUnit_SECONDS,30,1) ' یعنی اینکه از 30 شروع کن و تا صفر یک ثانیه یک ثانیه بیا Private Sub prt_onTick(Tag As String,TimeUntil As Int) Log("Tick : "&Tag&" TimeUntil : "&TimeUntil) ' TimeUntil مقدار زمان باقیمانده تا صفر هست به ثانیه End Select End Sub بعد از 30 ثانیه تایمر تموم میشه و متد زیر اجرا میشه Private Sub prt_onFinish(Tag As String) Log("Finish : "&Tag) End Sub ارسال کننده محمدرضا شاهپیری ارسال جمعه, 26 بهمن 1397 دسته کتابخانه ها
  13. 6 امتیاز
    سلام دوستان انسر سنتری، بنا به دلایلی چند وقتی میشه فعالیت خاصی نداشتم گفتم عرض اندامی کنم. خب توی سایت B4X گشت و گذاری داشتم و دیدم آقای ارل یک پستی رو مبنی بر بیان اشتباهات رایجی که ما توی کدنویسی حالا سهوا یا از روی ندانستن صورت میگیره رو داره. این نکاتی که توی پست آقای ارل بیان شده، زمانی براتون قابل ملموس هست که پروژه های نسبتا متوسطی دستتون باشه و پیچیدگی های خاصی توی کار وجود داشته باشه.خب ما اگر بخواییم به پیچیدگی های معمولِ کار اضافه کنیم، در روند اجرایی پروژمون قطعا دچار مشکل در خطایابی و درک مسئله خواهیم شد. خب بهتره پس بتونیم کد تمیز و درست بنویسیم.حالا کد تمیز نوشتن مفهوم بر این نیست که تعداد خط کمتری داشته باشه، خیر.گاها لازمه یکسری کدهای حالا اصطلاحا استاتیک رو تبدیل کنیم به یکسری کد بهتر و پویاتر و به نوبه ای هوشمند تر. اینکه بخواییم با مشخصه های ثابت و کمی سر و کله بزنیم، دست و بالمون توی توسعه بسته میشه.باید کد نویسی منعطف و پویایی داشته باشیم تا زمانیکه توی پروژه پارامتری کم و زیاد شد ما دیگه نیازی به تغییرات بزرگ نداشته باشیم و باز پروژه نیاز به تغییرات زیادی نداشته باشه. خلاصه کنم براتون پست خوبیه و پیگیر باشید که نکات جالبی رو میگه و میتونه توی توسعه پروژه هاتون مفید باشه. برنامه نویسی حد و حدود نداره و دریایی بیکران هستش و ما هیچوقت به سرحدات کمال نمیرسیم چون توی هر سطحی که باشیم بازم چیزای جدیدی هست که باید یاد بگیریم.ویژگی علم به پویاییشه.دریابید و بروز بشید و مث من نباشید سالی یبار یادی کنیم از برنامه نویسی "Code Smells" - common mistakes and other tips
  14. 6 امتیاز
    سلام به همه با کد زیر میتونید یه افکت، که معمولا با نام Shake میشناسیمش رو به یه ویو داد که هم در b4a , b4i قابل استفاده هست: Sub ShakeView (View As B4XView, Duration As Int) Dim Left As Int = View.Left Dim Delta As Int = 20dip For i = 1 To 4 View.SetLayoutAnimated(Duration / 5, Left + Delta, View.Top, View.Width, View.Height) Delta = -Delta Sleep(Duration / 5) Next View.SetLayoutAnimated(Duration/5, Left, View.Top, View.Width, View.Height) End Sub این کد رو به اکتیویتی اضافه کنید و مثل زیر اون رو صدا بزنید: Sub Button1_Click ShakeView(EditText1, 500) End Sub برای استفاده فقط در اندروید، میتونید B4XView رو به View تغییر بدید؛ اگر نه، باید کتابخونه xui رو به پروژه اضافه کنید. نتیجه میشه یه چیزی مثل این: موفق باشید
  15. 6 امتیاز
    سلام به همه نسخه آزمایشی جدید بیسیک آماده شده.لیست تغییرات: 1- SdkManager آپدیت شده و از آخرین نسخه SdkTools ساپورت میکنه. 2- کتابخونه های FireBase به آخرین نسخه FireBase SDK آپدیت شده. 3- بیس کتابخونه OkHttp، اومده رو OkHttp 3.14.9 4- کتابخونه های داخلی زیر آپدیت شده: B4XPages, B4XDrawer, B4XCollections, XUI Views and BCTextEngine. 5- کتابخونهی CustomListView با xCustomListView و Http با OkHttp و HttpUtils2 با OkHttpUtils2 جایگزین شدن. 6- B4XPages آپدیت شده. 7- علامت های جدید برای درک بهتر کدها اضاف شدن: برای این نسخه توصیه میشه که از آخرین نسخه SdkTools استفاده کنید. لینک: آخرین نسخه SdkTools: https://developer.android.com/studio#command-tools آخرین نسخه ریسورس های Sdk: https://b4xfiles-4c17.kxcdn.com/b4a/resources_9_20.zip دانلود بیسیک: http://www.b4x.com/android/files/beta.exe موفق باشید
  16. 6 امتیاز
    سلام به همه همونطور که از عنوان پیداست، با کد زیر میتونید عکس ها رو گرد کنید. کتابخونه های بسیار زیادی برای اینکار رپ شده که تو همین انجمن هم موجود هست. اما چون کد زیر، در B4A و هم در B4J و هم در B4i قابل استفاده هست، اینجا میذارمش.(بهمین خاطر عنوان تاپیک رو گذاشتم B4X) نتیجه میشه یه چیزی مثل این: کد: 'xui is a global XUI variable. Sub CreateRoundBitmap (Input As B4XBitmap, Size As Int) As B4XBitmap If Input.Width <> Input.Height Then 'if the image is not square then we crop it to be a square. Dim l As Int = Min(Input.Width, Input.Height) Input = Input.Crop(Input.Width / 2 - l / 2, Input.Height / 2 - l / 2, l, l) End If Dim c As B4XCanvas Dim xview As B4XView = xui.CreatePanel("") xview.SetLayoutAnimated(0, 0, 0, Size, Size) c.Initialize(xview) Dim path As B4XPath path.InitializeOval(c.TargetRect) c.ClipPath(path) c.DrawBitmap(Input.Resize(Size, Size, False), c.TargetRect) c.RemoveClip c.DrawCircle(c.TargetRect.CenterX, c.TargetRect.CenterY, c.TargetRect.Width / 2 - 2dip, xui.Color_White, False, 5dip) 'comment this line to remove the border c.Invalidate Dim res As B4XBitmap = c.CreateBitmap c.Release Return res End Sub نحوه استفادش هم به این صورته که اول ساب بالا رو به اکتیویتی اضاف میکنید و هرجا که خواستین، کدهای زیر رو مینویسید: Dim xui As XUI Dim ImageView1 As B4XView Dim img As B4XBitmap = xui.LoadBitmap(File.DirAssets, "myimage.jpg") ImageView1.SetBitmap(CreateRoundBitmap(img, ImageView1.Width)) اگر نمیخواین که ImageView1 از نوع B4XView باشه، از کد زیر استفاده کنید: Dim xui As XUI Dim ImageView1 As ImageView Dim img As B4XBitmap = xui.LoadBitmap(File.DirAssets, "myimage.jpg") Dim xIV As B4XView = ImageView1 xIV.SetBitmap(CreateRoundBitmap(img, xIV .Width)) برای استفاده باید کتابخونه XUI رو فعال کنید و یه متغیر از اون رو به اسم xui در Globals تعریف کنید. موفق باشید
  17. 6 امتیاز
    سلام به همه دوستان کتابخونه‌ای که قصد معرفیشو دارم، DraggableBottomCard هست که میتونه بسیار کاربردی باشه. همونطور که از تصویر پیداست، این کتابخونه، یه BottomCard ساده هست؛ اما با این تفاوت که قابلیت درگ کردن داره و این خصوصیت اون رو از بقیه متمایز میکنه. برای استفاده ماژول رو به پروژتون اضافه کنید. سورس: B4A Example.zip ماژول: ASDraggableBottomCard.rar
  18. 6 امتیاز
    به نام خدا سلام خدمت تمامی دوستان... از این کتابخانه میتوان به عنوان قرار دادن یک راهنما یا توضیح درباره ی یک ویو استفاده کرد. تمامی متد های کتابخانه قابل درک می باشد و نیاز به توضیح بیشتری نیست. فقط فایل های پوشه ی lib & files را درون پوشه ی کتابخانه های خود کپی کنید و طبق مثال پیوست شده عمل کنید. این کتابخانه از لینک زیر رپ یا تبدیل شده است: https://github.com/skydoves/Balloon **لینک دانلود کتابخانه به همراه مثال** رمز فایل: answercenter.ir
  19. 6 امتیاز
    سلام چند وقت پیش کتابخونه آقا پژمان رو (ٍEditTextPlus) از تاپیک زیر دانلود کردم. دیدم کتابخونشون بسیار کاربردیه ولی چون با نسخه جدید(9.8 َAndroidx) بیسیک مشکل داره، نمی شه ازش استفاده کرد. بخاطر همین یه سری تغییرات داخل کتابخونه انجام دادم و اونو بروز کردم. از جمله: 1- اضافه شدن کاستوم ویو کتابخونه 2- امکان ویرایش ادیت تکست در Designer 3- تلفیق خصوصیات ادیت تکست با کتابخانه و... دانلود نسخه 1 : ShEditText_v1.00.rar نسخه 1.2 : (افزوده شدن متد MaxLength و نمایش خطای مربوطه) ShEditText_V1.2.rar ممنون از زحمات آقای نیکروان
  20. 5 امتیاز
    سلام خدمت همه‌ی دوستان یه کتابخونه بسیار مهم و کاربردی از سری کتابخونه های 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 برای استفاده از این ویوها، کافیه پست زسر رو مطالعه بفرمایید: البته دوستان قبلا چنین تاپیکی زده بودن، ولی تو این پست، بیشتر با اونها آشنا شدیم موفق باشید
  21. 5 امتیاز
    سلام دوستان همونطور که قول داده بودم، لینک تمامی آموزش‌ها و سورس‌ها رو همینجا قرار میدم. موفق باشید
  22. 5 امتیاز
    برای استفاده از این کتابخونه هم باید سمت سرور و هم سمت بیسیک را آموزش بدهم. فعلا قسمت بیسیک رو آموزش داده و در ادامه سمت سرور را با مثالی آموظش میدهم. مپ دیتا مپ دیتای موجود در این کتابخونه برای ارسال و دریافت اطلاعات با سرور مورد استفاده قرار میگیرد در ابتدا به متغیر ساخته شده با مپ دیتا نام سابی که قرار است اطلاعات به آن برگشت داده شود نوشته خواهد شد و در ادامه اطلاعات را همانند مپ های مرسوم بیسیک به صورت کلید/مقدار وارد نمایید. Dim ird As irMapData ird.init("net_test") ird.put("msg","test") ماژول کلوسیوس این ماژول اصلی این کتابخانه می باشد.و دارای ساب های زیر میباشد init مقدار دهی اولیه متغیر مربوط به ماژولی که ساب های برگشتی آن باید اجرا شود را وارد نمایید connect اتصال به سرور - آدرس سرور را وارد نمایید create ساخت یک کلن جدید join اتصال به یک کلن joinOrCreate اتصال و یا ساخت کلن (اگر کلنی خالی نبود یک جدید بساز) joinById اتصال به کلنی با آیدی خاص reJoin اتصال به کلن قبلی در موارد قطع و وصلی اینترنت کاربرد دارد getRoomID گرفتن آیدی یک کلن getRoomSession گرفتن نشس یک کلن close بستن اتصال send ارسال اطلاعات به سرور مثال: Sub Globals Dim ir As irColyseus End Sub Sub Activity_Create(FirstTime As Boolean) Activity.LoadLayout("l") ir.init(Me) End Sub Sub Button1_Click ir.connect("ws://192.168.1.100:3333") ir.joinOrCreate("exam",Null) End Sub Sub Net_Join(str As String) Log(str) End Sub Sub Button2_Click Dim ird As irMapData ird.init("net_test") ird.put("msg","amin") ir.send(ird) End Sub Sub net_test(ird As irMapData) Log(ird.get("msg")) ToastMessageShow(ird.get("msg"),False) End Sub «موفق باشید.»
  23. 5 امتیاز
    سلام دوستان سورس ختم صلوات آنلاین رو گذاشتم برای استفاده دوستان روش کارش هم به این صورت هست که میایم تعداد وارد میکنی و بعد از وارد کردن تعداد صلوات جمع صلوات های امروز، دیروز، این ماه، ماه قبل و.... رو به صورت آنلاین نمایش میده امیدوارم به درد دوستان بخوره و مشکلی هم نداشته باشه توی سورس یه مواردی هست که خودم به دلیل اینکه زیاد از php سر درنمیاورد نمیتونستم حلش کنم اگه دوستان تونستن حلش کنن که ممنون میشم مشکل اینه که ما دو تا فیلد اضافه داریم داخل تیبل دیتابیسمون که کاربرد خواصی ندارن به اسم های text و cat_index چون که php و بیسک اولیش مربوط به ارسال نظر و... بود نمی دونستم چیکار کنم راه های متفاوتی هم رفتم که بی نتیجه بود برای من همین روش خوب بود و جواب هم گرفتم ان شاء الله برای دوستان هم کاربرد داشته باشه رمز : answercenter.ir khatm-salavat.rar
  24. 5 امتیاز
    سلام اینم یه آموزش دیگه از بنده؛ قصد داریم اختلاف دو تایم مختلف رو بصورت دقیق حساب کنیم. برای شروع، اول باید ساعاتی رو که می‌خوایم اختلافشون رو بدست بیاریم، از طریق تابع DateTime، به صورت زیر وارد می‌کنیم و هرکدوم رو برابر یه متغیر از نوع Long قرار می‌دیم: Dim t1 As Long = DateTime.TimeParse("22:14:12") Dim t2 As Long = DateTime.TimeParse("23:24:14") حتماً توجه داشته باشید که فرمت ساعت وارد شده باید به صورت hh:mm:ss باشه. در ادامه برای اینکه بتونیم اختلاف اونا رو بدست بیاریم، از کتابخونه DateUtils استفاده می‌کنیم: کتابخونه DateUtils به صورت پیشفرض در B4A وجود دارد. Dim p As Period = DateUtils.PeriodBetween(t1 , t2) در اینجا با متد DateUtils اختلاف ساعت را برابر با متغیر p از نوع Period(برای دسترسی به ساعت، دقیقه و ثانیه‌ی اختلاف) قرار می‌دهیم. و در آخر برای پیاده کردن اختلاف ساعت، به صورت زیر عمل می‌کنیم: Log(p.Hours & " hours, " & p.Minutes & " minutes , " & p.Seconds & "second") ' Return 1 hours , 10 minutes , 2 second از متدهای زیر می‌توانیم از اختلاف بدست آمده همچون کد بالا استفاده کنیم: p.Hours ———-> گرفتن ساعت اختلاف بدست آمده p.Minutes ——–> گرفتن دقیقه اختلاف p.second ———> گرفتن ثانیه اختلاف امیدوارم براتون مفید بوده باشه.
  25. 5 امتیاز
    سلام و درود. کتابخونه درون پرداخت انجمن این مورد رو داره عزیز. به شکل زیر هم میتونید چک کنید Dim prBazarUtils As PersianBazaarUtils If prBazarUtils.isMiuiWithApi28OrMore Then prBazarUtils.goToXiaomiPermissions End If
  26. 5 امتیاز
    با سلامی دیگر خدمت برنامه نویسان بیسیک 4 اندروید با استفاده از کتابخونه ی MHG_ScreenRecorder میتونید از صفحه یا اسکرین گوشی همراه با صدا فیلم ضبط کنید. و این که کدک، فریم، سایز و هر تنظیماتی که برای یه فیلم موردنیاز هست رو میشه با استفاده از توابعش، تنظیم کرد. میتونید نحوه ی استفاده از این کتابخونه رو در مثالی که همراه با کتابخونه در زیر لینک کردم رو مشاهده کنید. توجه داشته باشید که حتما باید فایل راهنمایی که درون پوشه MHG_ScreenRecorder قرار دادم رو مطالعه کنید تا به مشکل برنخورید. کتابخونه از لینک زیر تبدیل به کتابخونه ی بیسیک 4 اندروید شده است: https://github.com/HBiSoft/HBRecorder ***لینک دانلود کتابخانه همراه با مثال*** پسورد فایل فشرده: answercenter.ir
  27. 5 امتیاز
    سلام با قطعه کد زیر، میتونید یه انیمیشن به برنامتون اضاف کنید: قبل از اینکه کد رو بذارم، یه پیش نمایش بهتون بدم: و کد زیر رو به اکتیویتی اضاف کنید: Sub Animated(l1 As Long, l2 As Long, t1 As Long, t2 As Long) Dim p As B4XView = xui.CreatePanel("") Activity.AddView(p, Rnd(l1,l2), Rnd(t1,t2), 30dip, 30dip) p.SendToBack 'this is optional p.SetColorAndBorder(xui.Color_ARGB(255, Rnd(0,255), Rnd(0,255), Rnd(0,255)), 0dip, xui.Color_White, Rnd(0,20)) p.SetLayoutAnimated(1000, Rnd(l1,l2), Rnd(t1,t2), 5dip, 5dip) p.SetVisibleAnimated(1000, False) Sleep(1000) p.RemoveViewFromParent End Sub همونطور که می‌بینید، این ساب چهارتا ورودی میگیره. اگر به کد دقت کنید، تو خط دوم ساب، از این چهار تا ورودی، برای اد کردن ویوهای رنگی، دو به دو با تابع Rnd، از اونا استفاده شده. l1 و l2: سمت چپ ویو رو مشخص میکنه.(در واقع محدودش رو) یعنی ویویی که اد میشه، Left اون، عددی بین l1وl2 هست. t1 و t2: این دو تا هم، Top ویو رو مشخص میکنن. درست عین بالا مثال زیر، کد عکس سمت راستی: Sub SwiftButton1_Click Dim l1, l2, t1, t2 As Long Dim btn As SwiftButton = SwiftButton1 l1 = btn.mBase.Left - 50dip l2 = btn.mBase.Left + btn.mBase.Width + 50dip t1 = btn.mBase.Top - 50dip t2 = btn.mBase.Top + btn.mBase.Height + 50dip For i = 1 To 8 Animated(l1,l2,t1,t2) Next End Sub کد زیر هم مال سمت چپی: Sub Activity_Touch (Action As Int, X As Float, Y As Float) Dim l1, l2, t1, t2 As Long l1 = x - 100dip l2 = x + 100dip t1 = y - 100dip t2 = y + 100dip For i = 1 To 2 Animated(l1,l2,t1,t2) Next End Sub اگر نتونستم منظورم رو درست برسونم، ببخشید. موفق باشید
  28. 5 امتیاز
    با عرض سلام و خسته نباشید خدمت تمام برنامه نویسان بیسیک 4 اندروید... کتابخونه ی دیگه ای که توسط بنده تبدیل شده BottomDialogs نامیده میشه. درون فایلی که قراره دانلود کنید یک فایل نوت پد ب نام راهنما وجود داره که چندتا نکته ذکر شده ایشالله که با رعایت کردن این نکات، میتونید به راحتی از کتابخونه استفاده کنید. این کتابخونه از لینک زیر رپ و تبدیل شده شده است: https://github.com/javiersantos/BottomDialogs ***دانلود کتابخانه همراه با مثال*** رمز فایل: answercenter.ir
  29. 5 امتیاز
    سلام...دوستان اگه نگین پرو شده، یه کتابخونه دیگه گذاشتم که ویوی انتخاب عدد یا حروف به صورت متریال رو به بیسیک با ظاهری ساده و زیبا اضافه میکنه. طبق معمول میتونید از طریق مثال پیوست شده نحوه ی کار با کتابخونه رو ببینید. لینک کتابخونه جاوا: https://github.com/ShawnLin013/NumberPicker ***لینک دانلود کتابخونه همراه با مثال*** پسود فایل: answercenter.ir
  30. 5 امتیاز
    سلام ، خوشحال میشم برنامه مدرسه حفظ رو نصب کنید و نظر کارشناسی تون رو دربارش بدید https://cafebazaar.ir/app/madresehefz.qurankarim این برنامه امکانات بی نظیری از جمله دفترچه حفظ و جدول 604 حفظ قرآن و آزمون گیر کل قرآن کریم با هوش مصنوعی رو دارا هست و کلی امکانات دیگر
  31. 5 امتیاز
    سلام خدمت همه‌ی دوستان من همیشه دلم می‌خواست عکس‌هایی که تو برنامم میذارم، قابلیت زوم داشته باشه؛ خیلی از کتابخونه‌هایی هم که برای این کار رپ شده بودن چیزی نبود که می‌خواستم. برای همین بعد از تحقیق زیاد، تونستم کتابخونه‌ای در این زمینه رپ کنم که عکس‌ها رو از فایل گوشی میگیره و تو وب‌ویو نشون میده؛ گفتم اونو تو انجمن بذارم تا بقیه هم استفاده کنن. امیدوارم برا همگی مفید باشه لینک دانلود
  32. 4 امتیاز
    مشاهده فایل irColyseus کتابخانه کلوسیوس کتابخانه ای کاربردی در جهت آنلاین نمودن بازی ها و یا ساخت اپهای آنلاین می باشد. البته در اصل این کتابخانه مخصوص بازی های چند نفره نوبتی مانند شطرنج می باشد. نسخه فعلی فقط با نسخه 0.11 کلوسیوس هماهنگ می باشد. کتابخانه ای که یک سال پیش آن را رپ نموده و چندین بار از آن استفاده نموده ام آموزش استفاده در ادامه توضیح داده خواهد شد. منابع: سایت اصلی کلوسیوس ارسال کننده امین مهدی نژاد ارسال پنجشنبه, 24 مهر 1399 دسته کتابخانه ها  
  33. 4 امتیاز
    برای اینکار کافیه یک object از button بسازید و اون رو به کنترولر فرم مورد نظر اضافه کنید. مثال: Button Btn = new Button(); Btn.Text = "button1"; this.Controls.Add(Btn); بدین شکل Button شما ساخته و اضافه خواهد اما قبل از add کردن باید از دستور Location . مقدار بدید که Button مورد نظر شما کجای فرم قرار بگیره Btn.Location = new Point(70, 70); Btn.Size = new Size(100, 100); که اینجا ما حتی یه سایز هم بهش دادیم. میتونید از Top و یا Left هم استفاده کنید. دست شما برای اینکار باز میباشد. خلاصه بقیه ی object ها هم بدین شکل ساخته و اضافه خواهند شد. موفق باشید
  34. 4 امتیاز
    irGpsDetector مشاهده فایل کتابخانه ای برای روشن کردن GPS منبع:https://github.com/Pulimet/GpsDetector-Library ارسال کننده امین مهدی نژاد ارسال پنجشنبه, 13 شهریور 1399 دسته کتابخانه ها  
  35. 4 امتیاز
    درود ، شما اول باید اعلام کنی خروجی بک آپ یا پشتیبان برنامه شما با چه فرمتی هستش و حجم میانگین حداقل و حداکثر هر بک آپ به چه میزانی میرسه ، سرویس های ابری زیادی در سطح اینترنت برای بک آپ گیری وجود دارند ، اگر میخواهید برای برنامتون کاملاً اختصاصی سرویس بک آپ بنویسید باید حتماً هزینه زیادی براش کنید تا به نتیجه مطلوب برسید ، قطعا برای کاربران بالای 3 هزار نفر به سرور قدرتمندی نیاز دارید با رم و سی پی یو بالا ، حالا برای اینکه بتونید سرویس پشتیبان گیر شخصی بنویسید باید فرمت خروجیتون که حالا ممکنه به صورت اکسل یا فایل دیتابیس باشه رو به سرور آپلود کنید و نام فایل با نام کاربری اون کاربر یکسان باشه و حتماً باید این رو در نظر داشته باشید که از طریق روش های رمز گذاری اطلاعاتتون که اساتید محترم در انجمن آموزشش رو قرار دادند استفاده کنید و اطلاعات ارسالی و دریافتی شما توسط الگوریتم های خاص رمز گذاری بشه تا افرادی که سودجو هستند توانایی دست یابی به اطلاعات پشتیبانی کاربران رو نداشته باشند البته رمزگذاری در مواردی استفاده میشه که اطلاعات بسیار مهم هستند و نباید شخص دیگری از اطلاعات اون کاربر با خبر بشه ، برای نوشتن سرویس بک آپ هم اگر دانش نوشتن کد php یا asp .net رو داشته باشید در عرض دو هفته تا یک ماه میتونید سرویس کامل به همراه پنل مدیریت رو طراحی کنید . قبل از خرید سرور اختصاصیتون حتماً توجه کنید که میزان حجم فایل های بک آپ شما ممکنه در آینده به چه میزانی برسه و در حال حاضر هم اگر تمام کاربران فایل های خودشون رو بفرستند به سرور چه میزانی از حجم سرورتون گرفته میشه ، که بدونید چه سروری با چه فضا و رم و سی پی یویی خریداری کنید . حالا جدای ایجاد سرویس بک آپ اختصاصی شما میتونید برای بک آپ گیری از سرویس های ابری ایرانی یا خارجی استفاده کنید تا اطلاعاتتون رو هر لحظه بین کلاینت و سرور رد و بدل کنید کافیه داخل گوگل درباره سرویس های ابری جستجو کنید و اطلاعات کسب کنید.
  36. 4 امتیاز
    سلام مهندسین عزیز و دوست داشتنی ، امیدوارم تو هر شرایطی که هستین حالتون خوب باشه ، یه کتابخونه خیلی خوب برای B4A که به تازگی Wrap شده و میتونید ازش تو برنامه هاتون استفاده کنید دوتا فایل پیوست زیر رو دانلود کنید . SourceCode.zip Addons-Libs.rar
  37. 4 امتیاز
    سلام آموزش این تو انجمن موجوده. کافیه سرچ کنید:
  38. 4 امتیاز
    سلام میتونید از سایت trello یا asana و . . . جهت کار تیمی استفاده کنید. از GitLab هم میتونید استفاده کنید.
  39. 4 امتیاز
    سلام نیازی نیست واسه دستور DELETE از علامت * استفاده کنید. به این شکل بنویسید » DELETE FROM table_name
  40. 4 امتیاز
    سلام خدمت اعضای محترم انجمن قبل از هر چیز، از استاد @ محمدرضا شاهپیری عزیز که به من در تهیه این کتابخونه خیلی کمک کردن، تشکر فراوان میکنم. ان‌شاءالله در تمام مراحل زندگی، موفق باشن. همونطور که می‌‌دونید، اسلایدر عکس، یه ویوی بسیار کاربردی هست که می‌تونه تو زیبایی رابط کاربری برنامه، بسیار مؤثر باشه. بهمین جهت، در اکثر برنامه‌هایی که میشناسید، بکار رفته. از اونجایی که بیسیک در زمینه اسلایدر عکس، خیلی ضعیف عمل کرده، سعی بر این داشتم که این نقص رو برطرف کنم و میشه گفت یکی از کاملترین و حرفه‌ای ترین کتابخونه‌ها در این زمینه رو بصورت اختصاصی برای انسرسنتری‌ها آماده کردم. قابلیت هایی که کتابخونه داره: 1- کار باهاش خیلی راحته 2- تغییر فونت متن 3- تغییر رنگ متن 4- تغییر Gravity متن 5- تغییر سایز متن 6- ایجاد سایه روی اسلایدر 7- استفاده از ریسایکلرویو 8- تغییر سایز Indicator 9- تغییر رنگ Indicator 10- تغییر فاصله بین Indicator ها 11- 10 انیمیشن متفاوت برای Indicator ها 12- تغییر زمان اسکرول 13- تغییر جهت اسکرول 14- 22 انیمیشن متفاوت برای جابجایی هر اسلاید 15- استفاده از کتابخونه قدرتمند Glide در ShImageSlider 16- دارای رویداد OnItemClick 17- تغییر موقعیت Indicator ها (ان‌شاءالله نسخه های آینده) 18- افقی یا عمودی کردن Indicator ها (ان‌شاءالله نسخه های آینده) لینک فروشگاه: تصاویر: دانلود فیلم آموزشی (15 دقیقه): امیدوارم مفید باشه.
  41. 4 امتیاز
    سلام کد زیر رو ارل، چن دقیقه پیش گذاشت، با این کد میتونید یه عکس از برنامه رو تو گالری ذخیره کنید. (میتونه خیلی کاربردی باشه) Sub AddBitmapToGallery (In As InputStream, TargetName As String, MimeType As String) Dim p As Phone Dim ctxt As JavaObject ctxt.InitializeContext If p.SdkVersion >= 29 Then Dim cr As ContentResolver cr.Initialize("cr") Dim values As ContentValues values.Initialize values.PutString("_display_name", TargetName) values.PutString("mime_type", "image/png") Dim MediaStoreImagesMedia As JavaObject MediaStoreImagesMedia.InitializeStatic("android.provider.MediaStore.Images$Media") Dim EXTERNAL_CONTENT_URI As Uri = MediaStoreImagesMedia.GetField("EXTERNAL_CONTENT_URI") cr.Delete(EXTERNAL_CONTENT_URI, "_display_name = ?", Array As String(TargetName)) Dim imageuri As JavaObject = cr.Insert(EXTERNAL_CONTENT_URI, values) Dim out As OutputStream = ctxt.RunMethodJO("getContentResolver", Null).RunMethod("openOutputStream", Array(imageuri)) File.Copy2(In, out) out.Close Else Dim rp As RuntimePermissions rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE) Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) 'change to Activity if not using B4XPages If Result Then Dim out As OutputStream = File.OpenOutput(File.DirRootExternal, "Pictures/" & TargetName, False) File.Copy2(In, out) out.Close Dim FilePath As String = File.Combine(File.DirRootExternal, "Pictures/" & TargetName) Dim MediaScannerConnection As JavaObject MediaScannerConnection.InitializeStatic("android.media.MediaScannerConnection") Dim interface As Object = MediaScannerConnection.CreateEventFromUI("android.media.MediaScannerConnection.OnScanCompletedListener", "ScanCompleted", _ Null) MediaScannerConnection.RunMethod("scanFile", Array(ctxt, Array As String(FilePath), Array As String(MimeType), interface)) Wait For ScanCompleted_Event (MethodName As String, Args() As Object) Log(Args(0)) Log(Args(1)) End If End If End Sub ساب زیر رو به اکتیویتی اضاف کنید و به شکل زیر ازش استفاده کنید: AddBitmapToGallery(File.OpenInput(File.DirAssets, "logo.png"), "logo.png", "image/png") برای استفاده، فعال بودن کتابخونه های زیر، ضروریه: Phone JavaObject ContentResolver توجه کنید که این کد، نیازی به هیچ دسترسی نداره. (حتی اندروید 10) موفق باشید
  42. 4 امتیاز
    سلام این امکان وجود نداره که بدون دسترسی روت بتونید دیتا رو خاموش روشن کنید.تو ورژنای جدید اندروید( از 6 به بالا) این امکان نه برای وایفای و نه برای دیتا وجود نداره
  43. 4 امتیاز
    سلام. توی منیفست minimumSdk رو روی ۱۹ و targetSDK رو روی ۲۹ یا ۳۰ بزارید
  44. 4 امتیاز
    با عرض سلام و خسته نباشید خدمت تمامی دوستان گل... کتابخونه ای که قراره براتون بزارم مربوط به انتخاب رنگه که همه چی تموم هست تقریبا.. میتونید از مثالی که همراه با کتابخونه در پایین لینکشو قرار دادم استفاده کنید تا نحوه ی استفاده ازش رو یاد بگیرید البته خیلی ساده هست. امیدوارم که از این کتابخونه خوشتون بیاد.. این کتابخونه از لینک زیر تبدیل به کتابخونه ی بیسیک 4 اندروید شده: https://github.com/aziztitu/AndroidPhotoshopColorPicker ***لینک دانلود کتابخانه همراه با مثال*** پسورد فایل فشرده: answercenter.ir
  45. 4 امتیاز
    با عرض سلامی دیگه خدمت دوستان برنامه نویس بیسیک 4 اندروید... یه کتابخونه ی دیگه توسط بنده تبدیل شده که مربوط به ویوی seekbar و range picker هست توضیح خاصی نداره و همه چی توی مثال پیوست شده میتونید ببینید. امیدوارم که از این کتابخونه خوشتون بیاد. کتابخونه از لینک زیر تبدیل شده است: https://github.com/Chrisvin/RubberPicker ***دانلود کتابخانه همراه با مثال*** رمز فایل: answercenter.ir
  46. 4 امتیاز
    #if java import android.view.KeyEvent; import anywheresoftware.b4a.BA; @Override public boolean onKeyLongPress(int keyCode, KeyEvent event) { processBA.raiseEventFromUI(this, "onkeylongpress", keyCode); return true; } #end if Sub onkeylongpress(keycode As Int) If keycode=KeyCodes.KEYCODE_BACK Then ToastMessageShow("کلیک بک نگه داشته شد!",False) End If End Sub
  47. 4 امتیاز
    هزینه آموزش: صلوات برای سلامتی امام عصر (عج) سلام خدمت همه دوستان همون طور که از عنوان مشخصه، تو این پست قصد دارم نحوه ساخت تم سفارشی و دلخواهتون رو برایCodeEditor بیسیک بهتون آموزش بدم. امیدوارم مفید و کاربردی باشه. اول از همه یه فایل txt با نام دلخواه ایجاد میکنیم و با پسوند vssettings ، در محل نصب B4A، تو پوشه Themes ذخیره میکنیم. (من از CustomTheme.vssetting استفاده میکنم) اونو با استفاده از یه ویرایشگر متن باز میکنیم.(من از ++NotePad استفاده میکنم) حالا کدهای زیر رو داخل اون کپی کنید: <UserSettings> <ApplicationIdentity version="10.0"/> <ToolsOptions> <ToolsOptionsCategory name="Environment" RegisteredName="Environment"/> </ToolsOptions> <Category name="Environment_Group" RegisteredName="Environment_Group"> <Category name="Environment_FontsAndColors" Category="{1EDA5DD4-927A-43a7-810E-7FD247D0DA1D}" Package="{DA9FB551-C724-11d0-AE1F-00A0C90FFFC3}" RegisteredName="Environment_FontsAndColors" PackageName="Visual Studio Environment Package"> <PropertyValue name="Version">2</PropertyValue> <FontsAndColors Version="2.0"> <Categories> <Category GUID="{A27B4E24-A735-4D1D-B8E7-9716E1E3D8E0}" FontIsDefault="Yes"> <Items> <Item Name="Collapsible Text" Foreground="0x00808080" Background="0x02000000" BoldFont="No"/> <Item Name="Collapsible Region" Foreground="0x00303030" Background="0x00232323" BoldFont="No"/> <Item Name="Delimiter Matching" Foreground="0x02000000" Background="0x00aaaaaa" BoldFont="No"/> <Item Name="Current Line" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/> <Item Name="Current Statement" Foreground="0x02000000" Background="0x0008637d" BoldFont="No"/> <Item Name="Find Match Highlight" Foreground="0x02000000" Background="0x00003877" BoldFont="No"/> <Item Name="Indentation Guides" Foreground="0x02000000" Background="0x00333333" BoldFont="No"/> <Item Name="Indicator Margin" Foreground="0x02000000" Background="0x00333333" BoldFont="No"/> <Item Name="Line Numbers" Foreground="0x00AF912B" Background="0x001E1E1E" BoldFont="No"/> <Item Name="Track Changes Before Save" Foreground="0x02000000" Background="0x0054b2af" BoldFont="No"/> <Item Name="Track Changes After Save" Foreground="0x02000000" Background="0x00307457" BoldFont="No"/> <Item Name="Outlining Margin Square" Foreground="0x00E2E2E2" Background="0x00000000" BoldFont="No"/> <Item Name="Outlining Margin Vertical Rule" Foreground="0x00A5A5A5" Background="0x02000000" BoldFont="No"/> <Item Name="Plain Text" Foreground="0x00C8C8C8" Background="0x001E1E1E" BoldFont="No"/> <Item Name="Saved Changes Mark" Foreground="0x02000000" Background="0x00307457" BoldFont="No"/> <Item Name="Unsaved Changes Mark" Foreground="0x02000000" Background="0x0084f2ef" BoldFont="No"/> <Item Name="Visible Whitespace" Foreground="0x00524814" Background="0x02000000" BoldFont="No"/> <Item Name="Code Snippet Field" Foreground="0x02000000" Background="0x00555555" BoldFont="No"/> <Item Name="Comment" Foreground="0x007B7466" Background="0x02000000" BoldFont="No"/> <Item Name="Identifier" Foreground="0x00C8C8C8" Background="0x02000000" BoldFont="No"/> <Item Name="Sub Name" Foreground="0x00C8C8C8" Background="0x02000000" BoldFont="Yes"/> <Item Name="Unknown Identifier" Foreground="0x004444AA" Background="0x02000000" BoldFont="No"/> <Item Name="Number" Foreground="0x0022CDFF" Background="0x02000000" BoldFont="No"/> <Item Name="Operator" Foreground="0x00B7E2E8" Background="0x02000000" BoldFont="No"/> <Item Name="String" Foreground="0x000076EC" Background="0x02000000" BoldFont="No"/> <Item Name="Keyword" Foreground="0x0063C793" Background="0x02000000" BoldFont="No"/> <Item Name="Preprocessor Keyword" Foreground="0x00BD82A0" Background="0x02000000" BoldFont="No"/> <Item Name="Global Variable" Foreground="0x00B48C8C" Background="0x02000000" BoldFont="No"/> <Item Name="Annotation" Foreground="0x00E4E2E0" Background="0x02000000" BoldFont="No"/> <Item Name="Type" Foreground="0x00B18C67" Background="0x02000000" BoldFont="No"/> <Item Name="Excluded Code" Foreground="0x00616161" Background="0x02000000" BoldFont="No"/> <Item Name="Selection Highlight" Foreground="0x00FFFFFF" Background="0x00777777" BoldFont="No"/> <Item Name="Search Result" Foreground="0x02000000" Background="0x00aaaaaa" BoldFont="No"/> <Item Name="Syntax Error" Foreground="0x000000FF" Background="0x02000000" BoldFont="No"/> <Item Name="Warning" Foreground="0x0022CDFF" Background="0x02000000" BoldFont="No"/> <Item Name="Underline Word" Foreground="0x00FF0000" Background="0x02000000" BoldFont="No"/> </Items> </Category> </Categories> </FontsAndColors> </Category> </Category> </UserSettings> همین. تو کدها آیتم های مختلفی میبینیم(مثلاً String که رنگ رشته ها رو مشخص میکنه) که شامل دو بخش Foreground و Background هستند. Foreground، همون رنگ اصلی هست و Background رنگ پس زمینه اون آیتمه. (اگر بخواین که پس زمینه رنگی نداشته باشه، از 0x02000000 استفاده کنید) حالا وارد بیسیک بشید و ColorPicker رو باز کنید و رنگهای مختلف رو امتحان و جایگزین مثال بالا کنید. برای اینکه تمی که ساختید رو هم امتحان کنید کافیه داخل بیسیک، از منوی tools -> ideOption -> themes رو باز کنید و CustomTheme رو انتخاب کنید تا اعمال بشه. اینم یه نمونه از تم جدید برای بیسیک که چند روز قبل تو سایت مرجع منتشر شد: دانلود : https://www.b4x.com/android/forum/attachments/theme_dracula-zip.97959/ این فایل رو تو محل نصب بیسیک تو پوشه themes کپی کنید: C: \ Program Files (x86) \ Anywhere Software \ Basic4android \ Themes اگر سؤالی داشتید، درخدمتم.
  48. 4 امتیاز
    مشاهده فایل PersianSpinner سلام خدمت دوستان عزیز. یه کتابخونه فوق العاده کاربردی و زیبا رو براتون آماده کردیم. اسپینر پیشفرض بیسیک خیلی قابلیت شخصی سازی نداره متاسفانه. برای همین یه اسپینر کاستوم شده رو براتون آماده کردیم که میتونین هر شکلی که خواستین اونو دربیارین. امکانتی شامل: 1: تغییر فونت، رنگ، سایز نوشته ها. 2: اضافه کردن آیکن کنار آیتمها 3: امکان راستچین یا چپ پین کردن و بسیاری امکانات دیگه. انشالا مورد استفاده قرار بگیره. دانلود سورس کار با کتابخانه PersianSpinnerSource.zip پیشنمایش ارسال کننده محمدرضا شاهپیری ارسال جمعه, 16 اسفند 1398 دسته کتابخانه ها  
  49. 4 امتیاز
  50. 4 امتیاز
×
×
  • جدید...