رفتن به مطلب

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

  1. امیرحسین قاسمی

    امیرحسین قاسمی

    کاربر عادی


    • امتیاز

      49

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

      81


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

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

    مدیر کل سایت


    • امتیاز

      46

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

      3,256


  3. Mthzf1384

    Mthzf1384

    کاربر عادی


    • امتیاز

      20

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

      95


  4. Mr Mansour

    Mr Mansour

    مدیر بخش


    • امتیاز

      16

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

      228



مطالب محبوب

در حال نمایش مطالب دارای بیشترین امتیاز از زمان دوشنبه, 6 بهمن 1399 در پست ها

  1. 5 امتیاز
    باسلام، با یک آموزش دیگر با عنوان(رپ کتابخانه برای بیسیک فور اندروید)در خدمتتون هستم. شما میتوانید جهت سهولت در کار خودتان و یاحتی سایر توسعه کنندگان کتابخانه های کاربردی برای B4a رپ کنید و حتی میتوانید از فروش فایل کتابخانه درآمد کسب کنید. ابتدا ببینیم که رپ کردن(Wraping)به چه معناست: Wrap به معنای بسته بندی کردن می باشد و در واقع در برنامه نویسی به فرایندی گفته می شود که توابع و سایر کدها را در قالب یک class جمع آوری می کند و میتوان توابع آن ها را در اکتویتی ها و کلاس های دیگر فراخوانی کرد. کتابخانه ها منحصر به پلتفورم B4a نمی شوند و حتّی ما در اندروید استودیو،فلاتر،ری اکت نیتیو و سایر محیط های برنامه نویسی نیز از کتابخانه ها استفاده می کنیم. برای B4a میتوان از طریق خود محیط مذکور، جاوا، کاتلین و... کتابخانه رپ کرد. بنده در این تاپیک آموزشی قصد دارم تا به طور رایگان آموزش رپ کتابخانه رو از طریق خود B4a براتون آموزش بدم. امّا اگر از این تاپیک استقبال خوبی بشه قول میدم براتون آموزش رپ کتابخونه از جاوا رو هم در انجمن قرار بدم 1-خب B4a رو باز کنید. یک پروژه جدید ایجاد کنید. 2-کتابخانه ها همانند برنامه ها دارای یک پکیج نیمی هستند، ابتدا از منوی project گزینه build configurations رو انتخاب کنید و پکیج نیم کتابخونه تون رو وارد کنید.(مثل تصویر زیر) 3-به تصویر زیر دقت کنید: خب همانطور که در تصویر بالا می بینید در این مرحله با Region Project Attributes کار داریم که همون محلی هست که هنگام توسعه پروژه ای نام،ورژن،قابلیت نصب روی کارت SD، افقی یا عمودی بودن و... رو تعیین می کنیم. توی تصویر بالا کلیه نکاتی که لازم هست برای ساخت کتابخانه ای در این قسمت انجام بشه رو خدمتتون گفتم. فقط ممکنه بعضی از تگ ها مثل(#LibraryName) بصورت پیشفرض وجود نداشته باشه که باید خودتون اضافه کنید. 4-از منوی project با کلیک روی add new module و سپس class module یک standard class ایجاد کنید. Dim a As نام standard class در این مرحله هرنامی که وارد کنید کتابخانه با همان نام بصورت متغیری تعریف خواهد شد.(بهتر است که نام کتابخانه خود را در این بخش قرار دهیم زیرا کاربر جهت استفاده در B4a باید از کجا بداند که کتابخانه را با چه تایپی(نوعی) تعریف کند؟ اولین مورد که به ذهن کاربر می رسد این است که نام کتابخانه را وارد می کند. بدین شکل: Dim a As نام کتابخانه 5-پس از انجام مراحل بالا یک class به شکل زیر باز خواهد شد: توجه کنید که در این بخش همواره با sub ها سر و کار خواهیم داشت زیرا ما در اینجا توابع آماده را قرار می دهیم و کاربر(استفاده کننده از کتابخانه شما)این توابع را بصورت متد در اکتویتی های خود فراخوانی میکند. بنابراین دانستن چند امر ضروری است: اگر قبل از sub مورد نظر هیچی قرار ندهیم یا عبارت public را قرار دهیم در آن صورت کاربر به این تابع دسترسی خواهد داشت مثلا در تصویر بالا initialize و همچنین class_globals قابل مشاهده خواهند بود(جهت امتحان کتابخانه به اکتویتی Main مراجعه می کنیم و متغیری از نوع کلاسی که ساختیم تعریف می کنیم) : همانطور که می بینید سه متد از کتابخانه(class)ما معرفی میشود. مثلا شاید اصلا به متدهای class_Globals و initialize و حتی isInitialized نیازی نباشد. بنابراین به class خود باز می گردیم و پشت sub هایی که میخواهیم با تعریف کتابخانه نمایان نشوند واژه ای به نام(Private)قرار میدهیم: الان نباید class_globals معرفی شود. بله!!! الان دیگر class_globals نیامده است شما میتوانید برای بقیه توابع نیز اینکار را انجام دهید. یک نکته دیگه هم وجود دارد اینکه شاید نخواهیم isinitialized نیز نمایان نشود اما در class ما تابعی با نام مذکور وجود ندارد تا آن را private کنیم! برای این کار باید قطعه کد زیر را به class خود اضافه کنید. Private Sub IsInitialized End Sub خب! در class خود باید توابع مورد نظر را بنویسیم و آن توابعی که باید توسط کاربر مقدار دهی شوند را هرگز نباید private کنیم. مثلا: همانطور که در تصویر بالا می بینید چون به بقیه sub ها احتیاج نیست اون هارو private کردیم. البته ممکنه خودمون نیاز داشته باشیم مثلا از Class_Globals استفاده کنیم و متغیرهامونو توش تعریف کنیم و در کتابخانه استفاده کنیم اما لزوما کاربر به آن احتیاجی نخواهد داشت.بلکه مثلا در اینجا تنها چیزی که کاربر احتیاج دارد Sub پلاس هست(خودمون نام ساب رو plus گذاشته ایم، این نام دلخواهی است)که دو مقدار عددی میگیرد آنها را جمع کرده و برمیگرداند. اگر بخواهیم کتابخانه خود را در Main امتحان کنیم چنین چیزی خواهد شد: همانطور که می بینید فقط یک متد نمایان می شود. میتوانیم از کتابخانه خود به شکل زیر استفاده کنیم: اگر از a.sub(5,8) مثلا در یک msgbox استفاده کنیم عدد 13 نمایش داده خواهد شد. 6-ما میتوانیم جهت درک بیشتر کاربر از کامنت های توضیحات برای کتابخانه خود استفاده کنیم و حتی میتوانیم مثال نیز برای آن قرار دهیم تا کاربر مثالی از نحوه تعریف و استفاده از کتابخانه را ببیند و حتی بتواند آن را copy و paste کند. برای این کار به تصویر زیر دقت فرمایید: جهت توضیحات دقیقا یک خط بالاتر از Sub موردنظر یک تک کوتیشن(') میگذاریم و توضیحات خود را مینویسیم. جهت درج مثال پس از درج توضیحات یک Enter میزنیم تا به خط بعد منتقل شویم. سپس واژه(Example:) را مینویسیم و دوباره Enter را میزنیم. درخط جدید واژه(<code>) را پس گذاشتن(')مینویسیم و دوباره Enter را میزنیم.در این خط و هر خط بعد از آن میتوانیم کدهای خود(مثال کتابخانه مان) را بصورت کامنت شده(با تک کوتیشن('))قرار دهیم. وسپس میتوانیم با نوشتن واژه(</code>)مثال خود را خاتمه دهیم. پس فرم کلی به شکل زیر شد: 'توضیحات 'Example: '<code> محل قرار گرفتن مثال های شما(قبل از هر خط مثال از تک کوتیشن استفاده کنید) '</code> sub mysub endsub نتیجه بصورت زیر خواهد بود: 7-خب حالا چگونه کتابخانه خود را رپ کنیم؟ یعنی دو فایل jar و xml تولید شود؟ روی class خود بروید و دکمه های Alt+5 را همزمان فشار دهید یک پنجره ای باز خواهد شد که مسیر ذخیره کتابخانه را باید تعیین کنید. ترجیحا یک پوشه بسازید و آن را انتخاب کنید. اما میتوانید جهت راحتی کار در مسیر کتابخانه های b4a ذخیره کنید تا در b4a کتابخانه خود را تیک بزنید و امتحان کنید.(فقط باید در پنجره کتابخانه راست کلیک کرده و گزینه Refresh را انتخاب کنید تا لیست کتابخانه ها بروز شود.) خب مثالی که ما در این تاپیک زدیم خیلی ساده بود و کتابخونه مون میومد دوتا عدد رو جمع می کرد قطعا شما میتونید کتابخانه های بسیار کاربردی و قدرتمندی رو رپ کنید. لازم میدونم یک نکته روهم اینجا بگم: اون سری هم یک کتابخانه ساخت کتاب با متن و تصویر رو براتون قرار داده بودم، برخی از دوستان عزیز لطف کردند اومدن پی وی بنده و قدردانی کردند(این قدردانی ها انگیزه ای برای فعالیت بهتر بنده هستن.) و همچنین گفتند که شما این همه زحمت می کشید چرا محصول خود را بصورت رایگان در دسترس عموم قرار میدید؟ بنظرم جواب این سوال بسیار واضح و آشکار هست و اون چیزی جز خدمت به برنامه نویسان عزیز کشورم نیست و این زحمات بنده بسیار ناچیز می باشد و امیدوارم مورد قبول حق قرار بگیرد. امیدوارم از این آموزش نهایت استفاده رو برده باشید. یاعلی
  2. 5 امتیاز
    سلام و عرض ادب دارم خدمت همه دوستان عزیز انجمن امروز یک قطعه کد براتون آماده کردم که میتونید باهاش یک ToastMessage کاملا سفارشی بسازید(رنگ زمینه و رنگ متن Toast رو خودتون تعیین میکنید.) خب بریم شروع کنیم ابتدا کتابخانه Javaobject رو تیک بزنید، سپس کد زیر رو بین دوتا sub کپی و سپس پیست(copy & past)کنید Sub ToastMessageShow_Custom(Message As Object, LongDuration As Boolean, BackgroundColor As Int , message_color As Int) Dim cs As CSBuilder cs.Initialize.Color(message_color).Size(20).Append(Message).PopAll Message=cs Dim ctxt As JavaObject ctxt.InitializeContext Dim duration As Int If LongDuration Then duration = 1 Else duration = 0 End If Dim toast As JavaObject toast = toast.InitializeStatic("android.widget.Toast").RunMethod("makeText", Array(ctxt, Message, duration)) Dim v As View = toast.RunMethod("getView", Null) Dim cd As ColorDrawable cd.Initialize(BackgroundColor, 20dip) v.Background = cd toast.RunMethod("show", Null) End Sub حالا هرکجا که میخواهید یک toast سفارشی نمایش بدین اینطوری تابع بالارو فراخوانی کنید: ToastMessageShow_Custom("Answercenter.ir",True,Colors.Blue,Colors.White) 1-توی پارامتر اول متن مورد نظرتون رو قرار بدید. 2-توی پارامتر دوم اگر true بزارید مدت زمان نمایش بیشتر و اگر false بزارید این مدت کم میشه. 3-پارامتر سوم رنگ زمینه toast رو میگیره که اینجا من آبی دادم. 4-پارامتر چهارم هم رنگ متن رو میگیره که من اینجا سفید دادم. نتیجه کارمون این میشه: موفق و سربلند باشید، یاعلی
  3. 5 امتیاز
    سلام کتابخانه RuntimePermissions را از پنجره librarys تیک بزنید. سپس در globals یک متغیر از کلاس این کتابخونه تعریف کنید. به این شکل: Sub Globals Private r As RuntimePermissions End Sub سپس به این شکل استفاده کنید(این کدهارا در activity_create و بالاتر از همه کدها قرار بدید. البته باید قبل از اجرای کدهایی که از دسترسی استفاده می کنند قرار دهید.) : r.CheckAndRequest(r.PERMISSION_WRITE_EXTERNAL_STORAGE) Wait For Activity_PermissionResult (Permission As String, Result As Boolean) If Result = False Then Msgbox("اجازه دسترسی صادر نشد. بنابراین برنامه نمیتواند کار کند.","") Activity.Finish Return End If در کد بالا به جای عبارت(PERMISSION_WRITE_EXTERNAL_STORAGE) دسترسی مدنظر خود را قرار دهید. PERMISSION_WRITE_EXTERNAL_STORAGE دسترسی حافظه را میگیرد. اگر Result برابر با false باشد یعنی اینکه کاربر اجازه دسترسی را صادر نکرده است و جهت جلوگیری از اختلال در کار برنامه یا فورس کلوز باید از اجرای خط های بعدی جلوگیری کرد. همچنین این تایید دسترسی کافیست تا یک بار توسط کاربر صادر شود و در دفعه های بعدی که کاربر وارد برنامه می شود بصورت خودکار تشخیص داده میشود که اجازه دسترسی روشن است و دیگر درخواستی مبنی بر اجازه دسترسی ظاهر نمیشود. همچنین اگر اندروید پایین تر از شش باشد دیگر اجازه دسترسی درخواست نخواهد شد. موفق باشید
  4. 4 امتیاز
    سلام و عرض احترام، پس از دو روز تلاش بلاخره کتابخانه Custom_Dialog رو آماده کردم. حتما براتون پیش اومده که بخواهید Msgbox2 خودتون رو سفارشی کنید و از ظاهر بد و سیاه(یا سفید)رنگش خلاص بشیدو خودتون یک جعبه پیغام سفارشی ایجاد کنید...پس این کتابخونه برای شماست!!! استفاده از این کتابخونه بسیار آسان هست. ویژگی ها: -امکان تعیین رنگ پس زمینه دیالوگ -امکان تعیین رنگ متن دیالوگ -امکان تعیین رنگ دکمه های دیالوگ -امکان تعیین رنگ متن دکمه دیالوگ -فیت شدن خودکار متن دیالوگ با اندازه دیالوگ(دیگر متن از کادر بیرون نمیزنه و یا خیلی کوچک نمیشه(یعنی با سایز صفحه نمایش دستگاه های مختلف متناسب است)) -امکان گذاشتن آیکون برای دیالوگ -امکان محو کردن دیالوگ -امکان تعریف رویداد کلیک برای دکمه های دیالوگ -قابلیت استفاده بصورت بسیار راحت و... نحوه استفاده: هنگامی که فایل رو دانلود کردید دوتا فایل xml وjar رو توی پوشه librarys بیسیک فورتون کپی پیست کنید. همچنین داخل فایل zip سورس نمونه نیز قرار دارد که میتوانید براساس اون پیاده کنید. علاوه براین ها متدهای کتابخانه دارای توضیحات فارسی هستند. تصویری از دیالوگ ساخته شده با این کتابخانه: رمز فایل: Answercenter.ir هزینه استفاده: سه صلوات لینک دانلود کتابخانه+سورس نمونه: https://s16.picofile.com/file/8425789576/Custom_Dialog.zip.html موفق باشید
  5. 4 امتیاز
    باعرض سلام و ادب خدمت همه دوستان عزیز انجمن خوب Answercenter، بنده اگر خاطرتون باشه چندی پیش یک تاپیک زده بودم: خیلی مشکل بد و آزار دهنده ای بود و موجب شده بود تا با ترس و استرس برنامه هامو بنویسم که نکنه آخر سر ویروسی شناسایی بشه و زحماتم به باد بره پس از تقریبا 10 روز بررسی تونستم این مشکل بزرگ و نگران کننده رو حل کنم به دلیل اهمیت زیاد موضوع با اجازه بزرگان انجمن و بقیه دوستان یک تاپیک ایجاد کردم تا تجربه مو با شماها به اشتراک بزارم خب واقعیتش توی انجمن مرجع پرسیدم کسی پاسخ نداد و اینجا هم دوتا از دوستان عزیز(آقای شاهپیری و معینی) تلاش کردند تا مشکل رو حل کنند ولی تاثیری نداشت. از همینجا از شون هم قدردانی میکنم. ده روز هست که خودم آزمایش میکردم تا در نهایت مشکل رو حل کنم و به نتیجه هم رسیدم(جوینده یابنده است) خب زیاد حرف میزنم هاا بریم سر اصل مطلب من این کارهارو کردم برنامه رو کامپایل کردم با نهایت تعجب و در قله نومیدی دیدم که آنتی ویروس مکافی دیگه گیر نداد: 1-حتما نام برنامه رو عوض کنید. 2-حتما پکیج نیم رو عوض کنید و به فرم استاندارد بنویسید: (نام شرکت یا توسعه دهنده).(نام برنامه).(نام دامنه کشور(ir) یا بین المللی(com)) 3-سرویس استارتر که پیشفرض توی پروژه وجود داره رو remove کنید(روی سرویس starter کلیک کنید. از سربرگ ابزار ها گزینه project رو کلیک و سپس روی Remove Module کلیک و در نهایت گزینهyes رو بزنید جهت اطمینان نیز به پوشه پروژه خود مراجعه و فایل starter.bas رو حذف کنید. نمیدونم واقعا بخاطر چی این آنتی ویروس مکافی به سرویس استارتر گیر میده (البته شاید برای بعضی پروژه هاهم گیر نده ولی من حذف کردم درست شد) من میگم شاید میگه این سرویس توی پس زمینه کار کنه و کارهای خرابکارانه روی گوشی کاربر انجام بده. 4-حتما IncludeTitle رو روی false بزارید تا برنامه کاربردی تر نشون داده باشه. اگه روی true باشه به نظرم آنتی ویروس میگه این یک برنامه الکی و بدافزار هست که به جزئیاتی مثل IncludeTitle توجه نکرده است. 5- حتما پروژه تون رو پرمحتوا کنید به دلیل اینکه شاید آنتی ویروس میگه که این برنامه که خالیه و کاربردی نداره برای این نصب شده که برای یک لحظه اطلاعات کاربر رو به سرقت ببره در حالی که اینطور نیست. 6-حتما از یک کلید(key store) معتبر استفاده کنید که مورد تایید گوگل هست. البته این رو بنده امتحان کردم ولی تاثیری نداشت و همچنان برنامه ویروسی شناخته می شد اما محض احتیاط میگم. خلاصه بنده وقتی یک پروئژه خالی رو با نام و پکیج نیم پیشفرض که دارای سرویس استارتر نیز بود و IncludeTitle هم true بود کامپایل میکردم این آنتی ویروس مکافی بهم گیر میداد و موجب نگرانی بنده و برخی از دوستان شده بود که با این راه حل های بالا حل کردم. امیدوارم که هرگز چنین مشکلی براتون پیش نیاد ولی اگر پیش اومده و دارید الان این تاپیک رو مطالعه می کنید راه حل های بالا رو امتحان کنید.99 درصد حل خواهد شد و اگر حل شد برام یک صلوات بفرستید. موفق و پیروز باشید
  6. 4 امتیاز
    با این قطعه کد میتونین رنگ Scrollbar رو تغییر بدید حتما تو پروژه هاتون استفاده کنید خوشگیل میشه Sub SetScrollbarColor(sv As ScrollView, clr As Int) Dim r As Reflector r.Target = sv r.Target = r.GetField("mScrollCache") r.Target = r.GetField("scrollBar") Dim cd As ColorDrawable cd.Initialize(clr, 5dip) r.RunMethod4("setVerticalThumbDrawable", Array(cd), Array As String("android.graphics.drawable.Drawable")) End Sub کافیه ScrollView رو بهش پاس بدین و یک رنگ متریال ناناز هم بهش بدید.
  7. 4 امتیاز
    سلام، امروز یک کتابخانه بسیار کاربردی را براتون آماده کردم که باهاش میتونید با دو خط برنامه نویسی برنامه کتاب همراه با متن و عکس بسازید. این کتابخانه از webview استفاده نمی کند بنابراین برنامه های کتابی ساخته شده با آن کاملا مورد تایید مارکت ها می باشد. توی فایل zip که براتون پایین همین صفحه می زارم کتابخانه+سورس نمونه+notepad++ رو گذاشتم اما بازم اینجا کامل توضیح میدم! ابتدا فایل zip رو استخراج کنید.(رمز:answercenter.ir) سپس به پوشه material_book(library) برید و دو فایل material_book.xml و material_book.jar رو کپی کنید و توی محل کتابخانه های b4a خود پست کنید. سپس b4a را باز کنید و یک پروژه جدید ایجاد کنید.از پنجره librarys تیک کتابخانه material_book را بزنید. حال در globals یک متغیر مثل زیر تعریف کنید: Dim mybook As material_book الان در Activity_Create این کد ها را قرار دهید. mybook.Initialize(Colors.Blue) mybook.build(Activity,15,Colors.White,File.ReadString(File.DirAssets,"mytextfile.txt"),True) توضیح دو خط کد بالا: ابتدا کتابخانه را initialize می کینم. پارامتر ورودی این متد یک int می باشد که رنگ اسکرول ویوی ما را تعیین می کند. به عنوان مثال من رنگ آبی را به آن داده ام. نکته بسیار مهم: نیازی به ساختن هیچگونه scrollview از طریق designer نیست و فقط شما طبق آموزش پیش بروید. متد بعدی کتابخانه build است که باید پس از initialize فراخوانی گردد. این متد شامل پنج پارامتر ورودی است: 1-باید در این پارامتر ورودی دقیقا activity نوشته شود. 2-پارامتر دوم سایز متن است. 3-پارامتر سوم رنگ متن را تعیین می کند که به عنوان مثال بنده در اینجا سفید قرار داده ام. 4-در این پارامتر باید یک string وارد شود. توصیه می کنم که ابتدا متن کتاب خود را با استفاده از notepad++ بنویسید و سپس آن را وارد dirasset در b4a کنید.(توصیه می کنم از notepad معمولی استفاده نکنید من خودم برای متون فارسی استفاده کردم به مشکل برخوردم اما نوت پد پلاس پلاس هیچ مشکلی نداره فایل نصبش رو براتون توی همون فایل زیپ قرار داده ام(هم 32 بیتی و هم 64 بیتی)) اگر میخواهید در بین متون خود از عکس نیز استفاده کنید باید به صورت زیر عمل کنید: مثال متن: سلام، من امیرحسین قاسمی هستم از انجمن انسور سنتر.این کتابخانه بسیار کاربردی رو به همراه مثال براتون آماده کرده ام{emam_reza.jpg}این تصویری که در بالا می بینید حرم ملکوتی امام رضا(ع)می باشد.{flower.jpg} روز خوبی داشته باشد. در این بالا ما متن خودمونو می نویسیم هر جا لازم شد تا تصویر قرار دهیم باید نام آن تصویر را به همراه پسوندش داخل دو کاراکتر {} قرار دهیم.(کاراکتر ها باید دقیقا{} باشند) سپس فایل های تصویری خود را که در بینابین متن بالا قرار داده ایم با همان نام در dirasset پروژه b4a خود قرار می دهیم.(فایل تصویری باید یا png باشد یا jpg) پس از انجام این کارها فایل متنی خود را که با نوت پدپلاس پلاس نوشته ایم ذخیره و آن را وارد dirasset پروژه خود می کنیم. 5-پارامتر آخر اگر true باشد متن ما راست چین خواهد شد اما اگر false باشد چپ چین خواهد بود. شما کافیست فقط مراحل بالا را انجام دهید در صورت نیاز و طولانی بودن، متن اسکرول خواهد شد. کار تمام است. خروجی بگیرید و لذت ببرید. فقط بنده یک اسکرین شات هم از این مثال براتون بزارم: https://s16.picofile.com/file/8422876000/mybook.PNG دانلود کتابخانه+سورس نمونه+نوت پدپلاس پلاس(هزینه: سه صلوات بر محمد و آل محمد) https://s16.picofile.com/file/8422876384/material_book_library.zip.html رمز فایل: answercenter.ir منتظر نظرات، پیشنهادات و انتقادات تون هستم.
  8. 4 امتیاز
    سلام، احتمالا با دیدن عنوان این تاپیک به یاد فرمت داده جیسون بیفتید که مزیت های بسیاری دارد. اما من در این تاپیک آموزشی، قصد آموزش جیسون رو ندارم بلکه میخواهم آموزش بدم تا چطوری داده هایی مثل متن ها و عدد رو توی یک فایل txt قرار بدیم و همچنین اونارو بخونیم. درک بهتر: فرض کنید ما چهارتا عدد داریم:1001و1002و1003و1004 اگر از دیتابیس استفاده نکنیم مجبوریم برای ذخیره هر کدام از این اعداد از دستور writestring فایل txt بسازیم و در نتیجه 4 تا فایل txt خواهیم داشت که زیاد جالب نیست. الان ما میخواهیم همه این اعداد را فقط توی یک فایل txt ذخیره کنیم. به این صورت: 1001,1002,1003,1004, به عنوان مثال ما در این آموزش فرض می کنیم 4 تا ادیت تکست داریم که کاربر بایستی در هر کدام از آن ها عددی وارد کرده و سپس روی دکمه کلیک کند و این اعداد کاربر داخل یک فایل txt ذخیره گردد و بعدا در صورت نیاز این اعداد تجزیه شده و دوباره بصورت جداگانه به نمایش در آیند. Dim a As string=edittext1.text Dim b As string=edittext2.text Dim c As string=edittext3.text Dim d As string=edittext4.text Dim total_num As string=a&","&b&","&c&","&d&"," File.WriteString(File.DirInternal,"my_numbers.txt",total_num) توضیح کدهی بالا: چهارتا متغیر تعریف کردیم از نوع استرینک تا متن، عدد و هر رشته ای رو که کاربر توی ادیت تکست وارد کرد بصورت موقت ذخیره کنه. یک متغیر دیگه به نام total_num تعریف می کنیم تا ورودی های ادیت تکست رو به وسیله"," از هم جدا کنه. نکته بسیار مهم: باید بعد از آخرین ورودی(در اینجا ورودی edittext4) هم دارای کاراکتر"," باشه. و در آخر هم این ورودی ها کنار هم توی یک فایل txt و در حافظه dirinteral برنامه ذخیره میشه. اما اگر بخواهیم تا این ورودی های کاربر رو در صورت لزوم نمایش بدیم باید اینگونه عمل کنیم: این sub زیر رو بین دوتا sub دیگه درج کنید. به کامنت درج شده درون این sub توجه گردد. Sub checkints(txt As String) Dim i1 As String=0 Dim i2 As String For i = 0 To txt.Length Try If txt.CharAt(i) = "," Then i2 = i If txt.SubString2(i1,i2) <> "" Then Dim mystring As String=(txt.SubString2(i1,i2)) 'اینجا کدی رو که میخواهیم پس از تجزیه اجرا بشه می نویسیم مثلا من میخوام برای هر کدام از ورودی هایی که تجزیه میشود یک جعبه پیغام نمایش داده شود. msgbox(mystring,"ورودی تجزیه شده") End If Try i1=i+1 Catch End Try End If Catch End Try Next End Sub حالا هرجا که میخواهیم میتوانیم با استفاده از کد زیر به تمامی ورودی های کاربر به صورت جداگانه دسترسی داشته باشیم: checkints(File.readString(File.DirInternal,"my_numbers.txt")) نکته: اگر من قطعه کد بالارو مثلا توی رویداد یک دکمه به کار بگیرم به محض کلیک روی دکمه 4 تا msgbox به ترتیب نمایش داده خواهد شد که هر کدام به ترتیب ورودی هایی را نمایش خواهد داد که کاربر قبلا توی ادیت تکست وارد کرده بود. اگر شما میخواهید به جای msgbox کار دیگری انجام دهید، مثلا ورودی ها را توی یک لیبل بچینیدیا... باید توی sub که بالا درج کردم پایین اون کامنت دستور مدنظر رو بنویسید. همچنین شما میتوانید هر تعداد ورودی را بین "," قرار دهید و به صورت دلخواهی می باشد و ما در اینجا 4 ورودی را مثال زدیم. موفق و کامروا باشید
  9. 3 امتیاز
    سلام خدمت دوستان عزیز کلاس زیر برای B4J قابل استفاده نبود ولی در سایت مرجع تازه به روز شده و از الان میتونید استفاده کنید: در ضمن کتابخانه یک سری تغییرات دیگه هم کرده که اون هایی که B4A , B4I هم هستند میتونن از نسخه جدید استفاده کنن دانلود نسخه جدید کتابخانه دانلود مثال کتابخانه موفق باشید
  10. 3 امتیاز
    یکم قشنگترش کنیم <?php $data = "vyyv hello tc ttrvbu 7&:+++__ "; @preg_match_all("#([a-zA-Z]|[0-9]|_)#", $data, $matches); echo join("" , $matches[0]); ?>
  11. 3 امتیاز
    درود برای php میتونید از کد زیر استفاده کنید if (str_contains('How are you', 'are')) { echo 'true'; } برای سوال دوم هم از کدهای زیر استفاده کنید HTML <div class="scrollmenu"> <a href="#home">Home</a> <a href="#news">News</a> <a href="#contact">Contact</a> <a href="#about">About</a> </div> CSS div.scrollmenu { background-color: #333; overflow: auto; white-space: nowrap; } div.scrollmenu a { display: inline-block; color: white; text-align: center; padding: 14px; text-decoration: none; } div.scrollmenu a:hover { background-color: #777; }
  12. 3 امتیاز
    سلام مجدد خدمت شما، یادم رفته بود یک مورد رو توضیح بدم. به پیشنهاد یکی از دوستان عزیز انجمن تاپیک رو ویرایش کردم و یک مرحله هم بهش اضافه کردم.(آموزش گذاشتن توضیحات و مثال از کتابخانه(به مرحله ششم مراجعه کنید)) درضمن دوتا تصویر از مرحله 6 رو دوست عزیزمون(https://answercenter.ir/profile/12049-mthzf1384/) فرستادند و متعلق به بنده نیست. موفق و کامروا باشید
  13. 3 امتیاز
    سلام به همه انسر سنتری های عزیز یه کتابخانه ای در سایت مرجع منتشر شده که کاربرد بسیاری داره البته نمونش زیاده ولی باز هم میتونه از نمونه های مشابهش بهتر باشه همانطور که در تصویر زیر مشاهده میکنید قابلیت های کتابخانه به صورت زیر است: ایجاد تب به صورت عمودی و افقی دادن Badge تب به صورت متن و آیکون تغییر سایز تب ها فاصله انداختن بین هر تب این کتابخانه در B4J , B4R , B4I هم قابل استفاده است دانلود کتابخانه دانلود مثال کتابخانه لینک کتابخانه در سایت مرجع امیدوارم مورد استفاده قرار بگیره
  14. 3 امتیاز
    با استفاده از تگ و سندر به راحتی میشه Button1.Initialize("Buttons") Button1.Tag = 1 Button2.Initialize("Buttons") Button2.Tag = 2 Button3.Initialize("Buttons") Button3.Tag = 3 ' ' Sub Buttons_Click Dim btn As Button btn = Sender Select btn.Tag Case "1" ' code for Button1 Case "2" ' code for Button2 Case "3" ' code for Button3 End Select End Sub اول دکمه هارا Initialize میکنیم و رویدادشونا مشترک میزاریم (Buttons) و توی رویداد کلیک از سلکت کیس استفاده میکنیم با برسی مقدار تگاشون اگه تعداد دکمه هاهم زیاد بود میتونین از for برای مقدار دهی تگ استفاده کنید Dim Button(40) as Button -------------------------- for i = 0 to 39 Button(i).Initialize("Buttons") Button(i).Tag = i ------------------------- Sub Buttons_Click Dim btn as Button = Sender Select btn.Tag Case 0 Case 1 Case n موفق باشید
  15. 3 امتیاز
    سلام دوست عزیز ببخشید من میخوام یه کم تو آموزش شما دخالت کنم تا کامل تر بشه (البته کامل هست بیشتر کامل بشه) Sub ToastMessageShow_Custom(Message As Object , LongDuration As Boolean , x As Int , y As Int , BackgroundColor As Int , message_color As Int) Dim cs As CSBuilder cs.Initialize.Color(message_color).Size(20).Append(Message).PopAll Message=cs Dim ctxt As JavaObject ctxt.InitializeContext Dim duration As Int If LongDuration Then duration = 1 Else duration = 0 End If Dim toast As JavaObject toast = toast.InitializeStatic("android.widget.Toast").RunMethod("makeText", Array(ctxt, Message, duration)) toast.RunMethod("setGravity", Array(Bit.Or(Gravity.TOP, Gravity.LEFT), x, y)) Dim v As View = toast.RunMethod("getView", Null) Dim cd As ColorDrawable cd.Initialize(BackgroundColor, 20dip) v.Background = cd toast.RunMethod("show", Null) End Sub من به کد شما یک امکان دیگه هم اضافه کردم که برنامه نویس های عزیز میتونن با استفاده از این کد اون ToastMessage رو هر جا از اکتیویتی که خواستن نمایش بدن فقط کافیه جای اون X , Y عددی رو قرار بدن که میخوان درش ToastMessage نمایش داده بشه به این صورت هم استفاده میشه: ToastMessageShow_Custom("Answercenter.ir" , True , 25%X , 90%Y , Colors.Blue , Colors.White) بازم ببخشید دخالت کردیم موفق باشید
  16. 3 امتیاز
    سلام و درود.وظیفه اصلی اینتنت برقراری ارتباط بین قسمتهای مختلف از برنامه و حتی بین برنامه ما با برنامه های دیگه اس. مثلا شما میخواید با دوربین گوشی عکس بگیرید باید حتما یه اینتنت ایجاد کنید و تنظیمات مربوطه رو بهش بدید و بادستور startactivity اینتنت رو اجرا کنید‌ البته اینتنت قابلیتای فوقلاده زیاد دیگه ای داره و یکی از مهمترین کلاسای اندروید هست
  17. 3 امتیاز
    سلام دوست عزیز شما برای استفاده از api اینستاگرام نیاز هستش که یک حساب توسعه دهنده در بخش مربوطه اینستاگرام بسازین تا دسترسی لازم را برای شما فراهم کند. آموزشات لازم در این تاپیک قرار دارد. موفق و پیروز Instagram Sdk - Login instagram
  18. 2 امتیاز
    سلام، باید متغیر مورد نظر را در متغیر های سراسری (Process_Globals) تعریف کنید.
  19. 2 امتیاز
    سلام و درود. بین یک هفته تا ده روز طول میکشه تا گوگل اطلاعات توسعه دهنده رو تایید کنه عزیر. تا اون موقه صبور باشید
  20. 2 امتیاز
    سلام خدمت دوستان گرامی یک کتابخانه خوب دیگه در سایت مرجع گذاشته شده که برای اینجا هم به اشتراک میزاریم تا دوستانی که وقت و امکاناتش رو ندارن از همین جا بتونن اون رو دانلود کنن این کتابخانه قابلیت استفاده در B4A , B4I , B4R , B4J رو داره. پیش نمایش کتابخانه: B4A: B4I: B4J: دانلود کتابخانه دانلود مثال برای کتابخانه امیدوارم مورد استفاده قرار بگیره
  21. 2 امتیاز
    خطا که مشخص هست عزیز. خط AriaFile.ListFiles خروجیش null هست. شما اومدین روی یه مقدار null عملیات انجام دادین که قطعا خطا میگیره.
  22. 2 امتیاز
    سلام و درود. چشم انشالا تو نسخه بعد اضافه خواهد شد.
  23. 2 امتیاز
    از این استفاده کنید امیدوارم به کارتون بیاد https://www.b4x.com/android/forum/threads/custom-keyboard-creator-interface.11631/
  24. 2 امتیاز
    سلام و درود. لطفا یک سورس و کتابخونه تپسل رو پیوست کنید
  25. 2 امتیاز
    خودم پیدا کردم کدش رو اینجا میزارم احیانا به کار کسی بیاد <?php if (isset($_GET['send'])) { $data = $_GET['test']; @preg_match_all("#(z|x|c|v|b|n|m|a|s|d|f|g|h|j|k|l|q|w|e|r|t|y|u|i|o|p|Z|X|C|V|B|N|M|A|S|D|F|G|H|J|K|L|Q|W|E|R|T|Y|U|I|O|P|1|2|3|4|5|6|7|8|9|0|_)#", $data, $matches); for($i = 0; $i < count($matches[1]); $i++){ print $matches[1][$i]; } } ?>
  26. 2 امتیاز
    دوست عزیز بدون دسترسی امکان پذیر نیست کاری کنید مگر اینکه اندرویدش زیر 6 باشه.روز ب روز اندروید داره امنیتش بیشتر میشه و به این راحتی هم نمیشه دورش زد و برای کارای معمول دست برنامه نویسا بسته شده چ برسه... تنها چیزی ک شاید ممکن باشه ویژگی accessibility اگر بشه رویداد تاچ اتومات رو اضافه کرد که تو بیسیکم باز مبحث دیگه ایه
  27. 2 امتیاز
    سلام با قطعه کد زیر میتونید تمام مخاطبین رو بگیرید Public Sub GetAllPhones As Map Dim crsr As ResultSet = cr.Query(dataUri, Array As String("data1", "data2", "contact_id"), "mimetype = ?", _ Array As String("vnd.android.cursor.item/phone_v2"), "") Dim res As Map res.Initialize Do While crsr.NextRow Dim id As Long = crsr.GetLong("contact_id") Dim phones As List If res.ContainsKey(id) = False Then phones.Initialize res.Put(id, phones) Else phones = res.Get(id) End If Dim p As cuPhone p.Initialize p.Number = crsr.GetString2(0) p.PhoneType = phoneTypes.Get(crsr.GetString2(1)) phones.Add(p) Loop crsr.Close Return res End Sub روش استفاده هم به شکل زیر: Dim phones As Map = cu.GetAllPhones For Each id As Long In phones.Keys Dim idphones As List = phones.Get(id) Log($"${id}: ${idphones}"$) Next کتابخونه ContactUtils تیک بزنید. دسترسی هم یادتون نره بگیرید از کاربر https://www.b4x.com/android/forum/threads/solved-how-to-get-contact-list-with-mobile-phone.95129/
  28. 2 امتیاز
    سلام دوست عزیز بنده با کتابخانه زیر کار نکردم ولی احتمالا بتونید بگیرید مخاطبین رو امیدوارم مورد توجه قرار بگیره
  29. 2 امتیاز
    سلام و درود. کد زیر رو توی تم برنامه بزارید و رنگ دلخواه رو بدید <item name="android:statusBarColor">#ff0000</item>
  30. 2 امتیاز
    اگر از app compat استفاده کنید مشکل تون حل میشه حالت دیگه شو رو خبر ندارم متاسفانه شاید با تست بتونید چیزی به دست بیارید SetApplicationAttribute(android:theme, "@style/MyAppTheme") CreateResource(values, theme.xml, <resources> <style name="MyAppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">#FF000000</item> <item name="colorPrimaryDark">#FF000000</item> <item name="colorAccent">#FF000000</item> <item name="android:windowDrawsSystemBarBackgrounds">false</item> </style> </resources> ) @style/Theme.AppCompat.Light.NoActionBar این قسمت این مشکل حل میکنه و صفحه کاملا سفید میاد اول به جای اون حالت
  31. 2 امتیاز
    دوستان خودم پیدا کردم اینجا هم قرار میدم تا اگر آینده کسی مشکلی داشت بتونه از تاپیک بهره مند بشه اگر targetsdk رو توی مانیفست برابر ۲۹ قرار داده اید جهت حل مشکل این کد رو توی مانیفست قرار بدید: SetApplicationAttribute(android:requestLegacyExternalStorage,"true") من خودم امتحان کردم درست شد
  32. 2 امتیاز
    سلام دوست عزیز تو بعضی از گوشی ها میشه لاگ رو گرفت بعضی ها هم نه
  33. 2 امتیاز
    سلام دوست عزیز فکر کنم منظورتون کتابخانه بالا باشه امیدوارم مورد توجه قرار بگیره
  34. 2 امتیاز
    دوست عزیز اگر شما درون پرداخت بازار رو بلد باشید میدونید برای محصولات مصرفی inapp قرار میدید و برای محصولات اشتراکی subs قرار میدید. بقیه ی روند کاری هم مثل همون تنها تفاوت همین هستش. حالا در ساب نتیجه ی پرداخت - اون رو بررسی و حالا اون کاری که مد نظر شماست انجام میدید. همین bazar.RequestPayment("ProductID","subs","Answercenter.IR") Public Sub bazar_PurchaseCompleted (Success As Boolean, Product As Purchase) If Success = True Then End If End Sub راجب زمان اشتراک رو این هارو فک کنم متغیر Product بهتون برگردونه - بنده تست نگرفتم . شما تست بگیرین مطمئنن جواب میگیرین.
  35. 2 امتیاز
    ببینید عزیز من چیزایی که به ذهنم میرسید رو عرض کردم خدمتتون. برای خود من مشکل از کلید ساین هست. من الان دسترسی به سیستم هم ندارم. شب یه خروجی از سیستم خودم باکلید های دیفالت و کاستوم پیوست میکنم تست کنید و اگر مشکل از کلیدها نبود تنها چیزی که به ذهنم میرسه خود سیستمونه که شاید ویروس گرفته باشه. با یه آنتی ویروس قوی و به روز کل سیستم رو اسکن کنید.
  36. 2 امتیاز
    ۴۰ هزار تومن دربرابر این همه خدمات یک ساله واقعا ارزشمنده . این سیستم اختصاصی کاربران بازار هستش احتمالا برای رقابت های بیشتر مایکت این سیستم رو پیاده کنه ‌.
  37. 2 امتیاز
    همینطور که آقای شاهپیری عزیز مطرح کردن بهترین روش اهراز هویت و استفاده از دیتابیس آنلاین هستش . اما خوشبختانه بازار کار مارو آسون کرده با قابلیت جدیدی که اضافه کرده. که یک سیستم عالی برای ذخیره داده و ثبت نام و .... یک فضای خاصی به برنامه اختصاص داده میشه که اطلاعات کاربر رو درش ذخیره بشه. و این یک مزیت عالی هستش. کتابخانه اش در انجمن همسایه رپ شده.
  38. 2 امتیاز
    اگه فایل html داخل فایل های خودتونه و با عوض کردن شبیه ساز هم رفع نشد از LoadHtml استفاده کن اول Dim html as string بعد از readsting برای خوندن فایلت استفاده کن html = file.readstring(file.dirassets,"اسم فایل") بعدش webview1.loadHtml(Html) اینطوری کدهات کوتاه میشه تا اینکه بیای کل html را توی loadhtml بنویسی موفق باشی
  39. 2 امتیاز
    سلام و درود. ببینید دوست عزیز این کار به راحتی قابل انجامه. کافیه url فایل آپلود شده رو دربیارن(که به راحتی در میاد) میان یه فایل با محتویات دلخواه آپلود میکنه. بهترین کار استفاده از دیتابیس آنلاین و احراز هویته کاربر از طریق پروفایل هست
  40. 2 امتیاز
    دوست عزیز شما از شبیه ساز داغون youwave دارین استفاده میکنید و من حواسم نبود اصلا به این قضیه. مشکل از کدها نیست. مشکل از شبیه سازه. یا رو دیوایس واقعی تست کنید یا از شبیه سازای استاندارد دیگه مثه جنی موشن یا ناکس استفاده کنید
  41. 2 امتیاز
    Dim c As ColorDrawable c.Initialize2(Colors.White,5dip,3dip,Colors.Red) Panel1.Background = c
  42. 2 امتیاز
    سلام وقت بخیر به صورت زیر Button1.Padding = Array As Int (30dip, 10dip, 10dip, 10dip)
  43. 2 امتیاز
    مشاهده فایل کتابخانه PersianDeviceInfo (گرفتن تمامی اطلاعات گوشی) به نام خدا و سلام به همه دوستان. یه کتابخونه خیلی جالب و کاربردی رو براتون آماده کردیم. PersianDeviceInfo با استفاده از این کتابخونه میتونید انواع اطلاعات گوشی مثل سریال و مدل و کارخونه و .... رو به دست بیارین که در آینده اطلاعات بیشتری اضافه خواهد شد. انشالا که مورد استفاده قرار بگیره. با سلام. نسخه جدید با امکانات و متدهای بسیار زیاد و کاربردی خدمت دوستان. توجه داشته باشید بعضی از متدها به دسترسی نیاز دارن که بالاشون توضیح داده شده حتما دسترسی رو اضافه نید و برای اندروید بالای 23 درخواست بدین اونو. امکانات جدید. گرفتن نام شبکه، گرفتن نام کشور، گرفتن زبان گوشی، گرفتن میزان شارژ، گرفتن دمای باتری، فهمیدن اینکه گوشی داره شارژ میشه یا نه، گرفتن نوع شبکه، گرفتن مک وایفای و بلوتوث گرفتن ipv6 تشخیص اینکه آیا گوشی به اینترنت متصل است یا نه (دقیق) ... و خیلی از امکانات دیگه. کتابخونه واقعا کامله انشالا که مورد استفاده قرار بگیره پسند نشه فراموش نحوه استفاده. مثال گرفتن قدرت آنتن. Dim mdeviceinfo As PersianDeviceInfo mdeviceinfo.initialize("prdevice") mdeviceinfo.listenToSignalStrength Private Sub prdevice_onSignalStrengthsChanged(signalstrength As Int) log(signalstrength) ' signalstrength betweeen 0 and 4 End Sub مثال: گرفتن درصد شارژ. Dim pd As PersianDeviceInfo pd.initialize("pd") Log("BatteryPercentage: "&pd.BatteryPercentage) Log("Batterytemp: "&pd.batteryTemperature) مثال: تشخیص اتصال واقعی به اینترنت: pd.TestInternetConnection Sub pd_onNetTestRecive(isconnected As Boolean) If isconnected Then Log("دستگاه به اینترنت متصل است") Else Log("بسته شما تمام شده است") End If End Sub ارسال کننده محمدرضا شاهپیری ارسال ۱۸/۰۷/۱۶ دسته کتابخانه ها
  44. 1 امتیاز
    با سلام ، خب این یه کتابخونه ساده که ولی خب wrap کردنش اونقدی ساده نیست چون با سرویس و .. سروکار داره ، ولی خوب آمادش کردم و میتونین رایگان استفاده کنین : لینک بازار طریقه استفاده اینجوریه که یه متغیر تعریف میکنین : Sub Globals Dim aBazar As AriaBazaarVersionChecker End Sub و اون رو اینیتالیز میکنین و یه EventName بهش میدین تا ورژن برنامه رو براتون توی یه sub بریزه که برای دیدن ساب ، توی یه فضای خالی این رو تایپ کنید : sub و یه فاصله بزنین تا لیست رو ببینید و AriaBazaarVersionChecker رو انتخاب کنید و ساب رو اضافه کنید و eventName خودتون رو بهش بدین : Sub Activity_Create(FirstTime As Boolean) aBazar.InitializeService("bazar") End Sub Sub bazar_done (VersionCode As Long) ' طبق گفته ی کافه بازار : در صورتی که بروزرسانی برای برنامه موجود باشد ورژن کد اون رو برمیگردونه ' در غیر این صورت یعنی اگه بروز رسانی برای برنامه موجود نباشه مقدار 1- رو برمیگردونه If VersionCode=-1 Then ToastMessageShow("برنامه بروز میباشد",False) Else ToastMessageShow("برنامه بروز نیست",False) End If aBazar.releaseService End Sub و زمانی هم که کارتون باهاش تموم شد بهتره سرویس رو با کد زیر غیر فعال کنید : aBazar.releaseService امیدوارم مفید بوده باشه AriaBazaarVersionChecker.zip
  45. 1 امتیاز
    با سلام خدمت همه انسورسنتریهای عزیز. ************************************************************************************************************************************************ نسخه 6.6 منتشر شد. در نسخه جدید مشکل دانلود سورس صفحات html مرتفع شده و برای استفاده بیشتر از tag نوع اونو از string به object تغییر دادیم. پس ایونتها به شکل زیر باید باشه. Private Sub prf_onSucsess(Result As String , Tag As Object ) Log(Result) End Sub **************************************************************************************************************************************** نسخه 6.5 منتشر شد. تو این نسخه مشکل کوکی ها و عدم دریافت اطلاعات رفع شده. دوستان همه ی درخواستهای post و get فقط دو ایونت onSucsess و onError دارن و فقط از طریق دستور executRequest اجرا میشن. بنابر این باید متدهاتونو ویرایش کنید. متد upload هم ایونتهاش تغییر کرده. متدها رو یک بار پیاده کنید که تغییرات رو ببینید. ***همچنین متدهای اینشیالایز نیز تغییرات جزئی داشته. به صورت زیر هست اینشیالایز** Dim setup As FastNetSetup setup.SetupFastNet.setUpDownloader.WithCookieManager.WithSSL.Build ******************************************************************************************************************************************** نسخه 6 (نسخه جدید) منتشر شد. آموزش کار با دانلودر دوستان نسخه جدید به کلی با اندروید استودیو بازنویسی شده و همه کتابخانه های مورد استفاده به روز شده. پس حتما به نسخه جدید به روز کنید سورسهاتونو. تغییرات اساسی: ا:- دانلودر بسیار پیشرفته پورت شده از این لینک 2:- تغییر نحوه اینشیالایز: دوستان تو نسخه جدید اینشالایز به صورت کلی هست. یعنی با یک بار اینشیالایز کردن میتونید تو کل پروژه ازش استفاده کنید. پس اینشیالایز باید جایی انجام بشه که تو کل پروژه بشه بهش دسترسی پیدا کرد. بهترین جا برای اینشیالایز متد Service_Create از سرویس Starter هست. مثلا یک نحوه اینشیالایز کردن به صورت زیر هست. Sub Service_Create Dim setup As FastNetSetup setup.FastNetSetup.setUpDownloader.Build End Sub 3:-تغییر نام برخی از متدها. برخی از متدها نامهای درستی نداشتن و بعضا هم نوشتارشون با نام اصلی متفاوت بود که اصلاح شده. متدهای اصلاح شده addHeader , executerequestAsString و چندتای دیگه که اگه برخورد کردید فقط کافیه متدها رو ببینید. خیلی شبیه هست تفاودت در حد حرف هست فقط ************************************************************************************************************************************************* =============================================================================================================== ************لینک آموزش کار با کتابخانه********** ================================================================================================================ نسخه 5.5 متد withTLS به کتابخونه اضافه شده که برای بسیاری از سایتهایی که SSL دارن جوابگو هست ======================================================================================================== نسخه 5.3 (اضافه شدن تایم اوت به کتابخانه) Dim fastnetsetup As FastNetSetup fastnetsetup.SetupFastNet.WithTimeOut(60).Build ' زمان به ثانیه هست ===================================================================================================== نسخه 5.1 با امکان اضافه کردن پراکسی به کتابخانه اضافه شد. مثال استفاده از پراکسی. Dim fastnetsetup As FastNetSetup fastnetsetup.SetupFastNet.WithProxy(fastnetsetup.TypeHttp,"192.168.1888",8080,"","").Build ================================================================================================================================= **** نسخه 4.5 اضافه شد. توی این نسخه کلاس PersianNetIMG رو بنا به در خواست دوستان ویرایش کردیم و متدهای جدیدی اضافه شده.یکی اینکه به خاطر یه سری محدودیتها اونو از دیزاینر حذف کردیم و این بار از طریق کد نویسی اضافه میشه و کلیک گذاشتن بیمپ برای عکس دیفالت و از همه مهمتر نمایش پروگرس بار تا زمانی که عکس به طور کامل لود بشه و یه سری امکانات دیگه که با هاش کار کنین آشنا میشین. دوستان در نظر داشته باشین که این کلاس رو صرفت برای راحتی کار دوستان به کتابخونه اضافه کردیم در صورتی که میخواین کارهای پیشرفته تری با عکس انجام بدین بهتره از کتابخونه های گلاید و یا پیکاسو استفاده کنید. مثال Private PersianNetIMG1 As PersianNetIMG PersianNetIMG1.initialize("pim") Activity.AddView(PersianNetIMG1.View,30%x,0,40%x,50%y) Dim xml As XmlLayoutBuilder PersianNetIMG1.ErrorImageResId=xml.GetResourceId("drawable","myimg") PersianNetIMG1.DefaultImageResId=xml.GetResourceId("drawable","loading") PersianNetIMG1.ImageUrl=imgurl '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' در صورتی که میخواین سایز ایمیج ویو با سایز عکس دانلود شده برابر باشه از کد زیر استفاده کنید PersianNetIMG1.setToMatchBitmap ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' برای مخفی کردن PersianNetIMG1.seTVisibility(False) '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' برای کلیک Sub pim_onImgClick ToastMessageShow("clicked",False) End Sub ================================================================================================================== ====================================================================================================================== ***************************************************************************************************************************************************** یکی از جدیترین و عذاب آورترین مشکلات توی بیسیک به ملکوت الهی پیوست. توی بیسیک کتابخونه هایی که برای ارتباط با سرور وجود داره تقریبا میشه گفت نیازهای ابتدایی رو برآورده میکنن. مثلا شما بخواین همزمان عکس و متن بفرستین یا بخواین فایل آپلود کنین و روند آپلود شدن رو ببینین یا مثلا بخواین همراه متدهای پست و گت هدر بفرستین یا مثلا بخواین به طور مستقیم بیتمپ بگیرین دیگه نمیتونین و مجبورین از کتابخونه های دیگه ای که رپ شده استفاده کنید که هر کدوم متدهای خاصی دارن فقط. این کتابخونه همه ی اینا رو برای شما یک جا فراهم میکنه. این کتابخونه بر پایه کتابخونه های قدرتمند okhttp3 و okio ساخته شده که واقعا بی نظیرن(محصولات شگفت انگیز شرکت squar) برای شروع و نشون دادن قابلیتهای کتابخونه اولین قسمت آموزش رو اختصاص دادم به ساخت یه فرم ثبت نام کامل که تو اون شما میتونید علاوه بر اطلاعات متنی که مثلا نام و پسوردو اینا هست عکس پروفایل هم بفرستین. پریویوی زیرخروجی آ»وزش هست. این آموزش فوقلاده همراه خرید برای دوستان قابل دانلود هست. لینک فروشگاه محصول یکی دیگه از قابلیتهای جذاب و کاربردی این کتابخونه کلاس PersianNetIMG هست. با این کلاس شما یک کاستوم ویوی بسیار کاربردی رو به پروژتون اضافه میکنید. این ویو کارش گرفتن عکس از اینترنت و نمایش توی ایمیج ویو هست. سه تا متد به شکل زیر داره که میتونید به راحتی استفاده کنید. PersianNetIMG1.ImageUrl=imgurl آدرس عکسی که توی سرور هست رو بدین و اونو دانلود و نمایش میده Dim xml As XmlLayoutBuilder PersianNetIMG1.DefaultImageResId=xml.GetResourceId("drawable","myimg") گذاشتن عکس پیش فرض برای ایمیج ویو PersianNetIMG1.ErrorImageResId=xml.GetResourceId("drawable","myimg") در صورت خطا در دانلود این عکس لود میشه واما قابلیتهای کتابخانه اول کتابخونه رو به شکل زیر اینشیالایز کنید Dim prfn As PersianFastNetwork prfn.initialize("prfn") متد اول. PostRequest Dim post As PostRequest post=prfn.BuildPostQuery("url","tag") post.addHeader("key","value") post.addParametrs("ke1","value1") post.addParametrs("ke2","value2") post.executRequest ''''''''''''''''''''''''''''''''''''''''''''''''''''' همه کدهای بالا تو یه خط میشه این prfn.BuildPostQuery("url","tag").addHeader("key","value").addParametrs("ke1","value1").addParametrs("ke2","value2").executRequest متد دوم. GetRequest Dim get As GetRequest get=prfn.BuildGetQuery("url","tag") get.addHeader("key","value") get.addParametrs("key1","value1") get.executRequest ==================================================== یه خطی prfn.BuildGetQuery("url","tag").addHeader("key","value").addHeder("key1","value1").executRequest متد سوم. UploadRequest Dim upl As UploadRequest upl=prfn.BuildUploadQuery("url","tag") upl.addMultipartParameter("key1","value1") upl.addMultipartParameter("key2","value2") upl.addMultipartFile("filekey","filepatch") اضافه کردن فایل به همراه پارامترهای ارسال شده upl.setisRunToAnotherThread(True) تعیین اینکه آپلود در ترد جداگانه انجام شود upl.startUpload متد چهارم. DownloadRequest Dim dnl As DownloadRequest dnl=prfN.buildDownloadQuery("masirdanlod",3,4,False,10000) dnl.startDonload("url") dnl.pauseDownload("url") dnl.deletFileDownload("url",True) متد پنجم. GetBitmapReQuest Dim getbit As GetBitmapReQuest getbit=prfn.BuildGetBitmapGetQuery("imagelink","tag") getbit.setBitmapMaxHeight(250) getbit.setBitmapMaxWidth(250) getbit.startgetBitmap گرفتن بیتمپ دانلود شده Sub prfn_onGetBitmapOkListener(bitmap As Object) Dim bitm As Bitmap=bitmap Activity.SetBackgroundImage(bitm) End Sub توی آموزش اول به upload و get پرداخته شده. استفاده از کتابخونه بسیار ساده اس و حتی بدون آموزش هم میتونید به راحتی ازش استفاده کنید. امیدوارم مورد استفاده دوستان قرار بگیره. ***توجه*** نسخه 2 کتابخونه اضافه شد. تو این نسخه خیلی از کمبودها برطرف شده و از همه مهمتر قابلیت مدیریت کردن درخواستها به وسیله TAG به کتابخونه اضافه شده مثال برای مدیریت تگ.
  46. 1 امتیاز
    سلام مجدد ، ممنون از پاسخگوییتون ، موفق شدم با روش تغییر نام بعد از ذخیره فایل این کار رو انجام بدم : اول ساب زیر رو ایجاد کردم : Sub RenameFile(OriginalFileName As String, NewFileName As String) As Boolean Dim Result As Int Dim StdOut, StdErr As StringBuilder StdOut.Initialize StdErr.Initialize Dim Ph As Phone Result = Ph.Shell("mv " & OriginalFileName & " " & NewFileName, Null, StdOut, StdErr) If Result = 0 Then Return True Else Return False End If End Sub و سپس هنگام رویداد پایان ضبط کد زیر را اضافه کردم : audiorecord.stopAudioRecorder Dim adress As String = File.DirRootExternal&"/REC/MYSOUND/firstsound.mp3" RenameFile(audiorecord.stopAudioRecorder,adress) با توجه به کدهای بالا فایل صوتی بلافاصله بعد از ضبط و ذخیره شدن آن ، به اسم دلخواه ما تغییر نام می دهد . کیفیت کتابخانه استاد شاهپیری بسیار بالا هست ، خیلی ممنونم
  47. 1 امتیاز
    سلام، فرموده آقای معینی رو حتما انجام بدید بنده هم دوتا توصیه دارم: 1-حواستون باشه قبل از لود لایوت در اکتویتی کدهای سنگین نباشه چون توی برنامه نویسی کدها خط به خط اجرا میشن و تا اینکه کدها انجام بشن و برسه به لود لایوت طول میکشه. 2-از دیزاینر هم Animation duration لایوت رو روی صفر قرار بدید.
  48. 1 امتیاز
    مشکل شما در تگ و سندر هست! شما دارید مقدار آیدی رو با lblmp_id.Tag ارسال میکنید، آیا این مقدار رو لاگ گرفتید تست کنید ببینید مقدارش صحیح هست یا نه؟! بعد نقش اون btn1.Tag چیه داخل ساب کلیک؟
  49. 1 امتیاز
    سلام و درود. این مورد توی گوشی های سامسونگ به خاطر آنتی ویروس مکافی و همین طور خود آنتی ویروس مکافی هست. مشکل از کلید دیباگ هست دوست عزیز. حتما یک کلید ساین معتبر با نام و مشخصات معتبر بسازید و اپ رو با این کلید ریلیز بگیرید. موردی نباید باشه دیگه
  50. 1 امتیاز
    با این کد تست کن ببین پاک نمیشه؟ <?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDBPDO"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // تنظیم حالت برخورد با خطاها $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // تنظیم کوئری حذف $sql = "DELETE FROM MyGuests WHERE id=3"; // بدلیل اینکه کوئری نتیجه ای را برنمی گرداند از تابع زیر استفاده می کنیم $conn->exec($sql); echo "Record deleted successfully"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } $conn = null; ?>
×
×
  • جدید...