PDA

View Full Version : Application.ProcessMessages دقیقا در چه مواردی استفاده می شود؟



yaas135
دوشنبه 23 آبان 1384, 12:41 عصر
Application.ProcessMessages دقیقا در چه مواردی استفاده می شود؟
ممنونم
یا علی

mzjahromi
دوشنبه 23 آبان 1384, 12:51 عصر
یه وقته که شما یه حلقه دارید که یه کاری رو انجام میده و مثلا 1 دقیقه طول می کشه .اونوقت برنامه تون Not Respond می شه اگه تو این حالت در هر بار اجرای حلقه یک بار Application.ProcessMessages رو کال کنی دیگه برنامه ات Not Respond نمی شه

yaas135
دوشنبه 23 آبان 1384, 13:59 عصر
پس فقط تو حلقه ها به کار می یاد؟

m-khorsandi
دوشنبه 23 آبان 1384, 14:25 عصر
ProcessMessage
وقفه ایی به برنامه در حال اجرا میدهد تا ویندوز بتونه پیغام های موجود در صف رو پردازش کنه، به همین دلیل تا حدی
باعث کند شدن برنامه میشه، اما چون ظاهر برنامه رو حفظ میکنه مورد استقبال قرار گرفته.

محمد میرمصطفی
سه شنبه 24 آبان 1384, 01:19 صبح
ProcessMessage رو فراخوانی کن تا به برنامه اجازه بده که پیغامهایی رو که در حال حاضر تو صف پیغامها هستن رو پردازش کنه. این تابع اونقدر پیغامها رو می‏خوانه و event های مربوطه رو call می‏کنه تا تموم بشن، بعدم کنترل رو دوباره به برنامه برمی‏گردونه.
غفلت از پردازش پیغامها فقط منجر به freez شدن برنامه می شه. و رو سیستم تاثیر نمیزاره.
تو عملهای طولانی (مثلا loop) بهتره که متناوبا call بشه تا پنجره شما سفید نشه و خودشو paint کنه.
این تابع اجازه نمی‏ده که برنامه بیکار بمونه، درحالیکه HandleMessage اجازه می‏ده.

ترجمه راهنمای خود Delphi بود.