عدم اجرای دستورات در هنگام اجرای حلقه فور

شروع موضوع توسط peiman ‏14 فوریه 2006 در انجمن Delphi

  1. peiman

    peiman Registered User

    تاریخ عضویت:
    ‏23 فوریه 2003
    نوشته ها:
    1,544
    تشکر شده:
    20
    یه مشکلی که احتمالا شما هم مثل من دارید عدم تغییر لیبل ها هنگام عملیات هست
    مثلا من قبل از حلقه فور یه لیبل میزنم که"شروع عملیات" بعد از حلقه فور هم یه لیبل"پایان عملیات" اما برنامه با شروع حلقه لیبل اول رو انجام نمیده و بعد از پایان حلقه لیبل دوم رو نشون میده یا اصلا
    کلید کنسل میخوام یه کلید بزارم که حلقه رو کنسل کنه اما با شروع حلقه اصلا برنامه دیگه به دستورات ماوس یا صفحه کلید گوش نمی کنه
    میخواستم ببینم برای این مشکل کسی راهی سراغ داره
     
  2. Arash_j13

    Arash_j13 Registered User

    تاریخ عضویت:
    ‏18 فوریه 2005
    نوشته ها:
    778
    تشکر شده:
    2
    محل سکونت:
    مشهد
    دو راه داری باری اینکار
    راه اول (ساده)
    باید برنامه رو وادار کنی که به پیغام های رسیده از ویندوز پاسخ بده
    این کار با اضافه کردن این خط درون حلقه for انجام می شه
    application.processmessage;

    راه دوم
    این راه کمی مشکل تره و نیاز کمی تبحر داره
    باید یه برنامه چندر ریسمانی بنویسید و حلقه رو با یک ریسمان غیر از ریسمان اصلی اجرا کنید
     
  3. peiman

    peiman Registered User

    تاریخ عضویت:
    ‏23 فوریه 2003
    نوشته ها:
    1,544
    تشکر شده:
    20
    یعنی این دو راه فرقی با هم ندارن از نظر نتیجه
    ریسمان دیگه چیه چرا من تا حالا راجع بهش چیزی نشنیدم؟میشه بیشتر توضیح بدی
    شرمنده ها
     
  4. Arash_j13

    Arash_j13 Registered User

    تاریخ عضویت:
    ‏18 فوریه 2005
    نوشته ها:
    778
    تشکر شده:
    2
    محل سکونت:
    مشهد
    از نظر نتیجه خیر هر دو یکسان نتیجه می ده
    ریسمان تر جمه فارسیه thread هست (مثل اینکه زیادی فارسی حرف زدم!!!)
    هر پروسه در ویندوز یا لینوکس یک یا چند ریسمان داره که دستورات هر ریسمان در صف اجرای جداگانه قرار می گرن
    از اونجایی که دلفی ساخته شده تا برنامه ها سریع ساخته بشن برای کار با ریسمان های کلاسی در کتابخانه RTL وجود داره برای استفاده از این امکان به منو فایل و گزینه نیو و other را امتخاب کنید در برگه نیو thread object رو انتخاب کنید دلفی براتون یه کلاس می سازه هر ابجکتی از این کلاس یه ریسمان هست که می تونه یه سری دستورات رو که در متد execute هست رو اجرا کنه
     
  5. Arash_j13

    Arash_j13 Registered User

    تاریخ عضویت:
    ‏18 فوریه 2005
    نوشته ها:
    778
    تشکر شده:
    2
    محل سکونت:
    مشهد
    از نظر نتیجه خیر هر دو یکسان نتیجه می ده
    ریسمان تر جمه فارسیه thread هست (مثل اینکه زیادی فارسی حرف زدم!!!)
    هر پروسه در ویندوز یا لینوکس یک یا چند ریسمان داره که دستورات هر ریسمان در صف اجرای جداگانه قرار می گرن
    از اونجایی که دلفی ساخته شده تا برنامه ها سریع ساخته بشن برای کار با ریسمان های کلاسی در کتابخانه RTL وجود داره برای استفاده از این امکان به منو فایل و گزینه نیو و other را امتخاب کنید در برگه نیو thread object رو انتخاب کنید دلفی براتون یه کلاس می سازه هر ابجکتی از این کلاس یه ریسمان هست که می تونه یه سری دستورات رو که در متد execute هست رو اجرا کنه
     
  6. peiman

    peiman Registered User

    تاریخ عضویت:
    ‏23 فوریه 2003
    نوشته ها:
    1,544
    تشکر شده:
    20
    خیلی ممنون ولی اون راه اول بهتره
    حالا تو هر حلقه فوری که مینویسم یدونه از اون دستور رو هم قرار میدم
     
  7. footbal
zarpopخرید بک لینک