جستجو در ليست باكس

شروع موضوع توسط sarbedaronline1 ‏29 نوامبر 2009 در انجمن برنامه Multimedia Builder

کلمات کلیدی:
  1. sarbedaronline1

    sarbedaronline1 Member

    ارسال‌ها:
    160
    تشکر شده:
    78
    امتیاز دستاورد:
    16
    داخل نمونه اي كه گذاشتم يه ليست باكس هست كه ليستي رو از فايل ضميمه شده در داخل خود ليست ميكنه
    مشكل اول اينه كه در داخل اديت باكس گزينه اي رو تايپ و جستجو ميكنيم فقط اولي رو پيدا ميكنه و به سراغ گزينه دوم يا مشابه نميره در بعضي از مثالها ديدم كه مثلا اگه دو تا مورد مشابه هست هردو رو با هم هاي لايت ميكنه كه اينم خودش يه مشكله و من ميخوام بعد از پيدا كردن گزينه اول با دوباره كليك كردن روي دكمه سرچ به سراغ گزينه دوم رفته و اولي رو از حالت انتخاب خارج كنه.
    دوم اينكه نام گزينه انتخابي رو در داخل اديت باكس نشون نميده و من ميخوام پس از انتخاب گزينه و بسته شدن ليست باكس نام گزينه انتخابي در داخل كادر اديت باكس نشون داده بشه.
    ممكنه به جاي يك فايل متني من به ليست باكس بگم كه ليست تعدادي از تصاوير رو در پوشه اي خاص برام لود كنه در اين صورت ميخوام نام تصوير يا هر فايل انتخابي ديگه اي كه در داخل ليست باكس انتخاب ميشه در داخل اديت باكس نشون داده بشه.
    و سوم:
    ليست به صورت فارسيه از چه فونتي استفاده كنم كه هم ليست فارسي باشه و هم شماره گذاري فارسي باشه و هم در داخل ديگر كامپيوتر ها بدون مشكل نشون داده بشه و اون فونت رو ويندوز به صورت استاندارد ساپورت كنه.
    در ضمن ليست باكس فارسي رو از چپ رديف ميكنه و از چپ هم شماره گذاري ميكنه توي يه تاپيك جدا مطرح كردم ولي به نتيجه اي نرسيدم حالا نمونه گذاشتم اگه كسي تونست عيبهارو برطرف كنه ممنون ميشم.
     

    پیوست ها:

    • list box.rar
      اندازه فایل:
      کیلوبایت 2.2
      نمایش ها:
      35
    آخرین ویرایش: ‏29 نوامبر 2009
    نوشته شده توسط sarbedaronline1 در ‏29 نوامبر 2009
    ashkan_mmb از این پست تشکر کرده است.
  2. evil_gates

    evil_gates اين نيز بگذرد ...

    ارسال‌ها:
    1,833
    تشکر شده:
    3,724
    امتیاز دستاورد:
    113
    دوست عزيز
    در مورد سوال اول شما قبلا يكي از دوستان تاپيكي به نام مشاعره (اگه اشتباه نكنم) زده و سوالي شبيه به همين سوال رو داشت . فكر ميكنم الگوريتيمي كه اونجا پيشنهاد شد براي جستجوي يك عبارت در يك رشته ميتونه پاسخي براي سوال شما باشه و كافيه اون مثال رو يكم دستكاري كنين تا به جواب برسين.
    در مورد انتخاب نوع فونت هم قبلا تو يه تاپيك ديگه بحث شد و من پيشنهاد خودم رو دادم. اونجا رو يه بار ديگه مطالعه كنين.
    موفق باشيد
     
    نوشته شده توسط evil_gates در ‏29 نوامبر 2009
    ashkan_mmb و sarbedaronline1 از این پست تشکر کرده اند.
  3. sarbedaronline1

    sarbedaronline1 Member

    ارسال‌ها:
    160
    تشکر شده:
    78
    امتیاز دستاورد:
    16
    اول ممنون.
    دوم اينكه مثال مشاعره برعكس كار منه و تفاوت زيادي هم داره چون در مثال مشاعره مقدار از شي اديت باكس به شي پاراگراف وارد ميشه و براي بار دوم همين مقدار اول با مقدار بعدي كه دوباره ميخواد وارد شي پاراگراف بشه مقايسه ميشه و اگهمساوي باشه ارور ميده.
    اگه لطف كنيد و قبل از هر كاري مثالي رو كه گذاشتم ببينيد بهتر ميتوني كمكم كني در ضمن من ميخوام كه تغريبا همين جستجوگر خودم اطلاح بشه چون تو مثالهاي نسخه 4,9,8 بيلدر يك دموي كامل مربوط به جستجو در ليست باكس بود ولي از چند نظر همشون ايراد داشتن كه مهمترينشون اين بود كه:
    واسه جستجو شروع ميكرد از آيتم اول ليست باكس تا آيتم آخر رو يكي يكي هاي لايت ميكرد و بعد از پايان كل ليست باكس نتيجه رو گزارش ميداد
    اين در ليستهاي طويل وقتگيره
    اگر مثالو ببينيد خواهيد ديد كه اولين آيتم را زود پيدا ميكنه ولي سراغ دومي نميره . در ضمن هميني هم كه من ساختم در ليستهاي بيش از 200 آيتم وقتگير ميشه و كند عمل ميكنه
    از بچه هاي حرفه اي ميخوام كه اين مشكلو واسم حل كنن مثالشو ببينن و بعد نظر بدن.
    ممنون.
     
    نوشته شده توسط sarbedaronline1 در ‏29 نوامبر 2009
    ashkan_mmb از این پست تشکر کرده است.
  4. Saman

    Saman مدیر انجمن مولتی مدیا بیلدر

    ارسال‌ها:
    2,107
    تشکر شده:
    2,731
    امتیاز دستاورد:
    113
    دوست عزیز
    من وقت نکردم مشکل شما رو دقیقا بررسی کنم.
    شما این مثال و ببین.
     

    پیوست ها:

    • Search.zip
      اندازه فایل:
      کیلوبایت 2.1
      نمایش ها:
      57
    نوشته شده توسط Saman در ‏29 نوامبر 2009
    ashkan_mmb، sarbedaronline1 و evil_gates از این ارسال تشکر کرده اند.
  5. evil_gates

    evil_gates اين نيز بگذرد ...

    ارسال‌ها:
    1,833
    تشکر شده:
    3,724
    امتیاز دستاورد:
    113

    سلام
    منظور من استفاده از الگوريتم پيشنهادي تو اون پست بود نه خود اون مثال
    به نظر من براي حل مشكلت بايد عبارتي كه تو اديت باكس وارد ميشه رو تو يك متغير رشته اي بريزي و بعد با استفاده از يك حلقه آيتمهاي موجود تو ليست باكس رو هم يكي يكي به يك متغير رشته اي ديگه نسبت بدي و بعد اين دوتا متغير رو با هم مطابقت بدي (يعني چك كني كه آيا رشته متغير اول در رشته متغير دوم هم وجود داره يا به عبارت ديگه متغير اول زير رشته متغير دوم ميتونه باشه يا نه)
    در صورتي كه شرط صحيح باشه يعني رشته متغير اول در متغير دوم موجود بود پس اون آيتم به صورت هاي‌لايت در مياد. و بعد حلقه به سراغ آيتم بعدي ليست باكس ميره و الي آخر

    رو پيشنهاد من فكر كن اگه نتونستي حلش كني فرصت كردم مثالت رو برات اصلاح ميكنم

    موفق باشي
     
    نوشته شده توسط evil_gates در ‏30 نوامبر 2009
    ashkan_mmb و sarbedaronline1 از این پست تشکر کرده اند.
  6. evil_gates

    evil_gates اين نيز بگذرد ...

    ارسال‌ها:
    1,833
    تشکر شده:
    3,724
    امتیاز دستاورد:
    113
    نميدونم تونستي مشكلت رو حل كني يا نه
    ولي من بر اساس الگوريتمي كه تو پست قبلي گفتم مثال رو برات اصلاح كردم
    موفق باشي
     

    پیوست ها:

    • list box.zip
      اندازه فایل:
      کیلوبایت 1.1
      نمایش ها:
      36
    نوشته شده توسط evil_gates در ‏2 دسامبر 2009
    ashkan_mmb، nevercom و sarbedaronline1 از این ارسال تشکر کرده اند.
  7. sarbedaronline1

    sarbedaronline1 Member

    ارسال‌ها:
    160
    تشکر شده:
    78
    امتیاز دستاورد:
    16
    ممنون از evil gates ولي متا سفانه درست نشد .
    شما يا به مثال دقت نكردي يا طوماري رو كه من نوشتم نخوندي ميدونم گذشتن از وقت اونم به صورت مجاني كار هر كسي نيست اينو قبلا مدير انجمن بهم تذكر داده ولي اگه دوباره خواستي كمك كني به اين چند نكته دقت كن چون اين مثالي كه شما برام حل كردي من خودم قبلا داشتم.
    اول اينكه مثال من يك كامبو باكسه و من ميخوام آيتم انتخابي داخل ليست باكسو توي اديت باكس نشون بده تا وقتي كه كامبو باكس بسته است بدونيم چه آيتمي فعاله.
    دوم اينكه در موقع جستجو اگر آيتم اول پيدا شد پس از كليك دوباره بر روي كليد جستجو اگر آيتم مشابهي بود آيتم اول رو از حالت انتخاب خارج كنه و آيتم دوم رو هاي لايت كنه نه اينكه همه رو با هم هاي لايت كنه و اگر آيتمي براي جستجو پيدا نشد يا آيتم مشابهي نبود مثل همين مثال خودم يك پيغام به كاربر بده.
    مثالي كه من درست كردم ايرادش اينه كه فقط اولين مورد جستجو رو پيدا ميكنه و غير فعال ميشه.
    بازم ممنون ولي اگه بقيه بچه ها هم كمكم ميكردن بد نميشد ها.
     
    نوشته شده توسط sarbedaronline1 در ‏2 دسامبر 2009
    ashkan_mmb از این پست تشکر کرده است.
  8. evil_gates

    evil_gates اين نيز بگذرد ...

    ارسال‌ها:
    1,833
    تشکر شده:
    3,724
    امتیاز دستاورد:
    113
    دوست عزيز
    كاري كه من كردم پيشنهاد يك الگوريتم براي سرچ در ليست باكس و ساختن مثالي بر اساس همين الگوريتم بود. اينكه قبلا خودتون همچين مثالي رو ساختين رو نميدونستم وگرنه اين مثال رو نميزاشتم.
    براي نوشتن برنامه هميشه راههاي زيادي هست و الگوريتم هاي متفاوتي. شما مي تونين روشي كه من گفتم رو با كمي تغييرات به همون چيزي تبديل كني كه خودتون ميخواي

    و اما بعد:

    براي اينكه آيتمي كه تو ليست باكس فعال هست رو تو اديت باكس نشون بدين فقط كافيه از دستور DisplayValue يا LoadText استفاده كنين كه بعيد ميدونم با اين فرامين آشنا نباشين.

    و براي حل اين مشكل هم ميتونيد بعد از اينكه يك آيتم پيدا شد حلقه رو با فرمان Return متوقف كنين، يك پيغام به كاربر بدين و شرط ادامه حلقه رو تاييد كاربر بزارين (در صورتي كه كاربر مايل به ادامه جستجو بود تاييد مي كنه و با اين عمل با دستور ListBoxDeselectItem آيتم قبلي غير فعال و آيتم جديدي كه پيدا ميشه فعال ميشه)

    اين چيزي بود كه به ذهن من مي رسيد براي حل مشكلتون. حالا اگه كافي نيست و مشكل شما رو حل نميكنه قطعا دوستان ديگه كه از من بيشتر ميدونن كمك مي كنن.

    موفق باشيد
     
    آخرین ویرایش: ‏2 دسامبر 2009
    نوشته شده توسط evil_gates در ‏2 دسامبر 2009
    ashkan_mmb و sarbedaronline1 از این پست تشکر کرده اند.
  9. ashkan_mmb

    ashkan_mmb Member

    ارسال‌ها:
    315
    تشکر شده:
    382
    امتیاز دستاورد:
    16
    ببین بهتره یه کار خیلی ساده تر بکنی یه بلک لیست درست کن که بعد از سرچ یافته ها شو بریز تو اون و بعدشم یه دکمه درست کن که با دو بار کلیک بر روی اون یه عددی رو مثل x یا چیز دیگه ای رو یکی ببره بالا و در آخر همه دستورای دکمت به ایف بزار که
    اگه اون ایکس ما به توتال رسیده بود بکنتش صفر اونوقت میتونی با همون ایکس که به دست میاری به برنامه بفهمونی که شماره چند رو پلی کنه

    اگه خواستید بگید تا بیشتر توضیح بدم البته فکر نکنم چیز به این سادگی نیاز به توضیح داشته باشه
     
    نوشته شده توسط ashkan_mmb در ‏3 دسامبر 2009
    sarbedaronline1 و evil_gates از این پست تشکر کرده اند.
  10. sarbedaronline1

    sarbedaronline1 Member

    ارسال‌ها:
    160
    تشکر شده:
    78
    امتیاز دستاورد:
    16
    حق با evil gates بود يكي دوتا از دستورات رو فراموش كرده بودم باراهنماييهاي شما كاملا مشكل رفع شد واقعا ممنونم.
     
    نوشته شده توسط sarbedaronline1 در ‏3 دسامبر 2009
    ashkan_mmb و evil_gates از این پست تشکر کرده اند.

به اشتراک بگذارید