PDA

View Full Version : تنظیمات دی بی گرید DBGrid



سيد مجتبي هاشمي
چهارشنبه 06 آبان 1388, 15:56 عصر
اطلاعاتی را از بانک اطلاعاتی خوندم و تو DBGrid اونها رو نمایش دادم. حالا میخوام فقط یکی از ستونهای جدول قابلیت ویرایش داشته باشه نه همه ستونها.
لطفا راهنمایی کنید که باید چه تنظیماتی رو انجام بدم.

vcldeveloper
چهارشنبه 06 آبان 1388, 16:04 عصر
خصوصیت ReadOnly همه Columnها غیر از آن یک Column خاص را True کنید.

سيد مجتبي هاشمي
چهارشنبه 06 آبان 1388, 21:51 عصر
علی آقا با تشکر از شما. ولی میخواستم ببینم آیا خاصیت dgEditing مربوط به کل گرید رو باید False کنم یا True ؟

Mahmood_M
چهارشنبه 06 آبان 1388, 23:00 عصر
ولی میخواستم ببینم آیا خاصیت dgEditing مربوط به کل گرید رو باید False کنم یا True ؟
این خاصیت رو باید True کنید ، ولی توجه کنید که با این کار وقتی روی خانه های جدول توی ستونهای دیگه کلیک میکنید جدول ( نه بانک ! ) به حالت Edit میره که اگه میخواید این وضعیت پیش نیاد ، می تونید در رویداد OnCellClick مربوط به DBGrid چک کنید که اگه ستون انتخاب شده ستون مورد نظر بود ، خاصیت dgEditing رو True و اگر نبود False کنید ، مثال :
procedure TMainFrm.DBGridCellClick(Column: TColumn);
begin
if Column = DBGrid.Columns.Items[1] then
DBGrid.Options := DBGrid.Options + [dgEditing]
else
DBGrid.Options := DBGrid.Options - [dgEditing];
end;

موفق باشید ...

سيد مجتبي هاشمي
پنج شنبه 07 آبان 1388, 00:18 صبح
جدول ( نه بانک ! ) به حالت Edit میره

ولی من امتحان کردم روی اطلاعات بانک هم تاثیر میذاره و اطلاعات در بانک به همون شکلی که تغییر کردن ذخیره میشن.

Mahmood_M
پنج شنبه 07 آبان 1388, 07:38 صبح
ولی من امتحان کردم روی اطلاعات بانک هم تاثیر میذاره و اطلاعات در بانک به همون شکلی که تغییر کردن ذخیره میشن.
منظورم از حالت Edit این بود ، که در حالت ReadOnly اگه روی خونه ای از DBGrid کلیک کنید ، اون خونه به شکل زیر ( شکل یک ) در می یاد ، که اگر نخواید کاربر اون رو ویرایش کنه ، پس این حالت هم ایجاد نشه بهتره ، به خاطر همین بهتره که از کد بالا ، استفاده کنید ، در این صورت DBGrid به جز Select کردن رکوردی که روش کلیک شده ، دیگه عکس العملی نشون نمی ده ( شکل دو ) !
شکل یک :

http://nabegheh.parsaspace.com/Examples/DBGrid_Obtions/Editing.gif
شکل دو :

http://nabegheh.parsaspace.com/Examples/DBGrid_Obtions/NoEdit.gif

این هم یک برنامه ی نمونه : دانلود (http://nabegheh.parsaspace.com/Examples/DBGrid_Obtions/DBGrid_Obtions.rar)

نکته ی دیگه اینکه وقتی ReadOnly برابر با True باشه ، دیگه نمی تونید اطلاعات رو تغییر بدید ، تا در بانک ذخیره بشه یا نشه ...

نکته ی مهم ، در صورت استفاده از کد بالا ، در زمان ساخت برنامه مقدار dgEditing رو در تنظیمات DBGrid غیر فعال کنید ( False ) ...

موفق باشید ...