تغییر سایز لیبل در لیست ویوو

پرسش

سلام و سپاس از مدیر سایت و دوستان و همکاران

در مورد سایز لیبل های لیست ویو چطور می توان انها را با شرط کوچک و بزرگ کرد

خواهش می کنم یک تکه کدی بنویس برامون که وقتی متن طولانی هست سایز لیبل بزرگ بشه. مثلا اگر متن بیش از صد کاراکتر شد لیبل بزرگتر بشه و اگر متن کمتر از صد کاراکتر هست لیبل همون سایز تعریف اولیه باشه .

مثلا ایجور چیزی نیاز منه که متاسفانه جواب نمی گیرم. تاکید می کنم برای لیبل لیست ویوو.

if listview1.SingleLineLayout.label.text.length >100 then
listview1.SingleLineLayout.label.hight = 30%y
else
listview1.SingleLineLayout.label.hight=10%y
ممنون می شم

در انتظار پاسخ 0
, جلال 2 ماه 11 پاسخ ها 76 بازدید کاربر جدید 0

پاسخ ها ( 11 )

  1. سلام.

    ببین، شما باید یک لیبل برای لیست ویوت تعریف کنی و اون لیبلو تغییر بدی.

    اول با استفاده از این آموزش، لیبل های لیستتو داخل یک متغیر ذخیره کن:

    https://beporsam.ir/blog/rtl-layout-b4a/

    بعدش برای این که لیبلت به اندازه نوشته هات باشه، ابتدا کتابخانه stringUtils رو علامت بزن و تعریفش کن:

    بعدش اینطوری ازش استفاده کن:

    خودتم یه ذره روش کار کن
    راستش من این روش رو تست نکردم ببینم روی لیست ویو جواب میده یا نه.

  2. سلام

    اگه سوالت رو درست متوجه شده باشم میخوای متن نسبتا طولانی رو نمایش بدی که listview گزینه خوبی نیست و باید توی یک لیبل متنو نشون بدی و براش scroll تعریف کنی تا نسب به اندازه متن لیبل هم اندازه متن بشه

    آموزش کار با اسکرول ویو هم توی همین سایت تو قسمت آموزش ساخت کتاب هستش اگ اشتباه نکنم میتونی استفاده کنی

    • سلام . اقای امیر

      نه. من یک دیتابیس دارم. سرچ انجام میشه. بعضی از گزینه ها یکی دو کلمه است که لیبل کوچیک براش کافیه.

      اما بعضی از گزینه های سرچ شده یک متن سه خطی هستند. از این رو می خوام لیبل های لیست ویوو کوچیک بزرگ بشن.

      • ببین میتونی از مالتی پنل به جای لیست ویو استفاده کنی و روی اون از کتابخونه stringUtils که کدش رو بالا نوشتم.

        این آموزش مولتی پنل:

        https://beporsam.ir/blog/multipanel-b4a/

      • تو خود سایت بیسک دیدم که خیلیا این مشکل رو داشتن و متاسفانه لیست ویو خیلی محدوده و نمیشه زیاد سفارشی سازی کرد. به نظرم پیشنهاد اقا مرتضی منطقی تره

        • ممنون . اره محدود هست اما استفاده ازش راحته. امیدوارم مسئولین بپرسم همت کنن مولتی پنل رو یاد بدن چطور دیتابیس توش فراخوانی بشه

  3. سلام.

    ظاهرا چاره ای نیست که از مولتی پنل استفاده کنم

    اما اقای مرتضی خواهش می کنم یک راهنمایی بکنید چطور باید فراخوانی بشه دیتابیس توی لیبل های مولتی پنل

    منظورم اینکه حلقه چطور باید نوشته بشه.

    اخه می دونید که لیست ویوو خودش خودکار تکرار رو انجام می داد. اما الان مولتی پنل فقط اولین سرچ رو نشون می ده

    خواهشا کدهاش رو بنویس که چطور حلقه تکرار انجام بشه تا موارد پیداشده توی دیتابیس رو نشون بده و پنل تکرار بشه. ممنون

    • عزیزم، شما اصلا آموزش مولتی پنل رو دیدی؟

      اول یک حلقه فور بزن و مقدارش رو تا cursor.rowCount-1 بذار.

      بعد کد فراخوانی از دیتابیس آفلاین رو داخل حلقت بنویس

      بهتره قبلش آموزش دیتابیس آفلاین رو ببینی.

      گرچه اگر هم از لیست ویو استفاده کنی، باز هم باید آموزش دیتابیس آفلاین رو دیده باشی

      • این پاسخ ویرایش شده است.

        سلام. بدبختی اینه که من از دیتابیس انلاین استفاده می کنم.

        همون اموزش شما در درس هشتم اموزش دیتابیس.

        افلاین رو قبلا دیدم و بلدم. فیلم های اموزشی هم توی اپارات داره. اما من دیتبایس انلاین استفاده می کنم

        به همین خاطر نمی دونم چطور کدش رو بنویسم. چون اولا این کدهایی که شما توی اموزش دیتابیس انلاین نوشتید کرسر cur نداره و دوما رائوکانتrowcount توی پی اچ پی هست نه توی بیسیک.

        من گیرم فقط و فقط توی همین حلقه اش هست. چون فراخونی کردم. تعداد رو درست میاره اما توی همه لیبل ها فقط یک سلول رو نشون می ده

        • کاری نداره که

          ابتدا بیا با کتابخونه httputils عملیات دانلود دیتاتو از هاست انجام بده.

          بعدش بیا دستور فراخوانیت رو داخل حلقه بنداز و شرط حلقت رو هم list.Size-1 بذار

          مثلا اینطوری

           

  4. ممنون اقای مرتضی

    من شفاف تربگم. کارهایی که شما گفتید رو من قبلا کرده بودم. مشکل این هست که من توی دیتابیس ده تا محمد دارم که هر کدوم فامیل متفاوتی دارند و اولین محمد فامیلش محمدی هست.
    مولتی پنلی که من نوشتم ده تا لیبل میاره ، اما همه شون محمد محمدی نمایش می ده. یعنی حلقه ای که من نوشتم از نظر تعداد درسته، اما از نظر متن اشتباه.
    خواهشا یک نگاهی به کدهای من بینداز ببین چی کم داره
    Sub jobdone(job As HttpJob)
    If job.Success=True Then
    Dim list As List
    Dim m As Map
    Dim json As JSONParser
    json.Initialize(job.GetString)
    list= json.NextArray
    For i=0 To list.Size-1
    m=list.Get(i)
    Dim top As Int=2%y
    For i= 0 To list.Size-1
    Dim pl As Panel
    pl.Initialize(“pl”)
    ScrollView1.Panel.AddView(pl,3%x,top,97%x,80%y)
    pl.LoadLayout(“main”)
    top=top+53%y+2%y
    Labelname.Text=m.Get(“name”)’&i
    Labelfamily.Text=m.Get(“family”)’&i
    Next
    ScrollView1.Panel.Height = top
    Next

نوشتن پاسخ