جستجو

شروع موضوع توسط hamzehh67 ‏28 آوریل 2019 در انجمن نرم افزار Autoplay Media Studio

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

    hamzehh67 New Member

    ارسال‌ها:
    12
    تشکر شده:
    2
    امتیاز دستاورد:
    3
    سلام دوستان
    من برای سرچ بار به مشکل خوردم
    من میخوام از دوتا منوی کشویی استفاده کنم که بوسیله ی این منوها
    از لیست باکسی که جداگانه طراحی کردم
    جستجو کنم
    ولی میخوام منوی کشویی دومم
    بر اساس گزینه ای که در منوی کشویی اول انتخاب میکنم متفاوت باشه
    و بهمین ترتیب
    لیست باکس هر مورد هم جداگونه باشه
    مثلا :
    منوی کشویی اول اسم چند تا کشور مختلف باشه
    میخوام اگه در این منو اسم یه کشور رو انتخاب کردم
    در منوی کشویی دومی اسم استانهای اون کشور نشون داده بشه
    و همین ترتیب وقتی یکی از استان ها رو انتخاب کردم
    در لیست باکس پائین اسم شهرهای اون استان نمایش داده بشه
    و وقتی روی یکی از شهر ها در لیست باکس کلیک میکنم میخوام به فایل مورد نظرم متصل بشم
    ممنون میشم راهنمایی کنید کارم خیلی فوریه
     
    نوشته شده توسط hamzehh67 در ‏28 آوریل 2019
    SajjadKhati از این پست تشکر کرده است.
  2. SajjadKhati

    SajjadKhati کاربر فعال <A href="http://forum.majidonline.com/f

    ارسال‌ها:
    1,481
    تشکر شده:
    706
    امتیاز دستاورد:
    113
    سلام
    از آرایه ی چند بعدی استفاده کنید . آموزشش توی انجمن هست.
     
    نوشته شده توسط SajjadKhati در ‏28 آوریل 2019
  3. hamzehh67

    hamzehh67 New Member

    ارسال‌ها:
    12
    تشکر شده:
    2
    امتیاز دستاورد:
    3
    ممنون میشم اگه توضیح بیشتری بدید
    یا راهنمایی کنید
    ممنون میشم
     
    نوشته شده توسط hamzehh67 در ‏28 آوریل 2019
  4. SajjadKhati

    SajjadKhati کاربر فعال <A href="http://forum.majidonline.com/f

    ارسال‌ها:
    1,481
    تشکر شده:
    706
    امتیاز دستاورد:
    113

    توی همونجا آموزشش داده شد .
    شما آموزش ببینین ، کد بنویسین ، جایی مشکل داشتین ، مطرح کنید .

    این کد را در global function بنویسید :

    کد (Text):
    function GetIndexOfArrayValue(yourArray, comboboxSelectedName)
        local arrayCount = Table.Count(yourArray);
        for indexArray = 1, arrayCount do
            for index,value in pairs(yourArray[indexArray]) do
                if (comboboxSelectedName == value) then
                return index;
                end
            end
        end
    end
     
    اینو در کمبوباکس اول :
    کد (Text):
    if (e_Selection > 0) then
        --delete combo
        cmbCount = ComboBox.GetCount("ComboBox2");
        for i = 1, cmbCount do
        ComboBox.DeleteItem("ComboBox2", -1);
        end
       
            --delete list box
        lstboxCount = ListBox.GetCount("ListBox1");
        for i = 1, lstboxCount do
        ListBox.DeleteItem("ListBox1", -1);
        end
       
        for index,value in pairs(globalArray.state[e_Selection]) do
        ComboBox.AddItem("ComboBox2", value, "");
        end
    end
     

    اینو در کمبوباکس دوم :

    کد (Text):
    if (e_Selection > 0) then
        --delete list box
        lstboxCount = ListBox.GetCount("ListBox1");
        for i = 1, lstboxCount do
        ListBox.DeleteItem("ListBox1", -1);
        end
       
        --get index of value in globalArray.state
        selectedValueName = ComboBox.GetText("ComboBox2");
        indexStateArray = GetIndexOfArrayValue(globalArray.state, selectedValueName);

        for index,value in pairs(globalArray.city[indexStateArray]) do
        ListBox.AddItem("ListBox1", value, "");
        end
    end
     

    اشیاء لازم هم دو کمبوباکس و یک لیست باکس هست .
     
    نوشته شده توسط SajjadKhati در ‏28 آوریل 2019
    the_king از این پست تشکر کرده است.
  5. SajjadKhati

    SajjadKhati کاربر فعال <A href="http://forum.majidonline.com/f

    ارسال‌ها:
    1,481
    تشکر شده:
    706
    امتیاز دستاورد:
    113
    این کد را هم در رویداد on show اون صفحه بنویسید (فراموش کردم) :

    کد (Text):
    globalArray = {country = {"iran", "yaman"} , state = {{[1] ="tehran", [2] = "khozestan"} , {[3] = "sana", [4] = "alhadideh"}} , city = { {"eslam shahr", "robat karim", "ghods"} , {"abadan", "khorramshahr", "hoveizeh", "fakkeh"} , {"sian" , "sana"} , {"bora", "salif"} }};

    for index,value in pairs(globalArray.country) do
    ComboBox.AddItem("ComboBox1", value, "");
    end
     

    البته بهتره اون آرایه ی globalArray را توی رویداد global function یا رویداد on startup بنویسید تا در هر صورتی ،این آرایه ، فقط یکبار اجرا بشه .
     
    نوشته شده توسط SajjadKhati در ‏28 آوریل 2019
    the_king از این پست تشکر کرده است.
  6. reza-safary

    reza-safary Member

    ارسال‌ها:
    54
    تشکر شده:
    30
    امتیاز دستاورد:
    18
    سلام و وقت بخیر
    ممنون میشم راهنمایی بفرمایید
    *با AMS یه پیج جستجو درست کردم و جستجوش درست کار میکنه و بر اساس حرفی که تایپ میکنم عبارتی که اون حرف داخلش هست رو میاره
    قبل از جستجو داخل لیست باکس لینکی رو که به عبارت دادم کار میکنه (( بهش یه فایل پی دی اف لینک دادم که بازش میکنه و مشکلی نیست ))
    *ولی وقتی جستجو میکنم و اون عباراتی که حرف مورد نظر توش بوده رو میاره و میخوام کلیک کنم که فایل (پی دی اف) رو باز کنه بجاش پوشه آدرس فایل رو باز میکنه
    درصورتی که میخوام وقتی هم با جستجو عبارت رو آورد و کلیک کردم بجای آدرس فایل خود فایل رو برام باز کنه

    کدهایی که استفاده کردم اینا هستن

    Page تب On show
    all_items = ListBox.GetCount("ListBox1");
    item_text_tbl = {};
    item_data_tbl = {};
    for a=1, all_items do
    item_text = ListBox.GetItemText("ListBox1", a);
    item_data = ListBox.GetItemData("ListBox1", a);
    item_text_tbl[a] = item_text;
    item_data_tbl[a] = item_data;
    end

    Input تب On key
    text_tosearch = Input.GetText("Input1");
    idx = 1;
    finded_text_tbl = {};
    finded_data_tbl = {};
    for i,v in pairs(item_text_tbl) do
    finded_result = String.Find(v, text_tosearch, 1, false);
    if finded_result ~= -1 then
    finded_text_tbl[idx] = v;
    finded_data_tbl[idx] = item_data_tbl;
    idx = idx+1;
    end
    end
    ListBox.DeleteItem("ListBox1", -1);
    for i,v in pairs(finded_text_tbl) do
    ListBox.AddItem("ListBox1", finded_text_tbl,"");
    End


    Listbox تب On Double-click
    linenumber = ListBox.GetSelected("ListBox1");
    FilePath = ListBox.GetItemData("ListBox1", linenumber[1]);
    File.Open(FilePath, "", SW_SHOWNORMAL);
     
    نوشته شده توسط reza-safary در ‏11 می 2019
  7. SajjadKhati

    SajjadKhati کاربر فعال <A href="http://forum.majidonline.com/f

    ارسال‌ها:
    1,481
    تشکر شده:
    706
    امتیاز دستاورد:
    113
    سلام
    در رویداد On Key شی input ، بجای اینکه داخل آرایه ، جستجوتون را انجام بدین ، درون خود شی لیست باکس (از طریق تابع ListBox.FindItem) ، جستجوی تون را انجام بدین . از طریق جستجو در آرایه هم برین ، باز هم باید از این تابع استفاده کنین مگر اینکه کار و الگوریتم تون را بیخودی بخاین پیچیده تر کنین. بنابراین در رویداد On Show در page ، اصلا نیازی به کدنویسی نخواهید داشت (البته نیاز به آرایه هایی شبیه item_text_tbl و item_data_tbl در رویداد On Key شی input خواهید داشت که وقتی کاربر ، اینپوت را پاک کرد ، دوباره توسط این اطلاعات ، لیست باکس مجدا پر بشه)
    بعد توی کد نویسی تون دقت کنید . توی رویداد On Key شی input ، در خط :

    کد (Text):
    finded_data_tbl[idx] = item_data_tbl;
    یک آرایه را توی یک متغییری که حاوی رشته باید باشه ، ریختین.
    توی خط :

    کد (Text):
    ListBox.AddItem("ListBox1", finded_text_tbl,"");
    در آرگومان دوم تابع ، که باید یک رشته میدادین ، یک آرایه دادین که باعث ارور هم شد .
    اینا را تصحیح کنید.
    کدها را هم در تگ کد بنویسین.
     
    نوشته شده توسط SajjadKhati در ‏11 می 2019
  8. reza-safary

    reza-safary Member

    ارسال‌ها:
    54
    تشکر شده:
    30
    امتیاز دستاورد:
    18
    ممنون از لطفی که کردی و وقت گذاشتی ولی متاسفانه من برنامه نویسیم خوب نیست و متوجه نشدم باید چکار کنم
     
    نوشته شده توسط reza-safary در ‏12 می 2019
    SajjadKhati از این پست تشکر کرده است.
  9. SajjadKhati

    SajjadKhati کاربر فعال <A href="http://forum.majidonline.com/f

    ارسال‌ها:
    1,481
    تشکر شده:
    706
    امتیاز دستاورد:
    113
    سلام
    آموزش برنامه نویسی (اتوپلی) ، بصورت مجزا و کامل (که لینکش در امضا ام هست) ، گذاشته شده.
     
    نوشته شده توسط SajjadKhati در ‏12 می 2019
    reza-safary از این پست تشکر کرده است.
  10. reza-safary

    reza-safary Member

    ارسال‌ها:
    54
    تشکر شده:
    30
    امتیاز دستاورد:
    18
    کدهای جستجو رو از همین کتابی که شما معرفی کردی کپی کردم خودم ننوشتم
    نمیخوام بشینم همشو بخونم اگه زحمتت نیست شسته رفته تر و خلاصه راهکار عملی بده
    اگر هم امکان نداره برات که بازم ممنون
     
    نوشته شده توسط reza-safary در ‏13 می 2019
  11. SajjadKhati

    SajjadKhati کاربر فعال <A href="http://forum.majidonline.com/f

    ارسال‌ها:
    1,481
    تشکر شده:
    706
    امتیاز دستاورد:
    113

    دوست عزیز ، وقتی میخواین برنامه ای بنویسین ، باید قبل اش کد نویسی یاد بگیرین . نمیشه بدون یادگیری کدنویسی که برنامه نوشت .
    راهکار را در پست 7 دادم دیگه.
     
    نوشته شده توسط SajjadKhati در ‏13 می 2019

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