ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

نمایش نتایج: از 1 به 4 از 4
  1. #1
    2008/07/04
    34
    0

    راهنمایی برای ساخت منو تو در تو به صورت حرفه ایی+ LCD گرافیکی

    سلام به همه همونطور که عنوان معلومه می خوام بدونمم چه طور میشه یه منو و به صورت حرفه ایی ساخت یا برنامه اوونو نوشت
    هدف اینه که حداقل کد ایجاد کنه + اضافه کردن منو جدید راحت باشه

    فرض کنید یه دستگاه داریم که یه منو داره با 5 تا تب وقتی دکمه منو میزنیم میره به قسمت منو حالا اینجا 5 تا تب من می خوام وقتی با2 تا کلید بالا پایین که می کنیم اوون تب رنگ نوشته معکوس بشه

    چیزی که تو ذهنم بود و خواستم برنامه زیر بسازم اما هر چی می خوام کامل ترش کنم حجم کد بیشتر میشه
    می خوام بدونم روش اصولی و حرفه ایی واسه ساخت منو چیه ؟

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


    کد:
    menu2:
    Select Case Zirmenu
    
     Case 1 : Negativ(1) = 1
    
     Case 2 : Negativ(2) = 1
    
     Case 3 : Negativ(3) = 1
    
     Case 4 : Negativ(4) = 1
    
     Case 5 : Negativ(5) = 1
    
    End Select
    
    
    Setfont Font8x8
    Lcdat 1 , 1 , "TEXT1" , Negativ(1)
    Lcdat 2 , 1 , "TEXT1" , Negativ(2)
    Lcdat 3 , 1 , "TEXT1" , Negativ(3)
    Lcdat 4 , 1 , "TEXT1" , Negativ(4)
    Lcdat 5 , 1 , "TEXT1" , Negativ(5)
    
    
    Debounce Bala , 0 , Up , Sub
    Debounce Paen , 0 , Down , Sub
    
    
    
    
    
    Down:
    Incr Zirmenu
    If Zirmenu > 5 Then Zirmenu = 5
    Return
    
    Up:
    Decr Zirmenu
    If Zirmenu > 5 Then Zirmenu = 1
    return
    { خلاف قوانین ، پاک شد }
  2. #2
    2008/09/02
    اصفهان
    1,897
    37

    پاسخ : راهنمایی برای ساخت منو تو در تو به صورت حرفه ایی+ LCD گرافیکی

    البته نمیشه منو ها رو زیاد کرد بدون اینکه حجم کد تولیدی زیاد نشه. مشکل عمده شما اینه که میخوایین منو ها رو با کد بسازین. البته باید گفت هر روشی پیاده سازی کنین منوط به روش استفاده از منو هم میشه. اما بطور کلی من میام با یک تابع ثابت منو ها رو مدیریت میکنم و بعد شماره آیتمی رو که طرف انتخاب کرده به یک روتین ثابت پاس میکنم تا اون عمل مربوطه رو انجام بده. اینجوری فقط حجم داده مربوط به توصیف آیتم ها کم و زیاد میشه. البته در این مورد مقداری هم حجم استک نرم افزاری باید افزایش پیدا کنه و گرنه مشکلات دیگه ای پیش میاد. البته روش پیاده سازی این مسئله رو به این فرم توی بیسیک نمیدونم. من خودم با C و اسمبلی کارمو پیش میبرم. اما میشه یه چیزایی درآورد:

    اینو ببینین (نمیدونم سورسش درسته یا غلط داره؛ کار میکنه یا نه؛ اما ایده اصلی رو میرسونه:


    Declare Function MenuReadInt(ByVal W As Word) As Integer
    Declare Function MenuReadItem(ByVal W As Word, ByVal N As Byte, Choice As Integer ) As String
    Declare Sub MenuRun(ByVal Choice As Integer)

    Call HandleMenu(LoadLabel(MainMenu))

    End

    Sub MenuRun(ByVal Choice As Integer)
    Select Case Choice
    Case Choice = 1: HandleMenu(LoadLabel(FileMenu))
    Case Choice = 2: Edit()
    Case Choice = 3: HandleMenu(LoadLabel(FormatMenu))

    Case Choice = 6: NewFile()
    Case Choice = 7: OpenFile()
    End Select
    End Sub


    Sub HandleMenu(Dim MenuData As Word)
    Dim nItems As Byte
    Dim nCur As Byte
    Dim I As Integer
    Dim Temp As Integer
    Dim Choice As Integer

    nCur = 1
    nItems = MenuReadInt(MenuData)
    Do
    For I=1 To nItems
    If I = nCur Then
    Temp = 1
    Else
    Temp = 0
    End If
    Lcdat I, 1, ReadMenuItem(MenuData, I, Choice), Temp
    Temp = GetKey()
    Select Case Temp
    Case Key = Up:
    If nCur = 1 Then nCur = nItems Else nCur = nCur - 1
    Case Key = Down:
    If nCur = nItems Then nCur = 1 Else nCur = nCur + 1
    Case Key = Enter
    MenuRun( Choice )
    End Select
    Next I
    Loop
    End Sub

    Function MenuReadInt(ByVal W As Word) As Integer
    Dim Result As Integer

    Result = CPeek(W)
    Result = Result + (CPeek(W+1)*256)

    ReadInt = Result
    End Function

    Function MenuReadText(ByVal W As Word, ByVal N As Byte, Choice As Integer) As String
    Dim nItems As Integer
    Dim I As Integer
    Dim C As Byte
    Dim Result As String

    nItems = ReadInt(W)
    W = W + 2
    Result = ""
    For I = 1 To N
    Do
    C := CPeek(W)
    W = W + 1
    If C = 0 Then
    Choice = ReadInt(W)
    W = W + 2
    Exit Do
    End If
    Result = Result + Chr(C)
    Loop
    Next I
    MenuReadText = Result
    End Function

    MainMenu:
    Data 5
    Data "File", 1
    Data "Edit", 2
    Data "Format", 3
    Data "View", 4
    Data "Help", 5

    FileMenu:
    Data 4
    Data "New", 6
    Data "Open", 7
    Data "Save", 8
    Data "Save as...", 9


  3. #3
    2008/07/04
    34
    0

    پاسخ : راهنمایی برای ساخت منو تو در تو به صورت حرفه ایی+ LCD گرافیکی

    آقا رضا تشکر من فک می کنم برنامه که شما گزاشتین همون کاریه که من می خواستم بکنم
    برنامه شما هم با توجه به تعداد آیتم ها حجم کمی نداره پس این روند اجتناب ناپذیره انگار

    اگه میشه راجب این جمله هم توضیح بدین من متوجه نشدم

    مشکل عمده شما اینه که میخوایین منو ها رو با کد بسازین.
    { خلاف قوانین ، پاک شد }
  4. #4
    2008/09/02
    اصفهان
    1,897
    37

    پاسخ : راهنمایی برای ساخت منو تو در تو به صورت حرفه ایی+ LCD گرافیکی

    این روش فقط همین حجم کد پایه رو احتیاج داره و مورد خاص دیگه ای نمیخواد اضافه بشه. ولی به ازای هر آیتم مسلما مقداری از فضای فلش از دست میره.

    اون جمله ای که عرض کردم به این خاطر بود که معمولا بیسیک کارها اغلب کارشون رو با کد نویسی انجام میدن و به ساختارهای برنامه نویسی و ساختارهای داده ای هیچ توجهی ندارن. حق هم دارن چون اغلب با این تیپ برنامه نوشتن کارشون راه افتاده. ولی اینجا با توجه به قیدی که شما گذاشتین یعنی:

    هدف اینه که حداقل کد ایجاد کنه + اضافه کردن منو جدید راحت باشه

    فکر میکنم این راه اگر بهترین نباشه؛ راه خوبیه.
نمایش نتایج: از 1 به 4 از 4

موضوعات مشابه

  1. طریقه ساخت فونت فارسی برای lcd گرافیکی برای بیسکام
    توسط milad2546 در انجمن میکروکنترلرهای AVR
    پاسخ: 45
    آخرين نوشته: 2016/11/25, 17:14
  2. درخواست راهنمایی برای اموزش السیدی گرافیکی
    توسط amin tal در انجمن میکروکنترلرهای AVR
    پاسخ: 6
    آخرين نوشته: 2016/05/04, 21:03
  3. راهنمایی برای ساخت شارژر برای چهارتا باطری Ni-MH AA به صورت سری
    توسط __unco__ در انجمن مدارهای آنالوگ و مدارهای مجتمع
    پاسخ: 5
    آخرين نوشته: 2016/01/23, 15:01
  4. ساخت راهنمای حرفه ای برای ماشین
    توسط omidnaji در انجمن مدارهای آنالوگ و مدارهای مجتمع
    پاسخ: 4
    آخرين نوشته: 2014/09/21, 14:51

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •