ورود

View Full Version : فراخوانی یک پروسیجر



rezamahdizadeh
یک شنبه 03 مرداد 1389, 09:15 صبح
فرض کنیم یک شی بنام q از نوع TADOQuery داریم. می خواهیم هر وقت که یکی از روالهای q.First یا q.Prior یا q.Next با q.Last که در جاهای مختلف اجرا شد یک پروسیجر مثلا بنام RefreshForm فراخوانی شود. بهنرین کار چیست؟

vcldeveloper
یک شنبه 03 مرداد 1389, 12:55 عصر
از رویدادهای خودش مثل AfterScroll و غیره، بر اساس نیازتون استفاده کنید.

rezamahdizadeh
دوشنبه 04 مرداد 1389, 21:42 عصر
AfterScroll چه موقع ترىگر مى کند؟ WillMove چطور؟

vcldeveloper
سه شنبه 05 مرداد 1389, 20:24 عصر
AfterScroll چه موقع ترىگر مى کند؟ WillMove چطور؟
اینها در Help دلفی نوشته شده؛ AfterScroll موقعی فراخوانی میشه که از یک رکورد دیگه حرکت کرده باشید.
WillMove زمانی فراخوانی میشه که میخواید از یک رکورد به رکورد دیگه ایی برید، ولی هنوز تغییر صورت نگرفته

rezamahdizadeh
جمعه 08 مرداد 1389, 08:28 صبح
نگفته منظور چه تغىىرى است من از WillMove استفاده کردم وقتى رکورد تغىىر کرد چند بار صدا زده شد که اىن خوب نبود مطلوب اىن بود که فقط ىک بار صدا زده مى شد

Felony
جمعه 08 مرداد 1389, 10:58 صبح
نگفته منظور چه تغىىرى است من از WillMove استفاده کردم وقتى رکورد تغىىر کرد چند بار صدا زده شد که اىن خوب نبود مطلوب اىن بود که فقط ىک بار صدا زده مى شد

یک بار صدا زده میشه مگر اینکه چند رکورد تغییر کنه ، در هر صورت میتونید یک Flag تعریف کنید و با یک IF چکش کنید تا فقط یک بار دستور مورد نظرتون اجرا بشه .

hamidkarimy
جمعه 15 مرداد 1389, 19:59 عصر
اگر می خواهید تغییر محل کرسر را درست مدیریت کنید باید حواستون به afterdelete , afterOpen هم باشه چون اگه دیتاست Refresh شه و فاقد رکورد باشه afterscrol اتفاق نمی افته ولی محل کرسر تغییر کرده و یا مثلا بعد از حذف رکورد هم afterscrol اتفاق نمی افته
در نتیجه مثلا اگر کاربر داره روی گرید اطلاعات رو تغییر میده و مثلا شما صفحه رو با رکورد جاری refresh می کنید ممکنه در مواردی اطلاعات با رکورد جاری مغایر باشه