NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 1079 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 27 از 32 نخستنخست ... 891011121314151617181920212223242526272829303132 آخرینآخرین
نمایش نتایج: از 521 به 540 از 634

موضوع: فیلم آموزش Emwin با LPC1788 و تکمیلی lpc1768 رسید!

  1. #521
    مدیر انجمن yraeisi آواتار ها
    تاریخ عضویت
    Sep 2012
    نام
    یوسف رئیسی
    نوشته ها
    222
    تشکر
    9
    تشکر شده 182 بار در 100 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sadegh.put نمایش پست ها
    ممنون از جوابتون .... من نمی خوام مثال ها رو اجرا کنم ... می خوام پروژه جدید بسازم .... یعنی خودم یه گرافیک بسازم ... مراحلی رو که ذکر کردم درست هست برای ساخت پروژه جدید؟
    منظور ،ساختار کلی هست.شما فقط کافیه قسمت مربوط به sample رو تغییر بدین.بقیه ساختار تغییری نمی کنه
    Hardware & Software designer
    Telegram:@y_r_z

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #522
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2014
    نوشته ها
    33
    تشکر
    24
    تشکر شده 19 بار در 13 پست

    پیش فرض

    سلام آقای ریئسی قبل اینکه سوالمو بپرسم بابت تدوین این مجموعه آموزشی ازتون تشکرمیکنم
    الان مشکلی که دارم اینکه البته لازمه بگم که میکرویی که استفاده کردم stm32است و از ramخارجی هم استفاده میکنم
    با نرم افزار GUIBuilderسه تا pageساختم که pageاول دوتا دکمه داره که به کمک دکمه ها بین pageها حرکت میکنه
    ازRTXهم استفاده نمیکنم داخل تابع mainودرداخل حلقه whileیه برنامه ساده نوشتم
    while(1)
    {
    page1=1;
    if(page1==1)
    {
    CreateWindow1();

    while(page1==1)
    {
    GUI_Exec();
    if(page2==1)
    {
    CreateWindow2();
    while(page2==1)
    {
    GUI_Exec();
    }
    }

    if(page3==1)
    {
    CreateWindow3();
    while(page3==1)
    {
    GUI_Exec();
    }
    }

    }
    }
    همون طورکه میبینید برای رفتن به pageدوم داخل کد سی که از pageاول داشتم داخل دکمه اول یه متغییر رو یک میکنم سپس شرط اول درست میشه و pageدوم ساخته میشه
    مشکل اینجاست که با این برنامه pageهای مختلف ایجاد میشه واین موضوع باعث میشه حافظهramپرمیشه و برنامه هنگ میکنه و همه چی از کار میافته
    راهنمای emwinاون طورکه من فهمیدم میگه باید قبل از ایجاد صفحه جدید صفحه قبلی بسته بشه
    چهارتا تابع معرفی شده
    GUI_CreateDialogBox()
    GUI_ExecCreatedDialog()
    GUI_ExecDialogBox()
    GUI_EndDialog()
    الان با تابع چهارم چطور و کجا باید فراخوانی بشه تا صفحه ای که باز شده بسته بشه
    وبا کدوم تابع باید دوباره صفحه رو ایجاد کرد
    void GUI_EndDialog(WM_HWIN hDialog, int r);
    الان تو این تابع آرکومان های اول چی باید باشن
    ممنون میشم راهنمایی کنید گیج شدم

    - - - Updated - - -

    آرگومان اول و دوم این تابع چی باید باشه

  4. #523
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2014
    نوشته ها
    33
    تشکر
    24
    تشکر شده 19 بار در 13 پست

    پیش فرض

    تویه مثال داخل راهنمای emwinآرگومان دوم این تابع بعضی وقت ها صفر است و در حای دیگر یک شده
    case WM_KEY:
    switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) {
    case GUI_ID_ESCAPE:
    GUI_EndDialog(hWin, 1);
    break;
    case GUI_ID_ENTER:
    GUI_EndDialog(hWin, 0);
    break;
    }
    break;

  5. #524
    مدیر انجمن yraeisi آواتار ها
    تاریخ عضویت
    Sep 2012
    نام
    یوسف رئیسی
    نوشته ها
    222
    تشکر
    9
    تشکر شده 182 بار در 100 پست

    پیش فرض

    سلام.برای جلوگیری از پرشده حافظه نباید پنجره ها رو دوباره بسازید.دو راه دارید:
    1. چک کنید اگه پنجره قبلا ساخته شده .اول اون رو حذف کنید( با دستور WM_Delete ) و مجددا پنجره رو بسازید.
    2. پنجره رو فقط یک بار بسازید و وقتی بهش نیاز ندارید hide کنید و وقتی نیاز دارید show کنید.
    Hardware & Software designer
    Telegram:@y_r_z

  6. تشکرها از این نوشته :


  7. #525
    کاربر علاقه مند omid_2132 آواتار ها
    تاریخ عضویت
    Jul 2011
    نوشته ها
    86
    تشکر
    89
    تشکر شده 55 بار در 18 پست

    پیش فرض

    نقل قول نوشته اصلی توسط tarasheh نمایش پست ها
    متاسفانه کیفیت صدا افتضاح است.دوستانی که میگن صدا خوبه می توانند بگویند مدرس تو فیلم 4 چی میگه؟
    من با هدفون هم نمیشنوم.
    ای کاش قبل از آماده فروش کردن همچین مجموعه ای یکبار بازبینی میشد.
    ای کاش مدرس آمادگی بیشتری داشت و از قبل خودشو برای همچین کاری آماده میکرد.
    متاسفانه یک کار عجله ای و بدون فکر و برنامه ریزی قبلی و بدون بازبینی است.
    معایب را گفتم اما محاسنش بیشتر از معایب است.
    لطفا صدای بد و افتضاح را توجیح نکنید.
    خوشبختانه کسانی که دارن در این حد از الکترونیک با سیستم عامل emwin کار میکنند حتما بلدن چه طور با آمپلی فایر ساده تلوزیون کار کنند پس لطفا به جای اعتراض های بی مورد مکرر از ورودی 3 فیشه تلوزیون استفاده و صدا رو در حد فوق العاده تنظیم کنید.

  8. تشکرها از این نوشته :


  9. #526
    کاربر علاقه مند omid_2132 آواتار ها
    تاریخ عضویت
    Jul 2011
    نوشته ها
    86
    تشکر
    89
    تشکر شده 55 بار در 18 پست

    پیش فرض

    با سلام خدمت دوستان عزبز بالاخص جناب آقای رییسی.
    من برد lpc1788 ewb rev4.0 و lcd 7 inch و touch مقاومتیش خریداری کردم والبته یک سال پیش هم cd آموزشیتون رو هم تهیه کرده بودم.
    همه مثالها کامپایل و دیباگ و پروگرم میشن و lcd هم کار میکنه ولی touch تو هیچ کدوم از مثالها کار نمیکنه.
    بعد از مطالعه مطالب این انجمن طبق فرمایشاتتون توی مثال LPC1788-RTX for 4pin touch تغییرات 2 هدر فایل GUI_X_Touch_Analog.c و Touch_Cal.c رو اعمال کردم ولی باز هم تاچ کاره نکرد که کالیبره بشه.
    آیسی تاچ روی بورد ADS7846 هست که فکر نکنم ربطی داشته باشه.
    لطفا راهنمایی بفرمایید.

    فایل پیوست 9544
    فایل پیوست 9545
    فایل پیوست 9546

  10. تشکرها از این نوشته :


  11. #527
    کاربر علاقه مند omid_2132 آواتار ها
    تاریخ عضویت
    Jul 2011
    نوشته ها
    86
    تشکر
    89
    تشکر شده 55 بار در 18 پست

    پیش فرض

    نقل قول نوشته اصلی توسط omid_2132 نمایش پست ها
    با سلام خدمت دوستان عزبز بالاخص جناب آقای رییسی.
    من برد lpc1788 ewb rev4.0 و lcd 7 inch و touch مقاومتیش خریداری کردم والبته یک سال پیش هم cd آموزشیتون رو هم تهیه کرده بودم.
    همه مثالها کامپایل و دیباگ و پروگرم میشن و lcd هم کار میکنه ولی touch تو هیچ کدوم از مثالها کار نمیکنه.
    بعد از مطالعه مطالب این انجمن طبق فرمایشاتتون توی مثال LPC1788-RTX for 4pin touch تغییرات 2 هدر فایل GUI_X_Touch_Analog.c و Touch_Cal.c رو اعمال کردم ولی باز هم تاچ کاره نکرد که کالیبره بشه.
    آیسی تاچ روی بورد ADS7846 هست که فکر نکنم ربطی داشته باشه.
    لطفا راهنمایی بفرمایید.

    فایل پیوست 9544
    فایل پیوست 9545
    فایل پیوست 9546
    سلام دوباره.آقا مشکل من هم حل شد.اگه عکس اول که آپلود کرده بودم رو زوم کنید متوجه میشید که تاچ و سوکتش رو برعکس زده بودم که اشتباه بود و با نصب صحیح به خوبی کار کرد.آخه دفعه اولم بود با تاچ کار میکردم.
    در ضمن هیچ تغییراتی در برنامه داخل CD آموزش EMWIN ندادم و عینا کامپایل و پروگرم کردم.یعنی تو مثال LPC1788-RTX for 4pin touch داخل سی دی هیچ تغییراتی ندادم.
    در ضمن به هر کدام از سوکت های touchpad هم وصلش کنید فرقی نداره با هم موازیند.اینم از عکسش:

    IMG_20170826_154215.jpg
    ویرایش توسط omid_2132 : 26-08-2017 در ساعت 16:46

  12. تشکرها از این نوشته :


  13. #528
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2014
    نوشته ها
    33
    تشکر
    24
    تشکر شده 19 بار در 13 پست

    پیش فرض

    نقل قول نوشته اصلی توسط yraeisi نمایش پست ها
    سلام.برای جلوگیری از پرشده حافظه نباید پنجره ها رو دوباره بسازید.دو راه دارید:
    1. چک کنید اگه پنجره قبلا ساخته شده .اول اون رو حذف کنید( با دستور WM_Delete ) و مجددا پنجره رو بسازید.
    2. پنجره رو فقط یک بار بسازید و وقتی بهش نیاز ندارید hide کنید و وقتی نیاز دارید show کنید.
    سلام خیلی ممنون آقای رئیسی دقیقا مشکل همین بودقبل از ایجاد یه صفحه جدید صفحه قبلی رو باید deleteکرد
    درحال حاضر یه مشکل دیگه دارم ممنون میشم راهنمایی بفرمایید

    درواقع یه متغییری دارم که تو تابع اینتراپت پلاس میشه حال چه طور باید متغییر به صورت اتوماتیک رو کادر editeآپدیت بشه
    درحال حاضر حتما باید یه دکمه داخل صفحه رو لمس کنم تا از اون طریق بتونم مقدار جدید متغییر رو تو کادر مورد نظر نمایش بدم
    گرافیک هم توسط guibuilderساخته شده
    گویا کد سی تولید شده توسط این نرم افزار توسط switch,caseنوشته شده و برای آپدیت صفحه یا اصلا هرکاری را که بخوایم رو صفحه اتفاق بیافته حتما باید صفحه لمس بشه
    اگه اینطور باشه چطور میشه به کمک emwinیه ساعت ساخت در اینصورت حتما باید صفحه رو لمس کنیم تا مقدار ساعت رو صفحه آپدیت بشه

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

  14. #529
    مدیر انجمن yraeisi آواتار ها
    تاریخ عضویت
    Sep 2012
    نام
    یوسف رئیسی
    نوشته ها
    222
    تشکر
    9
    تشکر شده 182 بار در 100 پست

    پیش فرض

    سلام.نیازی به لمس تاچ نیست. مثلا با دستور ات زیر میتونید یه متن رو تغییر بدید
    کد:
    ( hItem= WM_GetDialogItem(hWinMainPage,ID_TEXT_1 (TEXT_SetText(hItem, buf
    که hWinMainPage اشاره گر به پنجره و buf رشته مورد نظر هست
    Hardware & Software designer
    Telegram:@y_r_z

  15. #530
    کاربر علاقه مند omid_2132 آواتار ها
    تاریخ عضویت
    Jul 2011
    نوشته ها
    86
    تشکر
    89
    تشکر شده 55 بار در 18 پست

    پیش فرض

    سلام.من تو مثال LPC1788-RTX for 4pin touch هفت اینچ وقتی تو دستور GUI_DrawBitmap(&bmlogo, 0, 0); یک عکس با سایز 300*500 قرار میدم عکس از رزولیشن واقعی کوچکتر دیده میشه و وقتی به 360*600 میبرم عکس رو تو کیل ارور not enough میده.چطور یه عکس با حداکثر اندازه lcd م قرار بدم.

  16. #531
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نوشته ها
    236
    تشکر
    101
    تشکر شده 246 بار در 163 پست

    پیش فرض

    تابع اول رو داخل اینتراپت استفاده کنید.در اینجا مقدار یک prgressbar فرضا ارسال میشه.
    تابع دوم در فایلی که guibuilder براتون ساخته رو اضافه کنید . دقت کنید کل تابع رو نیاز نیست فقط باید قسمت سوئیچ مربوط به dlProgBarEvent رو کپی کنید.
    اون Define رو هم در هر دو فایل سی (یا یک فایل هدر اضافه کنید).اینطوری هر وقت اینتراپت زده شد مقدار روی صفحه اپدیت میشه.
    فقط یادت باشه که با این دستور ، پیغام به کل صفحه های موجود ارسال میشه ولی اگر بخواید به یک صفحه خاص ارسال بشه باید از wm_sendmessage استفاده کنید که
    اگر یک صفحه فقط باشه همین هم باید جواب بده.


    کد:
    #define dlProgBarEvent WM_USER+1 void dl_setProgBar(int prc) { WM_MESSAGE dlMsg; dlMsg.MsgId = dlProgBarEvent; dlMsg.Data.v = prc; WM_BroadcastMessage(&dlMsg); } static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int NCode; int Id; // USER START (Optionally insert additional variables) // USER END switch (pMsg->MsgId) { case dlProgBarEvent: hItem = WM_GetDialogItem(pMsg->hWin, ID_PROGBAR_0); PROGBAR_SetValue(hItem, pMsg->Data.v); break; case WM_INIT_DIALOG: // . . . }

  17. تشکرها از این نوشته :


  18. #532
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2014
    نوشته ها
    33
    تشکر
    24
    تشکر شده 19 بار در 13 پست

    پیش فرض

    نقل قول نوشته اصلی توسط yraeisi نمایش پست ها
    سلام.نیازی به لمس تاچ نیست. مثلا با دستور ات زیر میتونید یه متن رو تغییر بدید
    کد:
    ( hItem= WM_GetDialogItem(hWinMainPage,ID_TEXT_1 (TEXT_SetText(hItem, buf
    که hWinMainPage اشاره گر به پنجره و buf رشته مورد نظر هست
    سلام آقای رئیسی
    ممنون
    ولی مگه با این دستور فقط یه متن ثابت رو نشون نمیدن
    ;("TEXT_SetText(hItem, "ALI
    الان من بجای ALIاز یه متغییر استفاده کنم کامپایلر ازم ایراد میگیره
    تو تعریف خود این تابع آرگومان دوم یه constتعریف شده
    نکته دوم
    همین مثالی که زدین فکر کنید bufتو mainبرنامه درحاله تغییره
    من این دوخط دستوری رو که گفتین کجای برنامه بنویسم
    که با تغییر bufتو برنامه مقدارش رو السیدی آپدیت بشه؟؟

  19. #533
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2014
    نوشته ها
    33
    تشکر
    24
    تشکر شده 19 بار در 13 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mducati999 نمایش پست ها
    سلام آقای رئیسی
    ممنون
    ولی مگه با این دستور فقط یه متن ثابت رو نشون نمیدن
    ;("TEXT_SetText(hItem, "ALI
    الان من بجای ALIاز یه متغییر استفاده کنم کامپایلر ازم ایراد میگیره
    تو تعریف خود این تابع آرگومان دوم یه constتعریف شده
    نکته دوم
    همین مثالی که زدین فکر کنید bufتو mainبرنامه درحاله تغییره
    من این دوخط دستوری رو که گفتین کجای برنامه بنویسم
    که با تغییر bufتو برنامه مقدارش رو السیدی آپدیت بشه؟؟
    منظورم از تغییر اینه که مثلا هر یک ثانیه در حاله تغییره
    این تغییرات رو چه جوری من باید به پنجره انتقال بدم
    تا مقدارbufرو السیدی تغییرکنه؟؟
    ممنون میشم واقعا اگه کمک کنید
    خیلی تلاش کردم
    یوزرمنوال emwinهم خوندم ولی دقیق توضیح نداده مثال ام نداره
    مثالی هم در این رابطه پیدا نکردم
    کلا گیج شدم دیگه حسابی

  20. #534
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2014
    نوشته ها
    33
    تشکر
    24
    تشکر شده 19 بار در 13 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mrm نمایش پست ها
    تابع اول رو داخل اینتراپت استفاده کنید.در اینجا مقدار یک prgressbar فرضا ارسال میشه.
    تابع دوم در فایلی که guibuilder براتون ساخته رو اضافه کنید . دقت کنید کل تابع رو نیاز نیست فقط باید قسمت سوئیچ مربوط به dlProgBarEvent رو کپی کنید.
    اون Define رو هم در هر دو فایل سی (یا یک فایل هدر اضافه کنید).اینطوری هر وقت اینتراپت زده شد مقدار روی صفحه اپدیت میشه.
    فقط یادت باشه که با این دستور ، پیغام به کل صفحه های موجود ارسال میشه ولی اگر بخواید به یک صفحه خاص ارسال بشه باید از wm_sendmessage استفاده کنید که
    اگر یک صفحه فقط باشه همین هم باید جواب بده.


    کد:
    #define dlProgBarEvent WM_USER+1 void dl_setProgBar(int prc) { WM_MESSAGE dlMsg; dlMsg.MsgId = dlProgBarEvent; dlMsg.Data.v = prc; WM_BroadcastMessage(&dlMsg); } static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int NCode; int Id; // USER START (Optionally insert additional variables) // USER END switch (pMsg->MsgId) { case dlProgBarEvent: hItem = WM_GetDialogItem(pMsg->hWin, ID_PROGBAR_0); PROGBAR_SetValue(hItem, pMsg->Data.v); break; case WM_INIT_DIALOG: // . . . }
    سلام
    آقا خدا پدر مادر تو بیامرزه مشکل حل شد
    حقیقت این موضوع رو من تو سایت seggerبهش برخوردم
    همین مشکل مطرح شده بود
    من این موضوع رو پیاده کردم ولی مشکلم این بود که اون defineرو که شما بهش اشاره کرده بودین رو لحاظ نکرده بودم
    توسایت هم چیزی نگفته بود برا همین بود که جواب نمیگرفتم
    البته من نمیخواستم اون تابع داخل اینتراپت قرار بگیره تو mainبرنامه جایی احتیاج داشتم دائما پیغامی رو به داخل پنجره بفرستم
    تا داخل کادر editeآپدیت بشه
    فقط درمورد اون موضوعی که گفتین که این برنامه باعث میشه پیغام برای همه پنجره ها ارسال میشه
    وبرای یک پنجره خاص باید ازتابع wm_sendmessage استفاده کرد حق باشماست تو همون سایت seggerهم به این موضوع اشاره شده
    من این موضوع رو هم پیاده کردم وبرای یک پنجره خاص فرستادم بازهم همه چی انجام شد بادستورات زیر
    ;WM_MESSAGE dlMsg
    ;WM_HWIN hClient
    ;(hClient = WM_GetClientWindow(hWin
    ;(WM_SendMessage(hClient, &dlMsg


    آقا در هر صورت خیلی ممنون واقعا دستت درد نکنه

  21. #535
    کاربر علاقه مند omid_2132 آواتار ها
    تاریخ عضویت
    Jul 2011
    نوشته ها
    86
    تشکر
    89
    تشکر شده 55 بار در 18 پست

    پیش فرض

    نقل قول نوشته اصلی توسط yraeisi نمایش پست ها
    سلام.برای جلوگیری از پرشده حافظه نباید پنجره ها رو دوباره بسازید.دو راه دارید:
    1. چک کنید اگه پنجره قبلا ساخته شده .اول اون رو حذف کنید( با دستور wm_delete ) و مجددا پنجره رو بسازید.
    2. پنجره رو فقط یک بار بسازید و وقتی بهش نیاز ندارید hide کنید و وقتی نیاز دارید show کنید.
    طبق فرمایشاتتون حتما باید یک پنجره بسته بشه تا امکان باز شدن پنجره دیگر میسر شود.ولی وقتی من از کد زیر استفاده میکنم
    کد:
    case ID_CHECKBOX_0: // Notifications sent by 'Checkbox'
         switch(NCode) {
           case WM_NOTIFICATION_CLICKED:
             hItem = WM_GetDialogItem(pMsg->hWin, ID_CHECKBOX_0);
             CHECKBOX_SetBoxBkColor(hItem,GUI_RED,1);
             WM_DeleteWindow(hItem);
    فقط یک قسمت مثلا اگه تو تابع چک باکس قرار داده باشم فقط قسمت چک باکس از بین میره و بقیه window باقی میمونه که طبیعیه چون آخرین مقدار hItem رو با ID_CHECKBOX_0 تو برنامه خودم جایگداری کرده بودم.
    وقتی هم از
    کد:
    hItem = WM_GetDialogItem(pMsg->hWin, ID_WINDOW_0);
    WM_DeleteWindow(hItem);
    استفاده میکنم هیچ تغییری در پنجره م نمیبینم.من میخوام کل پنجره م پاک بشه تا بتونم یک پنجره دیگه باز کنم.ممنون میشم راهنماییم بفرمایید.
    در پایان اگر از دوستان یک مثال دو پنجره ای داشته باشند لطف کنند و اینجا قرار بدن تا با شکل کلی کار آشنا بشیم.
    ویرایش توسط omid_2132 : 25-09-2017 در ساعت 18:47

  22. #536
    کاربر علاقه مند omid_2132 آواتار ها
    تاریخ عضویت
    Jul 2011
    نوشته ها
    86
    تشکر
    89
    تشکر شده 55 بار در 18 پست

    پیش فرض

    نقل قول نوشته اصلی توسط omid_2132 نمایش پست ها
    طبق فرمایشاتتون حتما باید یک پنجره بسته بشه تا امکان باز شدن پنجره دیگر میسر شود.ولی وقتی من از کد زیر استفاده میکنم
    کد:
    case ID_CHECKBOX_0: // Notifications sent by 'Checkbox'
         switch(NCode) {
           case WM_NOTIFICATION_CLICKED:
             hItem = WM_GetDialogItem(pMsg->hWin, ID_CHECKBOX_0);
             CHECKBOX_SetBoxBkColor(hItem,GUI_RED,1);
             WM_DeleteWindow(hItem);
    فقط یک قسمت مثلا اگه تو تابع چک باکس قرار داده باشم فقط قسمت چک باکس از بین میره و بقیه window باقی میمونه که طبیعیه چون آخرین مقدار hItem رو با ID_CHECKBOX_0 تو برنامه خودم جایگداری کرده بودم.
    وقتی هم از
    کد:
    hItem = WM_GetDialogItem(pMsg->hWin, ID_WINDOW_0);
    WM_DeleteWindow(hItem);
    استفاده میکنم هیچ تغییری در پنجره م نمیبینم.من میخوام کل پنجره م پاک بشه تا بتونم یک پنجره دیگه باز کنم.ممنون میشم راهنماییم بفرمایید.
    در پایان اگر از دوستان یک مثال دو پنجره ای داشته باشند لطف کنند و اینجا قرار بدن تا با شکل کلی کار آشنا بشیم.
    ظاهرا با فرمان WM_DeleteWindow میشه پنجره رو بست ولی چطور به کار میره رو ندونستم.البته من غیر فعالش کردم وقتی فعالش میکنم پنجره delete مبشه ولی در حین کار برنامه نمیتونم به کار ببرمش.

    کد:
    void MainTask(void)
    {
    	 WM_HWIN Test;
    	 GUI_Init();
    	 Test=Createexample1();
    	 //WM_DeleteWindow(Test);
    	 while (1)
    	  {
           GUI_Delay(100);
          }
    }

  23. #537
    مدیر انجمن yraeisi آواتار ها
    تاریخ عضویت
    Sep 2012
    نام
    یوسف رئیسی
    نوشته ها
    222
    تشکر
    9
    تشکر شده 182 بار در 100 پست

    پیش فرض

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

    1. چک کنید اگه پنجره ی جدید قبلا ساخته شده .اول اون رو حذف کنید( با دستور wm_delete ) و مجددا پنجره رو بسازید.

    2. یا پنجره رو فقط یک بار بسازید و وقتی بهش نیاز ندارید hide کنید و وقتی نیاز دارید show کنید.
    3-یا وقتی میخواید یه پنجره جدید باز کنید پنجره فعلی رو delete کنید
    خب معلومه پنجره ای که delete بشه دیگه قابل استفاده نیست

    ویرایش توسط yraeisi : 27-09-2017 در ساعت 09:10
    Hardware & Software designer
    Telegram:@y_r_z

  24. تشکرها از این نوشته :


  25. #538
    کاربر علاقه مند omid_2132 آواتار ها
    تاریخ عضویت
    Jul 2011
    نوشته ها
    86
    تشکر
    89
    تشکر شده 55 بار در 18 پست

    پیش فرض

    نقل قول نوشته اصلی توسط yraeisi نمایش پست ها
    سلام.وقتی شما میخواهید یک پنجره جدید باز کنید و با پنجره فعلی کار ندارید اید این کار رو کنید:

    1. چک کنید اگه پنجره ی جدید قبلا ساخته شده .اول اون رو حذف کنید( با دستور wm_delete ) و مجددا پنجره رو بسازید.

    2. یا پنجره رو فقط یک بار بسازید و وقتی بهش نیاز ندارید hide کنید و وقتی نیاز دارید show کنید.
    3-یا وقتی میخواید یه پنجره جدید باز کنید پنجره فعلی رو delete کنید
    خب معلومه پنجره ای که delete بشه دیگه قابل استفاده نیست

    ممنون جناب آقای رییسی که به سوالم پاسخ میدید و تشکر از زحماتی که برای آماده کردن سی دی آموزشی کشیدید.
    اگه براتون ممکن باشه یک مثال ساده با 2 پنجره مثل مثال صفحه 887 از pdf قرار بدین تا با محل و ترتیب استفاده تابع WM_DeleteWindow یا WM_ShowWindow آشنا بشیم.من خیلی جاها سرچ کردم مثالها گویا نبودن.
    منظورم اینه که تغییرات باید هم تو تابع main.c و هم تو تابع dlg.c داده بشه؟
    برا باز کردن دو پنجره تو guibuilder در قسمت save دو تابع ذخیره میشود که چگونه فراخونی میشوند ظاهرا نکاتی دارند که در قالب یک مثال ساده میتوان جواب سوالها را یافت.
    ویرایش توسط omid_2132 : 27-09-2017 در ساعت 15:01

  26. #539
    کاربر علاقه مند omid_2132 آواتار ها
    تاریخ عضویت
    Jul 2011
    نوشته ها
    86
    تشکر
    89
    تشکر شده 55 بار در 18 پست

    پیش فرض

    نقل قول نوشته اصلی توسط omid_2132 نمایش پست ها
    ممنون جناب آقای رییسی که به سوالم پاسخ میدید و تشکر از زحماتی که برای آماده کردن سی دی آموزشی کشیدید.
    اگه براتون ممکن باشه یک مثال ساده با 2 پنجره مثل مثال صفحه 887 از pdf قرار بدین تا با محل و ترتیب استفاده تابع WM_DeleteWindow یا WM_ShowWindow آشنا بشیم.من خیلی جاها سرچ کردم مثالها گویا نبودن.
    منظورم اینه که تغییرات باید هم تو تابع main.c و هم تو تابع dlg.c داده بشه؟
    برا باز کردن دو پنجره تو guibuilder در قسمت save دو تابع ذخیره میشود که چگونه فراخونی میشوند ظاهرا نکاتی دارند که در قالب یک مثال ساده میتوان جواب سوالها را یافت.
    تقریبا یک هفته س دارم دنبال جوابم تو اینترنت میگردم ولی تا حالا جوابی نیافتم.

  27. #540
    مدیر انجمن yraeisi آواتار ها
    تاریخ عضویت
    Sep 2012
    نام
    یوسف رئیسی
    نوشته ها
    222
    تشکر
    9
    تشکر شده 182 بار در 100 پست

    پیش فرض

    نقل قول نوشته اصلی توسط omid_2132 نمایش پست ها
    تقریبا یک هفته س دارم دنبال جوابم تو اینترنت میگردم ولی تا حالا جوابی نیافتم.
    سلام.در اولین فرصت سعی میکنم یه مثال براتون بذارم.متاسفانه فعلا خیلی سرم شلوغه.شرمنده
    Hardware & Software designer
    Telegram:@y_r_z

  28. تشکرها از این نوشته :


صفحه 27 از 32 نخستنخست ... 891011121314151617181920212223242526272829303132 آخرینآخرین

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

  1. آموزش emWin
    توسط majidma3000 در انجمن LPC series (NXP)
    پاسخ: 1103
    آخرين نوشته: 30-08-2020, 23:50
  2. [آموزش] فیلم آموزش کوبی برد و برنامه نویسی لینوکس رسید!
    توسط kavir در انجمن Cortex-a8-a9 arm9-11
    پاسخ: 607
    آخرين نوشته: 15-05-2018, 17:38
  3. دانلود کتاب آموزش ساخت ربات مسیریاب
    توسط lktra در انجمن پرسش و پاسخ (نرم افزارهای تخصصی)
    پاسخ: 0
    آخرين نوشته: 14-02-2013, 17:36
  4. آموزش مسیریاب بدون میکرو
    توسط رهتازالکترونیک در انجمن مفاهیم اولیه در رباتیک
    پاسخ: 0
    آخرين نوشته: 17-08-2010, 13:40
  5. آموزش ساخت روبات مسیر یاب با atmega8
    توسط ROBOMAN در انجمن مفاهیم اولیه در رباتیک
    پاسخ: 1
    آخرين نوشته: 15-09-2009, 11:50

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

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

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