اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

- برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


Leaderboard


Popular Content

Showing most liked content since 08/26/2017 in all areas

  1. 18 likes
    به نام آنکه جانم بخشید و جهان امیدوارم حالتون خوب خوش باشه. خب اومدیم با نسخه ی جدید بیسیک 4 اندروید با یک هدیه ویژه تر. تشکر ویژه می کنم از امین مهدی نژاد عزیز که توی تمامی موارد در کنارمون همیشه هستش و یاری دهنده ما توی خیلی از امور انجمن میشه. و الان با فارسی سازی کردن نرم افزار بیسیک توسط بنده و آقای مهدی نژاد عزیز ( البته 80 درصد کار رو ایشون انجام دادن ) در خدمت شما عزیزان هستیم لازم به ذکر هستش که چند مدتی میشه از آموزش های بروز انجمن خبری نیست، نوید این رو میدم که در کنار اومدن این نسخه از بیسیک یک تحولی در راستای ارتقاء سطح انجمن داده میشه ( البته به کمک دوستان خوبم)، این تحول چه از لحاظ علمی و چه از لحاظ تغییر سیاست های مدیریتی هستش. خب میشه گفت ما اولین انجمنی هستیم که تونستیم برنامه رو با زبان فارسی در سطح اینترنت ارائه بدیم و خب از این خرسندیم که تونستیم زبان وطنی خودمون یعنی زبان فارسی رو به برنامه اضافه کنیم. برای اینکه بتونید پروژه های قبلی و پروژه های جدید رو با نسخه x.7 اجرا و کامپایل کنید باید از JDK نسخه ی 8 استفاده کنید.در غیر اینصورت پروژه قابل کامپایل و خطایابی نیستش. در ادامه یک تاپیکی ایجاد خواهد شد برای توضیح کامل و به همراه مثال در مورد امکانات اضافه شده به بیسیک نسخه 7 به بالا.سعی میشه اموزش ها به صورت جامع باشند. رمز فایل » answercenter.ir دانلود فایل » B4A V7.3.rar
  2. 15 likes
    سلام عرض میکنم خدمت همه دوستان عزیز. بالاخره کتابخونه آماده شد و افتخار دیگه ای نصیب ما و انجمن و همه ی انسورسنتریها شد خب تو این چند ماه اخیر اینقد بحث ریسایکلر ویو داغ بوده که دیگه جای بحث و صحبتی نمونده و تقریبا همه باهاش آشنایی دارن. کتابخونه حاظر به صورت کامل از کتابخونه ریسایکلر ویوی جاوا ساخته شده و همه ی ویژگیهاشو میشه گفت به همراه داره(همه ی ویژگیهاش اضافه میشه و فعلا تا جایی که تونسنتم اضافه کردم) اما ویژگیهای کتابخونه: سرعت بسیار بالا و بدون هنگ تو هیچ تعدادی از ایتم. قابلیت شخصی سازی بسیار بالا بدون هیچ گونه ریسورس خاصی پشتیبانی از لیوتهای بیسیک و لیوتهای xml( توصیه اکید: حتما تاجایی که میتونید از xml استفاده کنید لیوت بیسیک پرفورمنس کتابخونه رو تحت تاثیر قرار میده) و ویژگیهای بسیار زیاد دیگه... خب همونطور که میدونید ریسایکلر ویو قابلیتهای بسیار زیادی داره و نمیشه توی یک آموزش اونا رو توضیح داد. به خاطر همین آموزشها رو قسمت بندی کردیم. آموزش اول رو اختصاص دادیم به کار با لیوتها و آداپترهای خود بیسیک که البته توصیه میشه منتظر آموزش بعدی که کار با xml هست باشن که واقعا جذاب و شگفت انگیزه. لینک فروشگاه کتابخانه این شما و این هم اولین آموزش. لینک آموزش تصویری قسمت اول(کار با لیوت بیسیک) پیش نمایش قسمت اول
  3. 12 likes
    نسخه جدید بیسیک فور اندروید اون هم با استفاده از نسخه 8 جاوا و قابلیت های کاربردی فراوان ارائه شده است قابلیت های افزوده شده در این ورژن بیسیک قالبا راه حل مشکل بسیاری از سوالات دوستانی که در همین انجمن هم پرسیده بودند می باشد. بر همین اساس بر آن شدیم تا توضیح جامعی البته بتدریج درباره این قابلیت ها بیان کنیم. Sleep Sleep قابلیت ساده و کاربردی در برنامه نویسی با ورژن جدید بیسیک خواهد بود. کاربرد این دستور توقف اجرای کدها در مدت زمان دلخواه می باشد مثال اول اسپلش رو اکثر بچه ها طراحی کردن. خب در روش مرسوم با استفاده از تایمر زمان ورود به اکتیویتی دوم مشخص میشد. ولی حالا خیلی سریع و ساده همانند کد زیر ساخته می شود Sub Activity_Create(FirstTime As Boolean) Activity.LoadLayout("Layout1") Sleep(3000) StartActivity("Menu") Activity.Finish End Sub در کد بالا بعد از سه ثانیه یا همون 3000 میلی ثانیه از زمان نمایش اسپلش اکتیویتی دوم نمایش داده میشود. مثال دوم اجرای رویداد بعد از زمان خاصی همیشه از سوالات دوستان بوده. مثلا با کلیک شدن یک دکمه افکت صوتی اجرا و با پایان اون دستورات مربوط به کلیک شدن اجرا بشوند.افکت های مختلف و زیبایی مثلا اجرای انیمیشن ها. و افکت های تصویری و صوتی فراوانی میشه براحتی به برنامه خودتان بسادگی اضافه کنید. کد زیر کد رویداد این کلیک ها می باشد. Sub btn_Action Dim b As Button = Sender For i = 10 To 0 Step - 1 b.Text = i Sleep(100) Next b.Text = "Takeoff!" End Sub نکته: همانگونه که در مثال های بالا مشاهده نمودید استفاده از Sleep در مواردی که یک یا چند مکث با تعداد مشخص و یا تعداد کم داشته باشید. کاربرد دارد و در غیر اینصورت استفاده از تایمر همانند قدیم مناسبتر می باشد. قابلیت های دیگر در ادامه توسط من یا آقای آرتا در ادامه همین توضیحات بیان خواهند شد. «موفق باشید.»
  4. 10 likes
    با سلام خدمت همه انسورسنتریهای عزیز. یکی از جدیترین و عذاب آورترین مشکلات توی بیسیک به ملکوت الهی پیوست. توی بیسیک کتابخونه هایی که برای ارتباط با سرور وجود داره تقریبا میشه گفت نیازهای ابتدایی رو برآورده میکنن. مثلا شما بخواین همزمان عکس و متن بفرستین یا بخواین فایل آپلود کنین و روند آپلود شدن رو ببینین یا مثلا بخواین همراه متدهای پست و گت هدر بفرستین یا مثلا بخواین به طور مستقیم بیتمپ بگیرین دیگه نمیتونین و مجبورین از کتابخونه های دیگه ای که رپ شده استفاده کنید که هر کدوم متدهای خاصی دارن فقط. این کتابخونه همه ی اینا رو برای شما یک جا فراهم میکنه. این کتابخونه بر پایه کتابخونه های قدرتمند 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.addHeder("key","value") post.addParametrs("ke1","value1") post.addParametrs("ke2","value2") post.executeRequesAsJSONObjectt ''''''''''''''''''''''''''''''''''''''''''''''''''''' همه کدهای بالا تو یه خط میشه این prfn.BuildPostQuery("url","tag").addHeder("key","value").addParametrs("ke1","value1").addParametrs("ke2","value2").executeRequesAsJSONObjectt متد دوم. GetRequest Dim get As GetRequest get=prfn.BuildGetQuery("url","tag") get.addHeder("key","value") get.addParametrs("key1","value1") get.executeRequesAsJSONObjectt ==================================================== یه خطی prfn.BuildGetQuery("url","tag").addHeder("key","value").addHeder("key1","value1").executeRequesAsJSONObjectt متد سوم. 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.startUploadAsJSONObject متد چهارم. DownloadRequest Dim dnl As DownloadRequest dnl=prfn.BuildDownloadQuery("url",File.DirDefaultExternal,"filename.mp3","tag") dnl.setResponseOnlyFromNetwork با ست کردن این متد در صورتی که فایل قبلا دانلود شده باشد دیگر دانلود نمیشود و از حافظه خونده میشه dnl.startDonload dnl.Cancel(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 ایونتهای کتابخونه که نزدیک به 20 تا اینوته "onGetJSONObjectOkListener(JsonString as String , Tag as String)", "onGetJSONObjectErrorListener(Error as String , Tag as String)", "onGetStringOkListener(Result as String , Tag as String )", "onGetStringErrorListener(Error as String , Tag as String)", "onPostJSONObjectOkListener(JsonString as String , Tag as String)", "onPostJSONObjectErrorListener(Error as String , Tag as String)", "onPostStringOkListener(Result as String , Tag as String)", "onPostStringErrorListener(Error as String , Tag as String)", "onDownloadProgress(downloaded as long,total as long , Tag as String)", "onDownloadComplete(Tag as String)", "onDownloadError(Error as String , Tag as String)", "onUploadProgress(uploaded as long,total as long , Tag as String)", "onJSONObjectUploadOK(JsonString as String , Tag as String )", "onJSONObjectUploadError(Error as String , Tag as String)", "onStringUploadOK(response as String , Tag as String)", "onStringUploadError(Error as String , Tag as String)", "onGetBitmapOkListener(bitmap as Object , Tag as String)", "onGetBitmapErrorListener(Error as String , Tag as String)" توی آموزش اول به upload و get پرداخته شده. استفاده از کتابخونه بسیار ساده اس و حتی بدون آموزش هم میتونید به راحتی ازش استفاده کنید. امیدوارم مورد استفاده دوستان قرار بگیره. ***توجه*** نسخه 2 کتابخونه اضافه شد. تو این نسخه خیلی از کمبودها برطرف شده و از همه مهمتر قابلیت مدیریت کردن درخواستها به وسیله TAG به کتابخونه اضافه شده مثال برای مدیریت تگ. Sub send_data2 (url As String) PersianFastNetwork_1.initializeforSSLSupport("persianfastnetwork") PostRequest_1=PersianFastNetwork_1.BuildPostQuery(url,"tag1") Dim prjs As PersianJSONOBject prjs.initialaizJsonObject prjs.putToJSON("client_request","get_city_data") prjs.putToJSON("country_key","18") PostRequest_1.addJSONParametrs(prjs.DefaultJsonObject) PostRequest_1.executeRequesAsJSONObjectt End Sub Sub send_data (url As String) PersianFastNetwork_1.initializeforSSLSupport("persianfastnetwork") PostRequest_1=PersianFastNetwork_1.BuildPostQuery(url,"tag2") Dim prjs As PersianJSONOBject prjs.initialaizJsonObject prjs.putToJSON("client_request","get_city_data") prjs.putToJSON("country_key","18") PostRequest_1.addJSONParametrs(prjs.DefaultJsonObject) PostRequest_1.executeRequesAsJSONObjectt End Sub Sub persianfastnetwork_onPostJSONObjectOkListener(JsonString As String , Tag As String) Select Tag Case "tag1" Log("tag1") Case "tag2" Log("tag2") End Select End Sub لینک محصول در فروشگاه.
  5. 8 likes
    من: طرف 7 تا پست زده یکی نبود جوابشو بده من: دلم براش سوخت مدیر: کی؟ من: منکه کلا اهل پاسخگویی به کسی نیستم مجبور شدم جواب بدم مدیر: لینک بده برم ببینم کیه من: همونی که الان برام لایک زدی مدیر: آها مدیر: بارها درمودش بحث کردیم و گفتیم که قبل از پرسش سرچ کنن مدیر: سرچ نمیکنن که من: آره والا سرچو باید یادشون داد من: یه آموزش بزن بزار فروشگاه من: آموزش پیشرفته سرچ کردن در انجمن من: مدیر: خخخ. قیمتشم میزن ۲۰۰ هزار تومن. من: بنظرم کاربردی ترین آموزش میشه من: الان میزنم تو انجمن لایک بهم بده
  6. 7 likes
    با سلام و درود به همه دوستان عزیز از اونجایی که کمی موضوع جیسون json برای دوستان تازه کار درک کردنش سخت هست من قصد دارم کمی درباره یک مبدل جیسون به کد های بیسیک برای شما توضیح بدم این مبدل که در آدرس زیرو برای خود سایت مرجع بیسیک هست B4J - JSON Tree Example که وقتی این صفحه رو باز میکنید با این تصویر روبرو میشید در تصویر بالا من یک متن جیسون ساده رو به سمت چپ بالی برنامه اضافه کردم ( کپی پیست کردم ) و دکمه parse رو زدم سمت راست به من شکل و فرم جیسون رو میده که چه داده هایی داره و چه شاخه هایی داره و هر کلید چه مقدار هایی رو گرفته و سمت چپ پایین به من کد هایی رو میده که میتونم در بیسیک کپی پیست کنم و اونها رو استفاده کنم برای این جیسون خاص {"name":"arastoo","family":"irany","user_id":"2"} به من این کد ها رو میده Dim parser As JSONParser کتابخونه جیسون بیسیک رو تیک بزنید و یک پارامتر براش معرفی کنید parser.Initialize(xxxxxxxxxxxxxxxxxx) اون رو اینشیالایز کنید و به درون پرانتز عبارت جیسون خودتون رو قرار بدید Dim root As Map = parser.NextObject یک مپ تعریف کنید که بتونید مقادیر کلید ها و مقدارهاشون رو به اون مپ بدید Dim user_id As String = root.Get("user_id") و در آخر هم مقادیر رو میتونید از مپ بگیرید و بخونید و استفاده کنید Dim name As String = root.Get("name") Dim family As String = root.Get("family") حالا شما بیاید و این مقدار جیسون رو ببینید و تست کنید تا بیشتر یاد بگیرید این یک سایت هست که وقتی کلیک کنید به شما محدوده اتصال شما رو در اینترنت میگه کجاست با مشخصات جغرافیایی کلیک کنید جیسون رو بگیرید و به روش بالا تست کنید کلیک کنید ==>  جیسون موقعیت مکانی خودتون رو ببینید موفق باشید و لایک رو فراموش نکنید که اگر به 30 تا برسیم تو همین پست براتون نحوه شناسایی آرایه ها در جیسون رو هم شرح خواهم داد
  7. 6 likes
    به نام خدا سلام به همه دوستان از اونجایی که چندتا از دوستان توی این چند روز یه سری مشکلات با کتابخونه httputils داشتن تصمیم گرفتم این کتابخونه رو برای دوستان ویرایش کنم. دوتا مشکل عمده داشت این کتابخونه 1: عدم قابلیت اتصال به سایت های دارای ssl (سایتهایی که با https شروع میشن) -----------> حل شد 2: عدم قابلیت کنسل کردن job هنگام خروج از برنامه -----------> متد کنسل به کتابخونه اضافه شد خیلی راحت با کد زیر میتونید دریافت اطلاعات رو کنسل کنید job.Cancel_Job لینک کتابخونه M_HttpUtils2.zip
  8. 6 likes
    قابلیت Wait For: مثالی از استفادش در OkHttpUtils2 » Dim j As HttpJob j.Initialize("", Me) j.Download("https://www.google.com") Wait For (j) JobDone(j As HttpJob) If j.Success Then Log(j.GetString) End If j.Release ساده ترین مثال ممکن لینک رو میدی بهش، رویداد رو در کنارش اضافه می کنی و نتیجه رو لاگ می کنید سخته واقعا ؟؟!! مثال بعدی » Sub DownloadQuote Dim j As HttpJob j.Initialize("", Me) 'name is empty as it is no longer needed j.Download("http://quotesondesign.com/wp-json/posts?filter[orderby]=rand") Wait For (j) JobDone(j As HttpJob) If j.Success Then 'The result is a json string. We parse it and log the fields. Dim jp As JSONParser jp.Initialize(j.GetString) Dim quotes As List = jp.NextArray For Each quot As Map In quotes Log("Title: " & quot.Get("title")) Log("Content: " & quot.Get("content")) Next End If j.Release End Sub خب اینم میاد یه سری پست رو به صورت جیسون میگیره و پردازش می کنه.عمل دانلود انجام میشه اگه موفقیت امیز بود مقادیرش رو میگیره و میریزه داخل شی جیسون.دیگه ادامش چیز جدیدی نداره. استفاده از کد بالا هم فقط کافیه تابع DownloadQuote رو یه جایی صدا بزنید. مثال بعدی » Sub DownloadTwoLinks Dim j As HttpJob j.Initialize("", Me) 'name is empty as it is no longer needed j.Download("https://www.google.com") Wait For (j) JobDone(j As HttpJob) If j.Success Then Log(j.GetString) End If j.Release 'second request Dim j As HttpJob 'redim and initialize j.Initialize("", Me) j.Download("https://www.duckduckgo.com") Wait For (j) JobDone(j As HttpJob) If j.Success Then Log(j.GetString) End If j.Release End Sub خب اینجا هم دو تا لینک رو میدیم بهش تا دانلود کنه واسمون.هر جای کد واستون نا مفهوم بود، کد رو خودتون تست کنید و ببینید به چ شکل عمل می کنه.می تونید با Log گذاشتن نحوه عملکردش رو ببینید. مثال بعدی » Sub Activity_Create(FirstTime As Boolean) DownloadMany(Array("http://www.google.com", "http://duckduckgo.com", "http://bing.com")) End Sub Sub DownloadMany (links As List) For Each link As String In links Dim j As HttpJob j.Initialize("", Me) 'name is empty as it is no longer needed j.Download(link) Wait For (j) JobDone(j As HttpJob) If j.Success Then Log("Current link: " & link) Log(j.GetString) End If j.Release Next End Su دانلود محتوای سایت ها.خیلی شیک و معمولی. مثال بعدی » Sub DownloadImage(Link As String, iv As ImageView) Dim j As HttpJob j.Initialize("", Me) j.Download(Link) Wait For (j) JobDone(j As HttpJob) If j.Success Then iv.Bitmap = j.GetBitmap End If j.Release End Sub دانلود عکس و قرار دادنش توی ایمیج ویو، نحوه استفادش: Sub Activity_Create(FirstTime As Boolean) Activity.LoadLayout("1") DownloadImage("https://b4x-4c17.kxcdn.com/android/forum/data/avatars/m/0/1.jpg?1469350209", ImageView1) DownloadImage("https://b4x-4c17.kxcdn.com/images3/code.png", ImageView2) End Sub کافیه یا بازم مثال بدم ؟؟ این نحوه ی استفاده از قابلیت Wait For هستش تا واسه ی شما جا بیوفته. با این می تونید رویداد هاتون رو هرجا که خواستید تعریف و کنترل کنید. پیروز باشید
  9. 6 likes
    وقتی دیدیم زبانهای مختلفی به برنامه اضافه شده ولی فارسی رو قرار ندادند.تصمیم شد اونم اضافه کنیم.ولی در گرماگرم ورود نسخه جدید گفتیم اونو ارائه بدیم تا ارزشش بیشتر بشه. حدود 500 ارور مختلف در بیسیک وجود داره که ترجمه اونها کمی زمانبره انشاا... هدف ما هم در آینده ترجمه خطاها خواهد بود.
  10. 6 likes
    آره درست میگید. بخصوص با توجه به اینکه جواب یک سوال در گذر زمان ممکنه تغیر کنه. و روش های نوین تر و بهتری براش پیدا بشه ولی خب ظاهرا دوستان قدیمی انجمن با دیدن سوالات تکراری رغبتی به پاسخ پیدا نمی کنن و همین امر هم باعث طولانی شدن مدت زمان رسیدن به جواب میشه. منکه خودم جزو افراد قدیمی انجمن نیستم. ولی انجمن و آموزش هاشو بسیار مفید دیدم. و بنظرم اگر دوستان در ابتدای کار از آموزش ها استفاده کنند. برای پیشرفت خودشون بهتره.
  11. 6 likes
    سلام م هم مبتدی بدم و کم کم یاد گرفتم و البته هنوز مبتدی هستم و در حال یاد گیری بعد از مدتی متوجه شدم نوشتن یک تاپیک تکراری و منتظر موندن برای گرفتن یک پاسخ تکراری بسیار بیشتر از یک جستجوی ساده زمان میبره به نظر دوستان رو باید راهنمایی کنیم با آرامش و راهنمایی کنیم تابتونن به درستی از گزینه سرچ استفاده کنن در هر صورت من هم بار ها این سوال رو از خودم پُرسیدم که چرا تو چت سوال مطرح میشه و یا چرا این سوال تکراری رو مجدد تاپیک زدن ولی ترجیح میدم که دوستان رو راهنمایی و ترقیب کنم که از جستجو استفاده کنن و فرهنگ استفاده از انجمن رو بالا ببرن با تشکر
  12. 6 likes
    . دماغت سرویس. اگه میدونستم اینقد دهنت قرصه رازهای بیشتری رو هم بهت میگفتم. به مدت یه هفته بن میشی که رازداریت بیشتر شه
  13. 6 likes
    دوست عزیز. هر کتابخونه ای ویژگیهای خودشو داره شما هنوز کتابخونه رو ندیده چجوری درموردش قضاوت میکنید؟.بنده نزدیک به یک هفته اس مرتب رو این کتابخونه کار میکنم. این درست نیست که شما مقایسه بکنید.(در ضمن کتابخونه ای که شما میفرمایین رپ شده و خیلی قویتر از اینه برای دوسال پیشه آخرین کامیتش تو گیتهاب. جدا از اون بهتره قبل از مقایسه یه مطالعه ای هم درمورد چیزایی که میخواین مقایسه بکنین داشته باشین. کتابخونه ای که بنده استفاده کردم آخرین نسخه okhttp3 هست که دیگه حرفی واسه گفتن نمیزاره.) جدای از همه اینا کسی رو به زور توی انجمن نگه نداشتن. نه من نه شما و نه هیچ کس دیگه ای. باشین در خدمتتون هستیم و نباشین هم دست خداوند به همراهتون. لطفا تاپیکهای دیگه در مورد کتابخونه باشه.
  14. 5 likes
    از شما دوست عزیز و همچنین دوستی که نقد کردن کتابخونه رو تشکر میکنیم و از همه دوستان تقاضا میشه که اگر نقدی دارن ( به شرط سازنده بودن نه به نیت تخریب ) استقبال کامل میشه. همونطوری که بقیه کتابخونه های بنده نیز به همین منوال بوده و اشکالاتشون با کمک دوستان برطرف شده. اما درخصوص نقدهایی که وارد شده باید عرض کنم که بعضا درست وبعضا درست نیست. هر کسی سلیقه متفاوت داره تو ساختن کتابخونه و کلا سبکهای برنامه نویسی هرکسی با شخص دیگه قطعا متفاوته. اینکه کلاسه زیادن یا کمن کاملا به سلیقه شخص بستگی داره و این رو نمیشه ضعف دونست برای کتابخونه به خاطر اینکه هر کسی بعداز کار با کتابخونه بعد از یه مدت به متدها و کلاسهاش مسلط میشه. اینکه کتابخونه بدون لیست نمیتونه فعالیت کنه مطلب درستی هست و قطعا تو ورژن های بعدی علاوه بر امکانات زیاد دیگه ای که قرار هست اضافه بشه این موارد هم اصلاح میشه. درمورد بقیه نقدها هم باید بگم که هموی موارد درون کتابخونه انجام میشه. notify ها و getitemcount به صورت خودکار بعد از اعمال توی بیسیک به وسیله کتابخونه انجام میشه. موفق و پیروز باشید.
  15. 5 likes
    سلام ممنون بابت پیشنهادات خوبت ارسطو جان. در جوابت باید بگم ما موافق این هستیم که بتونیم نیاز دقیق کاربرارو تشخیص بدیم، ولی خب بحث مدیریت انجمن ها پیش میاد.وگرنه اگه به من باشه دوس دارم بخشای دیگه ای هم باشه.ولی مهم مدیریت کردن و پشتیبانی خوب مناسب هستش. ایجاد کردن بخشای زیادی هم زیاد جالب نمیشه. ولی نوید این رو بهتون میدم که بنده به اتفاق اقای مهدی نژاد عزیز داریم چنتا بخش اعم از جاوا، و چنتا بخش دیگه که قطعا تاثیر مستقیم توی پیشرفت کاربران داره رو برنامه ریزی می کنیم. ان شاء الله اون بخش ها هم راه اندازی میشن و احتمال زیاد نیازی که شما فرمودید رو هم مرتفع می کنه.
  16. 5 likes
    سلام نیاز داشتم درخواست یک آموزش رو مطرح کنم از مدیران و عزیزان و اساتید گرامی / دیدم بخش درخواست رپ کتابخونه بود ولی بخش درخواست آموزش نبود گفتم پیشناهد بدم این بخش ایجاد بشه شاید بتونه مفید باشه تا متوجه بشیم کاربران به چه آموزش های نیاز دارن یا میتونیم آموزش ها رو به رای بزاریم و تو گروه بگیم اگر فلان آموزش موافقید رای بدید به بیشتر از 30 نفر رسید میسازیم و .... موفق باشید
  17. 5 likes
    شما دو خط کد مارو باهاش کتابخونه نزن، من همه جا میگم پروفشنالی :دی
  18. 5 likes
    سلام خدمت دوستان گل انجمن راستش دیدم تو انجمن همچین آموزشی وجود نداره پس تصمیم به ساختش گرفتم برای افراد مبتدی که ب دردشون میخوره.... دیگه توضیج زیاد نمیدم توی فیلما به اندازه کافی حرف زدم اپلیکیشن دموی آموزش : دانلود دمو دانلود آموزش : دانلود آموزش نکته : به دلیل اتمام وقت فقط تا قسمت اضافه کردن و نمایش اطلاعات رو تونستم آماده کنم مابقی دستورات مثل دلیت کردن و آپدیت کردن موند که اونارم بعدا اضافه میکنم.... شرمنده
  19. 5 likes
    اندروید استودیو هیچ مشکلی نداره داداش فقط بعضی ها با گریدلش مشکل دارن و نمیتونن اندروید استودیو رو بالا بیارن بهترین چیزی که میتونم بهتون بگم اینه که الان پژو 2008 رو آوردن ایران درسته؟! خوب پژو 2008 یک ماشینی هستش که خیلی معروفه و تو دنیا طرفدارای زیادی داره و واقعا هم ازش تعریف میکنن حالا این ماشین داره میاد ایران و میکس میشه و... به نظرت همون قدرت و راحتی و اصل بودن رو داره؟! معلومه نه خودم فهمیدم چی گفتم ولی نمیدونم منظور منو فهمیدی یا نه موفق باشی
  20. 5 likes
    قابلیت Wait For: در این قابلیت ما می تونیم تمامی رویداد هارو در کنار کدی که می نویسیم داشته باشیم.یعنی دیگه نیازی نیست شما به صورت جداگانه برید رویداد مثلا JobDone رو تعریف کنید.به وسیله WaitFor هر جای ادیتور و در بلاک های مختلف می تونید رویداد هاتون رو صدا بزنید و کنترل کنید. مزایای Wait For: - نظم بهتر به کد نویسی - جلوگیری از تداخل در رویداد ها ( بر فرض هندل راحت دو تا Job بدون اینکه برای هیچ کدوم تداخلی بوجود بیاد ) خب با مثال میریم جلو تا واستون قابل درک باشه. مثال اولش رو واسه SQL میزنیم، تا ببینیم به چ شکل عمل می کنه» - اضافه کردن رکورد به دیتابیس و خروجی که رویدادش به ما بر میگردونه: For i = 1 To 1000 sql.AddNonQueryToBatch("INSERT INTO table1 VALUES (?)", Array(Rnd(0, 100000))) Next Dim SenderFilter As Object = sql.ExecNonQueryBatch("SQL") Wait For (SenderFilter) SQL_NonQueryComplete (Success As Boolean) Log("NonQuery: " & Success) نکته: ما از توابعی استفاده می کنیم که بعد از اجرای اونها رویدادی رخ بده ( توابعی که رویداد هایی برای آن ها تعریف شده ) حالا اینجا ما تابع AddNonQueryToBatch رو داریم که می تونیم اطلاعات رو درج کنیم.اطلاعات رو به وسیله این تابع وارد و با اجرای تابع ExecNonQueryBatch اطلاعات درج در دیتابیس می شوند.برای اینکه از وضعیت درج اطلاعات با خبر شویم، رویدادی رو اختصاص دادند.این رویداد یک متغییر از نوع Boolean داره که مشخص می کنه اطلاعات با موفقیت به دیتابیس وارد شده اند یا خیر. به راحتی تونستیم به جای اینکه رویداد SQL_NonQueryComplete رو جدا تعریف کنیم، دقیقا بعد از کدی که واسش تعریف شده نوشتیم.دقیقا توی جاوا به همین شکل می تونید عمل کنید. می تونید رویداد رو هرجای کد تعریف کنید. مثال از گرفتن اطلاعات از دیتابیس » Dim SenderFilter As Object = sql.ExecQueryAsync("SQL", "SELECT * FROM table1", Null) Wait For (SenderFilter) SQL_QueryComplete (Success As Boolean, rs As ResultSet) If Success Then Do While rs.NextRow Log(rs.GetInt2(0)) Loop rs.Close Else Log(LastException) End If خب فک نکنم پیچیدگی یا ابهامی توی این کد باشه.کوئری رو به تابع میدید و بعدش میایید توی رویدادش اطلاعات رو دریافت می کنید.در صورتی که مشکلی نباشه.اینجا هندل کردن خطاها خیلی بهتر شده.یعنی کد اجرا میشه و متغییر Success بهمون این اجازه رو میده تا خطایی در برناممون رخ نده و کنترلی داشته باشه.در مورد ResultSet هم بگم که جای نگرانی نداره و چیز جدیدی نیست، همون Cursor هستش.مشتق شده از Cursor هستش.( جزئی از شی گرایی هستش که هر شیی از یک شیی دیگه مشتق بشه تمامی وِِِیژگی ها و قابلیت های والدش رو به ارث میبره). توی پست بعدی در مورد استفادش در دانلود فایل ها و کنترل کردن رویداد هایی مثل JobDone در خدمتتون هستیم.
  21. 5 likes
    این یه هجو بود دلخوری نداره گفتم تلنگری باشه برای فرهنگ سازی
  22. 5 likes
    امنیتی که دنبالش می گردی در jni قرار داده شده.اکثر برنامه ها برای امنیت و قدرت بیشتر C++ نسبت به جاوا از اون در کدهای خودشون استفاده می کنن. آموزش های زیر رو یه بررسی بکنید «موفق باشید.»
  23. 4 likes
    به قول رئیس جمهور اسبق، آبو بریز اونجایی که میسوزه جملات سنگینی عنایت فرمودن
  24. 4 likes
    سلام به همه دوستان عزیز یه کتابخونه خیلی خوب و کاربردی رو واستون آماده کردم همونجوری که میدونید کتابخونه هایی که واسه روشن خاموش کردن دیتا و وایفای و همینطور چک کردن وضعیت اینترنت موجوده یا قدیمی شده یا پراکنده هستند تو این کتابخونه همه رو یه جا قرار دام. امکانات کتابخانه روشن و خاموش کردن دیتا روشن و خاموش کردن وایفای چک کردن اتصال به اینترنت دسترسی های لازم توی کتابخونه داده شده نیازی به دسترسی دادن نیست نحوه استفاده Dim mnet As M_Net_Utils mnet.turnData(True) mnet.turnwifionof(False) If mnet.isConnected Then ToastMessageShow("connectet",False) Else ToastMessageShow("not connectet",False) End If امیدوارم مفید باشه پسند فراموش نشه موفق باشید M_Net_Utils.zip
  25. 4 likes
    آموزشهای مربوط به جاوا آبجکت رو ببینید حتما عزیز. براتون کتابخونه و سورسشو نوشتم. دانلود و استفاده کنید. PrContact.rar
  26. 4 likes
    سلام کتابخانه ToogleLibrary رو تیک بزنید. و کد زیر: Dim t As Toggle t.Initialize t.TurnGPSOn مشکلی هم نداره. رو اندروید 6 هم تست شد. نیازی نیست کاربر روانه بشه خودش روشن میکنه مستقیم.
  27. 4 likes
    سلام کتابخونه ای که واستون پیوست کردم رو به کتابخونه هاتون اضافه کنید، به راحتی با یک خط کد می تونید اسم روز هفته رو نمایش بدید. رمز فایل » answercenter.ir ManamPersianDate(Answercenter.IR).rar
  28. 4 likes

    نسخه 1.0.0

    2 دریافت

    این سورس رو برای کتابخونه irHTMLView تهیه کردم تا بشه راحت متن مناسب برای این کتابخونه رو تهیه کرد ویژگی های برنامه: امکان ذخیره در دیتابیس امکان ذخیره در فایل امکان پیشنمایش امکان افزودن متن و تصویر نکات آموزشی: کار با دیتابیس کار با فرم ها کار با فایل ها نکته:چنانچه بخواهید عکس ها در پیشنمایش دیده شود آنها را در کنار فایل دیتابیس قرار دهید. «موفق باشید.»
  29. 4 likes
    اگه از این لحاظ احساس نا امنی می کنید بهتره برنامه رو از طریق فایروال محدود کنید تا دسترسی به اینترنت نداشته باشد. ایجاد محدودیت دسترسی برنامه ها به اینترنت توسط فایروال ویندوز 7 , 8 و 10 :: مدیریت سرورها در ضمن بهتره از همین انجمن نسخه بیسیک رو تهیه کنید. تقریبا همیشه بروزترین نسخه ها رو در همین انجمن داریم «موفق باشید.»
  30. 4 likes
    مشاهده فایل سورس بازی Mahjong بازی های سبک مهره ای و کارتی بسیار در بین کاربران مختلف جای خود را باز کرده اند. مثلا خود من بازی ماهجونگ که در ویندوز بود رو به دلیل علاقه ای که به اون داشتم برای اندروید تهیه کردم. این سورس نمونه ای از این سبک بازی ها می باشد. دیگر نمونه های این سبک را هم به همین روش براحتی میتونین بسازین مثلا بازی solitaire تفاوت زیادی در نحوه پیاده سازی با این بازی ندارد. امیدوارم این بازی نمونه ای خوب و مثالی مناسب برای آموزش ساخت این سبک بازی ها باشد. «موفق باشید.» ارسال کننده امین مهدی نژاد ارسال 09/07/2017 دسته سورس
  31. 4 likes
    ما نبودیم چقد چقد تغییر. پا تو کفش ارل هم که کردین خخخ. بخش جدید زدین. خدا قوت مجید جان. همچنین امین مهدی نژاد عزیز که زحمت زیادی برای انجمن میکشن
  32. 4 likes
    B4J رو نصب کردم من از برنامه های جاوای زیادی استفاده می کنم اکثرشون هم رابط گرافیکی ندارن. با این حداقل یه کم کارکردن با اونا رو ساده میشه کرد اگه یه جایی هم تو انجمن براش در نظر می گرفتن خوب میشد. آخه کتابخونه ها و کدهایی برای جاوا وجود دارند که در هیچ زبون دیگه ای نمونه اش رو من ندیدم همین کافیه به سمت B4J بریم.
  33. 4 likes
    کد html زیر اینکار رو انجام میده <meta name="robots" content="noindex"> یا هم کد زیر <meta name="googlebot" content="noindex"> «موفق باشید.»
  34. 4 likes
    سلام راستش به نظر من مشکل بیشترش البته، از یه چیز دیگه ست ! اونم اینکه تالارها باید به صورت موضوعی حداقل دو زیرموضوع داشته باشند و تالارها کلا موضوع بندی بشن ! راستش دیگه مطالب اونقدر زیادشده که همین صفحات موجود درصفحه مطالبو هی بخوای باز وبسته کنی وموضوع موردنظر وهمینطور مطلب مدنظرتو پیداکنی کلی وقت میگره ووقت آدم بیخودی تلف میشه ! اونم اگه فرضا آخرکار تاپیکی داشته باشه وپیدایش کنی! خب پیشنهاد من اینه که برای اینکه بخواین انجمن برای فرضا ده سال دیگه هم کارایشو داشته باشه و تبدیل به دایرة المعارف فارسی بیسیک فور واندروید استدیو بشه باید اونو موضوع بندی بیشتری بکنیدش ،وبرای مطالب قبلی هم ارزششو داره یکی رو اجیر کنید وقت بذاره و تایپیک ها رو دونه دونه براساس عنوان تایپیک یا جواب آخری که برای سوال داده شده ، بررسی کنه و داخل اون موضوعات فرعیشون بکنه . مثلا تالار سوال جواب رومیشه اینجوری موضوع بندی کرد وعناوین فرعی روبهش داد : پرسش و پاسخ (بیسیک4اندروید) سوالات وخطاهای روی داده مرتبط به بخش لیوت سوالات بخش اتصالات به گوشی وشبیه سازها سوالات راجع به منیفیست سوالات راجع به سورسهای دانلودشده سوالات راجع به دیتابیس ها سوالات وخطاهای راجع به کدهای داخلی بیسیک سوال از خطاهای ناشناخته حین اجرای برنامه سوالات مربوط به پنل ها اتصال به انواع گوشی مشکل در هنگام نصب واجرا دیتابیس آنلاین دستورات مربوط به صوت وتصویر سوالات مربوط به دکمه ها شبیه ساز جنی موشن نبود کتابخانه موردنیازسورس دیتابیس آفلاین دستورات مربوط به اتصالات به وب سرویس واینترنت سوالات مربوط به ایمیج ویو .... ............ سوالات مربوط به لیست ویو .... سوالات مربوط به اسکرول ویو .... سوالات مربوط به رادیو باتن سوالات مربوط به ........ یا مثلا قسمت سورس کدها رو میشه به ترتیبی که مارکتها موضع بندی کرده اند موضوع بندی کرد سورس کدها بازی ها برنامه ها تفننی اموزشی .... ......... البته اینا خودشون برخی کلی اند وباید جزئی تر ومشخص ترشون کرد
  35. 4 likes
    تفاوتهاشون رو با خود فایلهای جار ببینید. httputils در مقابلشون مثه یه مورچه درمقابل فیله اولی:httputils2 دومی okhttp: و درنهایت okhttp3: همونجوری که میبینید کتابخونه okhttp3 یه سرو گردن از okhttp بالاتره. تفوتهایی که دارن مثلا اینه ه توی نسخه 3 مدیریت بسیار قویتری روی کشها شده و این خودش یه مزیت بزرگه مثلا تو کتابخونه اگه فایل یا مثلا عکس دانلود شده باشه دیگه دانلود نمیشه و از کش میخونه. نکته دیگه اینه که تو نسخه 3 پشتیبانی از سوکت هم اضافه شده که بنده هم انشالا توی نسخه بعدی به طور کامل به کتابخونه اضافش میکنم. تو این تاپیک دلایل استفاده از okhttp رو کامل توضیح داده https://www.sitepoint.com/consuming-web-apis-in-android-with-okhttp/ یه نکته ای رو شما عرض کردین و گفتین اگه اینترنت قطع شد چی میشه. بنده الان تست کردم برای آپلود در صورتی که اینترنت قطع بشه آپلود به حالت puse میره و به محظی که اینترنت دوباره وصل شد آپلود دوباره ادامه پیدا میکنه که این خودش یکی از بزرگترین مزیتای این کتابخونه است.
  36. 3 likes
    درود، بنده الان این تاپیک رو دیدم و بنظرم استفاده از حلقه While راه مناسبی باشه! چون اصولا این حلقه برای چنین فرایندهایی به وجود اومده و کاربرد داره. با وجود اینکه دوستان گرامی مون راهکارهای جالب و خوبی رو ارائه کردن من هم کد زیر رو قرار میدم: Sub generateRandomNumber As Double Dim generated As String : generated = Rnd(111,7777777) Do While (generated.Contains(0) Or generated.Contains(8) Or generated.Contains(9)) generated = Rnd(111,7777777) Loop Return generated End Sub متد بالا رو عینا Copy/Paste کنید در قسمتی از کدهاتون و برای استفاده کردن ازش به شکل زیر عمل کنید: Dim myRndNum = generateRandomNumber As Double حالا متغیر myRndNum برابر با عددی است که شرایط مورد نیاز ما رو داره! موفق باشید.
  37. 3 likes
    با پروژه های مرسومِ پردازش تصویر مثل openCV میشه که کتابخونه اش برای بیسیک موجوده. در این لینک مشاهده کنید: B4A Library - OpenCV320 for B4A V1.0 (Released) | B4X Community - Android, iOS, desktop, server and IoT programming tools
  38. 3 likes

    نسخه 1.0.0

    5 دریافت

    اینم اولین کتابخونه B4J که wrap کردم. این کتابخونه ادیتور زبان های برنامه نویسی بوده و از تعداد متنوعی از زبان های برنامه نویسی و فایل های متنی خاص پشتیبانی می کند. زبان هایی مثل جاوا - بیسیک - سی شارپ و ... منبع: GitHub - bobbylight/RSyntaxTextArea: A syntax highlighting, code folding text editor for Java Swing applications. مثال: Sub Process_Globals Private fx As JFX Private MainForm As Form Dim w As SyntaxConstants=Null Dim rsta As B4JRSyntaxTextArea End Sub Sub AppStart (Form1 As Form, Args() As String) MainForm = Form1 rsta.init MainForm.RootPane.AddNode(rsta.getView,0,0,300,300) rsta.resize(800,800) rsta.setText("public class main{}") rsta.setSyntax(w.SYNTAX_STYLE_JAVA) MainForm.Show End Sub «موفق باشید.»
  39. 3 likes
  40. 3 likes
    کتابخانه ی SetShadow مشاهده فایل سلام دوستان. دیدم برای اندرویدهای زیر 5 گذاشتن سایه یه دردسر شده و دوستان از کلک ها و روشهایی موفق شدن اینکار رو انجام بدن ولی بعضیا هنوز بلاتکلیفن و شاید هم قیدشو زدن. این کتابخونه ی کاربردی که نسخه ی اولش هست میاد و یه سایه زیر ویویی که میخواین ایجاد میکنه که تفاوت خاصی هم با سایه ی استاندارد نداره. از این کتابخانه میتونین برای دادن سایه به تولبار دست سازی که ساختین هم استفاده کنید. کافیه اکتیویتی رو بهش بدین و همینطور محل قرار گیری سایه. اگر برای نسخه های بعدی پیشنهادی داشتین خوشحال میشم مطرح کنید. نمونه کد : Dim mm As Panel mm.Initialize("") Activity.AddView(mm,0,0,100%x,60dip) mm.Color = Colors.White Activity.Color = Colors.Cyan Dim shad As SetShadow shad.Initialize(Activity,60dip) ارسال کننده ctrain ارسال 09/17/2017 دسته کتابخانه ها
  41. 3 likes
    مشاهده فایل LanguageLibrary توابع این کتابخونه رو بارها استفاده میکردم برای همین همه رو یکجا تبدیل به یک کتابخونه کردم که امیدوارم برای شما هم مفید باشه کاربردها: تبدیل اعداد فارسی به انگلیسی تبدیل اعداد انگلیسی به فارسی تشخیص فارسی بودن یک عبارت تشخیص انگلیسی بودن یک عبارت تشخیص فارسی/انگلیسی بودن اعداد توابع این کتابخونه برای اعمال Validation یا همون اعتبارسنجی اطلاعات کاربرد بالایی داره سرعت و بهینه بودن توابع: پردازش متون تا کمتر از 200 کارکتر رو بدون تاخیر انجام میده. پردازش یک فایل متنی 200 خطی با 140 هزار کارکتر رو توی 2 ثانیه انجام میده ارسال کننده Intelligent ارسال 09/16/2017 دسته کتابخانه ها  
  42. 3 likes
    سلام خدمت دوستان عزیز با یک آموزش دیگه در خدمتتون هستم... خب در این روش من برای عوض کردن فونت ایتم های navigation drawer خودم استفاده میکنم که برای شما هم به اشتراک میذارم.... نمونه : خب ابتدا در اندروید استدیو یک پروژه بسازید سپس فولدر assets رو بهش اضافه کنید و فونت خودتون رو اونجا بریزید... دو کلاس جاوا به اسم های زیر تشکیل بدید : customTypefaceSpan.java FontTypeface.java و کدهای زیر رو برای هر کلاس قرار بدید : import android.content.res.Resources; import android.graphics.Paint; import android.graphics.Typeface; import android.text.TextPaint; import android.text.style.TypefaceSpan; import android.util.TypedValue; /** * Created by moein on 02/03/2017. */ public class customTypefaceSpan extends TypefaceSpan { private final Typeface newType; private final int newSize; public customTypefaceSpan(String family , Typeface type,int size) { super(family); newType = type; newSize = size; } @Override public void updateDrawState(TextPaint ds) { applyCustomTypeFace(ds, newType, newSize); } @Override public void updateMeasureState(TextPaint paint) { applyCustomTypeFace(paint, newType, newSize); } private static void applyCustomTypeFace(Paint paint, Typeface tf, int size) { try { int oldStyle; Typeface old = paint.getTypeface(); if (old == null) { oldStyle = 0; } else { oldStyle = old.getStyle(); } int fake = oldStyle & ~tf.getStyle(); if ((fake & Typeface.BOLD) != 0) { paint.setFakeBoldText(true); } if ((fake & Typeface.ITALIC) != 0) { paint.setTextSkewX(-0.25f); } paint.setTextSize(getPixelsFromDip(size)); paint.setTypeface(tf); } catch (Exception e) { e.printStackTrace(); } } public static float getPixelsFromDip(float dip) { return TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, dip, Resources.getSystem().getDisplayMetrics() ); } } public class FontTypeface { private Context context; public FontTypeface(Context context){ this.context = context; } public Typeface getTypefaceAndroid(){ Typeface typeFace = Typeface.createFromAsset(context.getAssets(),"font.ttf"); return typeFace; } } خب حالا به اکتیوتی که navigation drawer در اون قرار داره برید و یک void تشکیل بدید و به اندازه ایتم هایی که دارید بهش ایتم اضافه کنید : private void changeTypeface(NavigationView navigationView){ FontTypeface fontTypeface = new FontTypeface(this); Typeface typeface = fontTypeface.getTypefaceAndroid(); MenuItem item1; MenuItem item2; MenuItem item3; MenuItem item4; MenuItem item5; MenuItem item6; MenuItem item7; item1 = navigationView.getMenu().findItem(R.id.nav_surveying); item1.setTitle("برداشت نقاط"); applyFontToItem(item1, typeface); item2 = navigationView.getMenu().findItem(R.id.nav_convertCo); item2.setTitle("تبدیل مختصات"); applyFontToItem(item2, typeface); item3 = navigationView.getMenu().findItem(R.id.nav_destination); item3.setTitle("اندازه گیری فاصله"); applyFontToItem(item3, typeface); item7 = navigationView.getMenu().findItem(R.id.nav_area); item7.setTitle("محاسبه مساحت"); applyFontToItem(item7, typeface); item4 = navigationView.getMenu().findItem(R.id.nav_map); item4.setTitle("نقشه های گوگل"); applyFontToItem(item4, typeface); item5 = navigationView.getMenu().findItem(R.id.nav_compass); item5.setTitle("قطب نما"); applyFontToItem(item5, typeface); item6 = navigationView.getMenu().findItem(R.id.nav_about); item6.setTitle("درباره"); applyFontToItem(item6, typeface); } در اینجا من 6 آیتم دارم و اگر بیشتر یا کمتر بود اون رو کم وزیاد کنید قدم بعدی ایجاد یک void دیگه هست به صورت زیر : private void applyFontToItem(MenuItem item, Typeface font) { SpannableString mNewTitle = new SpannableString(item.getTitle()); mNewTitle.setSpan(new customTypefaceSpan("", font, 14), 0 , mNewTitle.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); item.setTitle(mNewTitle); } و در آخر در بخش onCreate اون رو فراخوانی کنید: changeTypeface(navigationView); ببخشید اگه نتونستم خوب موضوع رو انتقال بدم :ا موفق باشید...
  43. 3 likes
    به نام خداوند بزرگ بعد از یکی دوهفته که انجمن به خواب زمستونی فرو رفته بود دوباره به کمک خداوند و تلاش و همت دوستان دوباره برگشتیم تا درخدمت عزیزان باشیم یه آموزش خوشگل واستون ترتیب دیدم که مطمئنم خیلی از دوستان منتظرش بودن. یه ترخینه از ویوهای اندروید رو تو این آموزش یاد میگیرین. این جور ویوها واقعا زیبان. حتما توی برنامه هاتون ازشون استفاده کنید و مطمئنا تاثیر زیادی توی جذب کاربر داره. تو این آموزش شما یاد میگیرید که توی یک صفحه همزمان یه منوی کشویی. یه ویوپیجر باتبهای متفاوت و یه دونه ریسایکلر ویو توی یکی از تبها و همچنین یک ویوی پارالاکس رو داشته باشین. امیدوارم از این آموزش استفاده کنید. تصویری که توی برنامه اس متعلق به ایذه اس. کارون همیشه خروشان خداییش بپسنیدن. باشمام که این مطلب رو میخونی. بپسند عزیز. مرسی. اه ه لینک آموزش
  44. 3 likes
    سلام دوستان امروز با ی آموزش توپ اومدم ... خب دوستان این چند وقت اندروید استدیو تغییرات زیادی کرده از جمله اضافه شدن زبان کاتلین و لایه ای جدید به اسم constraintlayout خب بذارید به اولین مشکلی که با این لایه برخوردم براتون بگم که اونم ریسپانسیو نبودنشه البته نمیدونم شایدم باشه من نمیدونم :دی ولی خب من مشکلمو با لایه flexbox حل کردم که خیلی کار باهاش راحت و لذت بخشه برای استفاده اول قندشکن رو روشن کنید و خط زیر رو به گریدل اضافه کنید : compile 'com.google.android:flexbox:0.2.5' بعد از سینک کردن پروژه به قسمت لایه های خودتون برید و به جای استفاده از constraint از flexbox استفاده کنید به صورت زیر : com.google.android.flexbox.FlexboxLayout بعد از اون این ویژگی ها رو هم به لایه اضافه کنید : app:alignItems="center" app:flexWrap="wrap" app:justifyContent="space_around" حالا در پوشه values یک فایل ایکس ام ال به نام fractions درست کنید و با مقدار و ایتم های دلخواه مثل نمونه زیر : <?xml version="1.0" encoding="utf-8"?> <resources> <item name="ww" type="fraction">33%</item> <item name="ww1" type="fraction">90%</item> <item name="ww2" type="fraction">45%</item> <item name="lst" type="fraction">100%</item> </resources> و هر ایتم مشخص میکنه که هر شی در لایه چقدر فضا رو در جهت طول در رزولیشن های مختلف اشغال کنه... و در آخر برای هر شی که میسازید در لایه مقدار فضای اشغال کننده رو تعیین کنید مثل نمونه زیر : app:layout_flexBasisPercent="@fraction/ww1"> تبریک میگم الان شما یک لایه ریسپانسیو در همه اسمارت فون های اندروید دارید ... موفق باشید ببخشید اگه غلط املایی توش پیدا کردید :دی
  45. 3 likes
    خب باید در نظر داشته باشید که حتما ستون id باید AUTO_INCREMENT باشد. خیلی از افراد اینو در نظر نمی گیرند. اگه کد سرچ شما همونی باشه که در بالا گفتم.احتمالا مشکل این باشد. که اونو توسط نرم افزار های مدیریت دیتابیس تنظیم کنید. «موفق باشید.»
  46. 3 likes
    داخل خود For اول قرار دادین. یعنی کد زیر که در سوالتون بود For i = 0 To Cr.RowCount - 1 Cr.Position = i List_matlab.AddSingleLine2(Cr.GetString("fehrest"),Cr.GetInt("id")) در اینجا پایین ترین و بالا ترین id رو در بین Cr.GetInt("id") پیدا کنید.به راحتی با دو تا if میشه اونوها رو بدست بیارید «موفق باشید.»
  47. 3 likes
    سلام بله مثلا با Md5 یا Sh1 میشه وقبلا توی انجمن ازش بحث شده و سورسی هم توی انجمن برای نحوه تبدیل متنها با Md5 بودکه الان پیداش نکردم باکمی تغییرات کدهای زیر مال بچه های انجمنه که درپایین اینجا براتون ارسالش می کنم . نحوه کار هم اینه که مثلا یک سطراول فایلتون یا نه مثلا 16 حرف موجود در اول فایل تکستون رو اختصاصش میدید به کد رمزنگاریتون با md5 یا Sh1 وهمیشه هنگام خواندن فایل اولین کاری که برنامه میکنه باید بررسی کردن صحت کدباشه و کل متن فایل رو هم به روشهای مختلف مثلا همین روش md5 تبدیل به رمز میکنید ، اگر کد اول فایل صحیح بود ، اونوقت الباقی فایل رمز نگاریش باز میشه وامکان خواندن مطالب فایل تکست هست والا نه! هرکی هم سورستون رو بخواهد دستی بازکندوفایل تکستون رو بخونه به علت تبدیلش به کد md5 نمی تونه . نکته : از امن ترین روشهای کد گذاری ورمزگزاری با مثلا Md5 اینه که مثلا رمزی دلخواه رو با md5 به فایل یادیتابیس یا هاست بعدش دوباره اونو از فایل فراخوانی ودوباره با Md5 به همراه کلماتی دلخواه جدید خودتان قاطی و رمزنگاری کنید وبعداونو دوباره به فایل تکستتان یا دیتابیس یا هاست ارسال کنید . لینک زیر رو ببینید: پیشنهاد برای پنهان کردن " پسورد " در کد گذاری دیتابیس - پرسش و پاسخ (بیسیک4اندروید) - مرکز پاسخگویی به سوالات برنامه نویسی نوشتن رمز توی فایل تکست وچک کردن اون Sub Globals Private Label1 As Label Private Label2 As Label Private Label3 As Label Private EditText1 As EditText '''''''''''''''تبدیل کلمه به متن رمزنگاری شده Private kalame_gabl_az_ramz As String Dim Ramz_md5_1 As String '''روش رمز گذاری Md5 که متوسط است Dim Ramz_Sha_1 As String '''رمز از روش sha که قویتر وامن تر است Private Label4 As Label End Sub Sub Activity_Create(FirstTime As Boolean) Activity.LoadLayout("Layout1") kalame_gabl_az_ramz = "laleqwe" kalame_gabl_az_ramz = "1" End Sub Sub EditText1_TextChanged (Old As String, New As String) kalame_gabl_az_ramz=EditText1.Text Label1.Text= "کلمه موردنظر جهت رمز کردن "& kalame_gabl_az_ramz Label2.Text="رمز از نوع MD5 :"&ramz_md5(kalame_gabl_az_ramz) Label3.Text="رمز از نوع SHA : "&ramz_sha(kalame_gabl_az_ramz) End Sub Sub ramz_md5 (kalame As String) As String Dim md As MessageDigest Dim ByteCon As ByteConverter Dim passwordhash() As Byte Dim passwordhash2() As Byte passwordhash = md.GetMessageDigest(kalame.GetBytes("UTF8"),"MD5") Ramz_md5_1 = ByteCon.HexFromBytes(passwordhash) Log(Ramz_md5_1) passwordhash2 = md.GetMessageDigest(Ramz_md5_1.GetBytes("UTF8"),"SHA-1") Ramz_Sha_1 = ByteCon.HexFromBytes(passwordhash2) Log(Ramz_Sha_1) Return Ramz_md5_1 '''در آخر این آرایه را بفرست به ramz_md5(XXXXX) End Sub Sub ramz_sha (kalame As String) As String ''امن تر Dim md As MessageDigest Dim ByteCon As ByteConverter Dim passwordhash() As Byte Dim passwordhash2() As Byte passwordhash = md.GetMessageDigest(kalame.GetBytes("UTF8"),"MD5") Ramz_md5_1 = ByteCon.HexFromBytes(passwordhash) Log(Ramz_md5_1) passwordhash2 = md.GetMessageDigest(Ramz_md5_1.GetBytes("UTF8"),"SHA-1") Ramz_Sha_1 = ByteCon.HexFromBytes(passwordhash2) Log(Ramz_Sha_1) Return Ramz_Sha_1 '''در آخر این آرایه را بفرست به ramz_sha(XXXXX) End Sub ضمنا کتابخانه های زیر بایدفعال باشه: ByteConverter encryption Core توی layout1 هم چهار تالیبل به نامهای بالا و یه edittext بانام مذکور ایجادکنید.ببخشید اگه کدهای اضافی داخل کدهام باشه!
  48. 3 likes
    کد c++ بعد از کامپایل تبدیل به کد ماشین یا همون صفر و یک میشه و بازگردوندن اون نکه شدنی نباشه. ولی هرگز شبیه جاوا نیست که دیکودر اون براحتی پیدا بشه.من خودم خیلی دنبال راهی برای دیکد اون گشتم ولی چیزی پیدا نکردم. واسه همین بهترین روشو همین می دونم.در ضمن کدهای ماشین بسیار وابسته به سخت افزار هستن و به همین دلیل با توسعه سخت افزار های مختلف اونها هم تغیر می کنن. و اینم دلیلی میشه که یک کد ماشین ثابت برای دیکود وجود نداشته باشه و همینم سبب سخت تر شدن دیکد اون میشه. خیلی از شرکت ها برای امنیت از همین روش استفاده می کنند. «موفق باشید.»
  49. 3 likes
    امکانات این کتابخونه خیلی بیشتر از اون چیزی هست که شما نیاز دارین عزیز. شما همه کارهایی که لازم دارین رو به با خیال راحت میتونین انجام بدین و از جمله اون یه آپلودر مطمئن رو دارین که میتونید فایلهای حجیم رو به همراه نمایش درصد آپلود تو برنامه پیاده کنید. ببینید همراه کتابخونه یه سورس و یه آموزش خیلی خوب هست که تو اون تقریبا کتابخونه به صورت کامل توضیح داده شده. و اینکه بخواین سریع پیاده کنین بستگی به تسلط خودتون داره. کار کردن با کتابخونه خیلی راحته عزیز. به مشکلی خوردین توی تاپیک عنوان کنید تا راهنمایی های لازم صورت بگیره.
  50. 3 likes
    سلام. قطعا اگه میخواید به وسیله ی اپ1 و یا حالا هر اپی که اینتنت شمارو داشته باشه باهاش صداش بزنه و یک اکتیویتی از اپ2 اجرا بشه. باید این امکان رو به منیفست اپ2 بدید. میشه تقریبا مثل بازار که یک لینک داره و با استفاده از اون و اکشن ACTION_VIEW قسمت نظرات رو باز میکنیم. اگه همینو میخواین... میتونید به منیفست اپ 2 اینو اضافه کنید تا یک اینتنت یا لینک اختصاصی ساخته بشه با پروتکل pejman مثلا... AddActivityText(Main,"<intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="pejman"/> </intent-filter>") دیدین برای بازار میذاریم bazaar:// ، اینجا هم باید بذاریم pejman:// اکتیویتی هم اسمشو مشخص کردیم Main، یعنی به محض استارت شدن اینتنت از یک اپ دیگه، اکتیویتی Main اپ 2 باز بشه. حالا میریم مثلا توی اپ 1 و میخوایم باهاش اکتیویتی Main اپ 2 رو باز کنیم، کافیه این کد رو بنویسیم: Dim intent1 As Intent intent1.Initialize(intent1.ACTION_VIEW,"pejman://value?=test") StartActivity(intent1) به این صورت خیلی راحت باز میشه. ولی حالا میشه اینو اختصاصی ترش کرد و کارای جالب تری انجام داد. جاوا یه رویدادی داره به نام activity_Result. توی بیسیک یادم رفته ولی اگه خواستین روش کار میکنم. میشه مثلا تعیین کرد که اینتنت دریافتی اگه ACTION_EDIT بود بیاد مثلا صفحه نظرات رو باز کنه یا اگه VIEW بود کار دیگه ای بکنه. (البته اینو هم بگم که باید تو منیفست هم تعریف بشه که اینتنت ما EDIT یا اکشن های دیگه رو بپذیره وگرنه اررور میده) اون value=?test هم که میبینید همینطوری گذاشتم. اونا هم استفاده های خودشون رو دارن که بازهم باید با دریافت StartingIntent از اکتیویتی اونارو از اینتنت استخراج کنیم و مقدار هاشو بیرون بیاریم. مثلا میتونیم شرط بذاریم اگه value=فلان بود یکاری انجام بده. یا مثل بازار که مقدار خودش رو پکیج نیم برنامه قرار داده.