PDA

View Full Version : نشان دادن پیغام در ورود و خروج از فیلدهای DBGrid



Mahdi_S_T
جمعه 27 آذر 1383, 20:45 عصر
1- چگونه میتوان مثلا در هنگام ورود به فیلد دوم از DBGrid2 پیغام شماره یک و هنگام خروج از آن پیغام شماره دو نمایش داده شود

2- چگونه میتوان فهمید که مثلا فیلد شماره سه در DBgrid خالی است یا مقداری در آن نوشته شده

vcldeveloper
شنبه 28 آذر 1383, 03:30 صبح
چگونه میتوان فهمید که مثلا فیلد شماره سه در DBgrid خالی است یا مقداری در آن نوشته شده



if DBGrid1.Columns[2].Field.AsString = '' then
{Do Something}



چگونه میتوان مثلا در هنگام ورود به فیلد دوم از DBGrid2 پیغام شماره یک و هنگام خروج از آن پیغام شماره دو نمایش داده شود
می تونی از رویدادهای OnColEnter و OnColExit استفاده کنی. برای مثال:


procedure TForm1.DBGrid1ColExit(Sender: TObject);
begin
// Check if selected field of dataset is the second field
if (Sender as TDBGrid).SelectedField.Index = 1 then
{Show a message}
end;

Mahdi_S_T
شنبه 28 آذر 1383, 21:02 عصر
میرم تست کنم . :kaf:
واقعا از صمیم قلب برای شما آرزوی موفقیت می کنم :موفق: :flower:

Mahdi_S_T
یک شنبه 29 آذر 1383, 09:29 صبح
نقل قول:
چگونه میتوان فهمید که مثلا فیلد شماره سه در DBgrid خالی است یا مقداری در آن نوشته شده




if DBGrid1.Columns[2].Field.AsString = '' then
{Do Something}


من اینو تست کردم و کار می کرد اما وقتی که یکبار وارد فیلد بشیم و چیزی بنویسیم و پاک کنیم حالا که فیلد خالی است ولی این کد دیگر کار نمی کند( با انکه از Trim هم استفاده کردم)
لطفا راهنمایی بفرمایید :گیج:

vcldeveloper
دوشنبه 30 آذر 1383, 03:21 صبح
من اینو تست کردم و کار می کرد اما وقتی که یکبار وارد فیلد بشیم و چیزی بنویسیم و پاک کنیم حالا که فیلد خالی است ولی این کد دیگر کار نمی کند( با انکه از Trim هم استفاده کردم)
علتش اینه که در کد بالا مقدار فیلد بانک اطلاعاتی خونده میشه . اگر فیلد رو پاک هم کنید تا زمانی که تغییرات را در بانک اطلاعاتی ذخیره (post) نکنید و یا رکورد جاری را تغییر ندید مقدار فیلد داخل بانک اطلاعاتی تغییری نمیکنه.
می تونید در OnColExit کدی قرار بدید که با خارج شدن از هر ستون اگه مقدار فیلد تغییر کرده تغییرات رو در بانک ذخیره کنه.

Sepidar
دوشنبه 30 آذر 1383, 07:26 صبح
نقل قول:
چگونه میتوان فهمید که مثلا فیلد شماره سه در DBgrid خالی است یا مقداری در آن نوشته شده




if DBGrid1.Columns[2].Field.AsString = '' then
{Do Something}


من اینو تست کردم و کار می کرد اما وقتی که یکبار وارد فیلد بشیم و چیزی بنویسیم و پاک کنیم حالا که فیلد خالی است ولی این کد دیگر کار نمی کند( با انکه از Trim هم استفاده کردم)
لطفا راهنمایی بفرمایید :گیج:
قبل از اینکه بتوانید از این روش استفاده کنید باید روی Tabelتان دابل کلیک کنید و در پنجره ای که باز می شود تمام فیلدها را به لیست اضافه کنید. حال برای اینکه بدانید فیلدتان خالی است یا نه از کد زیر استفاده کنید:

if TableFieldName.IsNull the DoSomething;