PDA

View Full Version : کنترلها چطور به رویدادها پاسخ میدن ؟



rasool_brn
جمعه 21 دی 1386, 10:39 صبح
زمانی که رویدادی اتفاق می افته مثلا وقتی که روی یه کنترل Click می کنیم ویندوز پیامی که توصیف کننده اون رویداد هست رو به کنترلی که روش Click شده می فرسته و کنترل هم با اجرای یه روتین به این پیام پاسخ می ده.
سوال من اینه که که کنترل چطور می دونه که کدام روتین رو باید برای پاسخ دادن به رویداد اجرا کنه ؟
رویدادها در دلفی به صورت خصوصیت تعریف می شن , مثلا رویداد OnClick یک خصوصیت هست که به یک متد اشاره می کنه و مثل بقیه خصوصیات عمل می کنه با این تفاوت که نامش معرفی کننده یک رویداد هست ولی این فقط یک نام هست. آیا متدی در کلاسهای پایه تعریف شده که به کنترل بفهمونه زمانی که مثلا رویداد Click کردن رخ می ده باید روتینی رو اجرا کنه که آدرس اون به خصوصیتی از خصوصیات کنترل که نامش OnClick هست تخصیص داده شده ؟

vcldeveloper
جمعه 21 دی 1386, 18:41 عصر
در تاپیک زیر که خودتون هم توش پست زدید، به پیاده سازی CMMouseLeave و CMMouseEnter دقت کنید:
http://barnamenevis.org/forum/showthread.php?t=90832
وقتی پیام به پنجره مربوطه میرسه، Message Handler آن پیام اجرا میشه. Message Handler هم با توجه به نوع پیام رسیده، چک میکنه که آیا اصلا متدی به رویدادهای مرتبط با آن پیام اختصاص داده شده یا نه. اگر متدی اختصاص داده شده بود، آن را اجرا می کند.