PDA

View Full Version : سوال: recompile کردن کامپوننت DBGrid در دلفی



saeediust
سه شنبه 17 مرداد 1391, 09:12 صبح
سلام
من روی یه سیستم جامع نرم افزاری کار میکنم که با دلفی 6 نوشته شده است
مشکلی که دارم اینه که تقریبا در تمامی فرم های این سامانه که حدود 300 تا 350 فرم میشه از DBGrid خود دلفی استفاده کردم
متاسفانه در این Grid میشه با استفاده از کلیدهای Ctrl+Delete اقدام به حذف ردیف های Grid کرد
حالا من میخوام جلوی این کار رو بگیرم
نمیتونم در تمامی فرم ها برم و در KeyPressEvent، جلوی این کار رو بگیرم و مجبورم سورس این کامپوننت رو دستکاری کنم
برای اینکار به Runtime Package با نام dcldb60.bpl رسیدم که این package دستکاریش کنم ولی سورس این پکیج نیست چون برای خود دلفی هستش
راه حل این مشکل چیه؟

سعید صابری
سه شنبه 17 مرداد 1391, 16:12 عصر
راحت ترین راه فکر کنم غیر فعال کردن ctrl+delete هنگام اجرای برنامت هست.
برای این کار میتونی از hook استفاده کنی جستجو کنی مطالب مورد نیازت می تونی در سایت پیدا کنی

shobair
یک شنبه 22 مرداد 1391, 18:44 عصر
سلام

خصوصیت ReadOnly رو برای DBGrid مساوی false بذار. به شرطی که نخوای مستقیم ادیت کنی.

شبیر

saeediust
یک شنبه 22 مرداد 1391, 19:05 عصر
ممنون از پاسخ هر دو بزرگوار
راه حل دوم که نشدنی هستش چون لازم هست که بعضی ها قابلیت edit هم داشته باشه، ا اون گذشته من نمیتونم 400 تا فرم رو یکی یکی باز کنم و خاصیت گرید رو دستکاری کنم!!!
در مورد راه حل اول هم دارم هنوز بررسی میکنم
خودم به راه حل خوبی رسیده بودم. فقط نمیدونم چه طور تکمیل کنم. اون هم دستکاری فایل dcldb60.bpl هستش که جزو کامپوننت های خود دلفی هستش و نمیدونم چطور سورس این پکیج رو پیدا کنم ولی میدونم میشه فقط نمیدونم چه طوری!!!

saeediust
دوشنبه 23 مرداد 1391, 09:45 صبح
کاری که من قصد دارم انجام بدم اینه که کامپوننت DBGrid خود دلفی رو تغییر بدم
DBGrid از مجموعه Borland Database Componenets هستش که سورس اون به نام DBGrid.Pas در مسیر
C:\Program Files\Borland\Delphi 6\ Sources\VCL\DBGrid.Pas
قرار داره ولی من نمیدونم چطوری این فایل رو اصلاح کنم و به دلفی بفهمونم که از فایل من استفاده کنه

سعید صابری
دوشنبه 23 مرداد 1391, 15:40 عصر
hook راحت تر و بدون دردسرتر است

saeediust
سه شنبه 24 مرداد 1391, 00:19 صبح
من یه راه ساده تر پیدا کردم
ممنون از همه دوستان