efizakeri0098 5 ارسال شده در 18 تیر، ۱۳۹۵ اشتراک گذاری ارسال شده در 18 تیر، ۱۳۹۵ با سلام من داخل انجمن ها گشتم و فقط یه جا دیدم قرار دادن چند عکس در دیتابیس و اون هم به کارم نخورد اگه کسی بلده که چند عکس رو داخل یک فیلد دیتابیس قرار بده ممنون میشم ما رو هم راهنمایی کنه لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mehrabmmp 528 ارسال شده در 18 تیر، ۱۳۹۵ اشتراک گذاری ارسال شده در 18 تیر، ۱۳۹۵ بعضی از دوستان تو فراخوانی عکس و متن با هم مشکل دارن مثلا جوری که یه عکس و یه متن و یه عکس و یه متن پشت سر هم و روش های دیگه تو این اموزش با یه ساب میشه کار هارو راحت کرد اول برنامه ناویکت رو برای ساخت دیتابیس باز کنید من اینجا یه دیتابیس دارم که توش سه تا فیلد هست فیلد اول که id همه میدونین چیه فیلد دوم به اسم Type برای مشخص کردن متن و عکس ساخته شده جوری که برای ایتم عکس مقدار اونو یک بدین و برای ایتم متن مقدار اونو 0 (بدین طبق عکس بالا) فیلد سوم هم که توش متن و عکسامونو میزاریم جوری که برای فراخوانی عکس باید اسم عکس رو همراه با پسوند به اون بدین و عکس هارو تو پوشه File کپی کنین و دیگه نیاز نیست از Blob استفاده کنین و متن ها رو هم به طور معمول تو Memo بدین در دیتابیس بالا اگه دقت کنین من اول یک عکس دادم و بعد یه متن که تو اسکرول وییو اول عکس رو نشون خواهد داد و سپس متن که اینارو شما طبق نوشتتون میتونید تغییر بدین و شخصی سازی کنین خب دیتابیسو سیو کنین و تو بیسیک فراخوانی کنین در بیسیک ابتدا sql و cur رو اینشیالایز کنین در اکتیویتی بعدی یه لیست وییو درست کنین و اونو فراخوانی کنین Sub Process_Globals Dim m As Int = 0 End Sub Sub Globals Private ListView1 As ListView End Sub Sub Activity_Create(FirstTime As Boolean) Activity.LoadLayout("ACTLIST") ListView1.AddSingleLine("answercenter") ListView1.AddSingleLine("mehrab") ListView1.AddSingleLine("MMP") End Sub Sub Activity_Resume End Sub Sub Activity_Pause (UserClosed As Boolean) End Sub Sub ListView1_ItemClick (Position As Int, Value As Object) If Position = 0 Then m = 100 StartActivity(ACTMATN) Else If Position = 1 Then m = 200 StartActivity(ACTMATN) Else if Position = 2 Then m = 300 StartActivity(ACTMATN) Else if Position = 3 Then m = 400 StartActivity(ACTMATN) End If End Sub در کدای بالا من سه خط به لیست وییو اضافه کردم . بعضی از کاربرا یه مشکلی دارن که برای هر یک از ایتم های لیست وییو یه اکتیویتی باز میکنن و این باعث شلوغی پروژه و بالا اومدن حجم میشود (مثلا بعضی از کتاب های چند فصلی ) برای اینکه از اینکار جلوگیری شود و فقط با یه اکتیویتی کار رو راحت کرد من یه متغییر int تعریف کردم (دقت کنید که باید در قسمت Sub Process_Globals اونو تعریف کنین ) و در قسمت ساب کلیک لیست وییو بر اساس هر پوزیشن بهشون یه مقدار از خودم دادم و استارت اکتیویتی کردم. در اکتیویتی بعد اگه بخوایم که وقتی رو هر یک از ایتم های لیست وییو کلیک شد متن مربوط به اونو نشون بده از این کدا باید استفاده کنین Sub Process_Globals End Sub Sub Globals Private Label1 As Label Private ScrollView1 As ScrollView Dim fara As Farakhani Dim lbl As Label End Sub Sub Activity_Create(FirstTime As Boolean) Activity.LoadLayout("ACTMATN") If ACTLIST.m = 100 Then Main.cur = Main.sql.ExecQuery("SELECT * FROM Matn WHERE id BETWEEN 1 AND 4 ") show Else if ACTLIST.m = 200 Then Main.cur = Main.sql.ExecQuery("SELECT * FROM Matn WHERE id BETWEEN 5 AND 8 ") show Else If ACTLIST.m = 300 Then Main.cur = Main.sql.ExecQuery("SELECT * FROM Matn WHERE id BETWEEN 9 AND 11 ") show End If در کدای بالا من بر اساس متغییری که در اکتیویتی قبلی تعریف کرده بودم اونارو طبقه بندی کردم جوری که من در اکتیویتی قبلی برای ایتم یک مقدار 100 رو به متغییر داده بودم و در اینجا گفتم اگه در اکتیویتی قبلی مقدار متغییر 100 بود بیا این مطالبو از دیتابیس بریز تو cur و برو به ساب Show در کدای بالا من از BETWEEN استفاده کردم کاربرد بیتوین برای زمانی است که شما یه تیبل دارید و توش همه ی مطالبتونو جمع اوری کردید و هر مطلب را پشت سر هم گذاشته اید مثلا از id 1 تا id 4 یه مطلب هست و از id 5 تا id 8 یه مطلب دیگه و برای فراخوانی جداگانه مطلب ها از این کد استفاده میشود Sub show Dim h As Int = 2%y For i = 0 To Main.cur.RowCount - 1 Main.cur.Position = i If Main.cur.GetInt("Type") = 0 Then Dim lbl As Label lbl.Initialize("") lbl.Textcolor = Colors.White lbl.Textsize = 17 lbl.Text = Main.cur.GetString("matn") ScrollView1.Panel.AddView(lbl,3%X,h,ScrollView1.Width - 5%x,0) Dim su As StringUtils lbl.Height = su.MeasureMultilineTextHeight(lbl,lbl.Text) h = h + lbl.Height + 2%y ScrollView1.panel.height = h else if Main.cur.GetInt("Type") = 1 Then Dim image1 As ImageView image1.Initialize("") image1.Bitmap = LoadBitmap(File.DirAssets,Main.cur.GetString("matn")) image1.Gravity = Gravity.FILL ScrollView1.panel.addview(image1,0,h,ScrollView1.Width,50%y) h = h + 50%y + 2%y ScrollView1.Panel.Height = h End If Next End Sub و قسمت اصلی این اموزش ساب بالا هست که به طور مرتب و منظم عکس ها و متن هارو یکی به یکی فراخوانی میکنه و شما میتونید این کدارو شخصی سازی کنید لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
efizakeri0098 5 ارسال شده در 18 تیر، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 18 تیر، ۱۳۹۵ خیلی ممنون از آموزشتون اگه سورسش رو هم قرار بدی عالی میشه لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
efizakeri0098 5
با سلام
من داخل انجمن ها گشتم و فقط یه جا دیدم قرار دادن چند عکس در دیتابیس و اون هم به کارم نخورد
اگه کسی بلده که چند عکس رو داخل یک فیلد دیتابیس قرار بده ممنون میشم ما رو هم راهنمایی کنه
لینک ارسال
به اشتراک گذاری در سایت های دیگر
2 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.