Application.ProcessMessages دقیقا در چه مواردی استفاده می شود؟
ممنونم
یا علی
Application.ProcessMessages دقیقا در چه مواردی استفاده می شود؟
ممنونم
یا علی
یه وقته که شما یه حلقه دارید که یه کاری رو انجام میده و مثلا 1 دقیقه طول می کشه .اونوقت برنامه تون Not Respond می شه اگه تو این حالت در هر بار اجرای حلقه یک بار Application.ProcessMessages رو کال کنی دیگه برنامه ات Not Respond نمی شه
You never know what you can do until you try
پس فقط تو حلقه ها به کار می یاد؟
ProcessMessage
وقفه ایی به برنامه در حال اجرا میدهد تا ویندوز بتونه پیغام های موجود در صف رو پردازش کنه، به همین دلیل تا حدی
باعث کند شدن برنامه میشه، اما چون ظاهر برنامه رو حفظ میکنه مورد استقبال قرار گرفته.
ProcessMessage رو فراخوانی کن تا به برنامه اجازه بده که پیغامهایی رو که در حال حاضر تو صف پیغامها هستن رو پردازش کنه. این تابع اونقدر پیغامها رو میخوانه و event های مربوطه رو call میکنه تا تموم بشن، بعدم کنترل رو دوباره به برنامه برمیگردونه.
غفلت از پردازش پیغامها فقط منجر به freez شدن برنامه می شه. و رو سیستم تاثیر نمیزاره.
تو عملهای طولانی (مثلا loop) بهتره که متناوبا call بشه تا پنجره شما سفید نشه و خودشو paint کنه.
این تابع اجازه نمیده که برنامه بیکار بمونه، درحالیکه HandleMessage اجازه میده.
ترجمه راهنمای خود Delphi بود.
آخرین ویرایش به وسیله Mahmood_M : پنج شنبه 09 دی 1389 در 21:58 عصر دلیل: ادغام دو پست