ورود

View Full Version : سوال: dbgrid



shabe_barani
شنبه 28 آذر 1388, 13:43 عصر
با سلام خدمت تمامی دوستان
میخواستم بپرسم چطور میشه در روی دیبیگرید با زدن اینتر به ستون بعد در همان سطر رفت و چنانچه در ستون آخر باشد یک سطر جدید ایجاد کند . میخوام کاربر اطلاعات را در dbgrid وارد کند و اینتر را بزند و به سون بعد برود . در رویداد key press در صورتی که اینتر زده بشه باید چه دستوری اجرا بشه که به ستون بعد بره.

hadisalahi2
شنبه 28 آذر 1388, 15:39 عصر
با سلام خدمت تمامی دوستان
میخواستم بپرسم چطور میشه در روی دیبیگرید با زدن اینتر به ستون بعد در همان سطر رفت و چنانچه در ستون آخر باشد یک سطر جدید ایجاد کند . میخوام کاربر اطلاعات را در dbgrid وارد کند و اینتر را بزند و به سون بعد برود . در رویداد key press در صورتی که اینتر زده بشه باید چه دستوری اجرا بشه که به ستون بعد بره.




DBGrid1.DataSource.DataSet.Next;

shabe_barani
سه شنبه 22 تیر 1389, 16:01 عصر
اين دستور ميره سطر بعد ميخوام بره ستون بعد بايد چه دستوري به كار ببرم.

khoshblagh
سه شنبه 22 تیر 1389, 19:15 عصر
با سلام خدمت تمامی دوستان
میخواستم بپرسم چطور میشه در روی دیبیگرید با زدن اینتر به ستون بعد در همان سطر رفت و چنانچه در ستون آخر باشد یک سطر جدید ایجاد کند . میخوام کاربر اطلاعات را در dbgrid وارد کند و اینتر را بزند و به سون بعد برود . در رویداد key press در صورتی که اینتر زده بشه باید چه دستوری اجرا بشه که به ستون بعد بره.
اگر ازdbgrideh استفاده مینمایید در آبشن دوم آن Enter As Tab را true نمائید.

mafazel
چهارشنبه 23 تیر 1389, 11:12 صبح
سلام دوست عزیز
این کار استاندارد نیست اما با روش زیر می توانید این کار را انجام بدید:
توی OnKeyPress این دستور رو بنویسید:


if Key=#13 then TStringGrid(DBGrid1).Col := TStringGrid(DBGrid1).Col+1;

توی StringGrid مشخصه های Col و Row سلول فوکوس شده رو نشون میدن
البته باید رسیدن به ستون آخر رو چک کنید.


if Key=#13 then if TStringGrid(DBGrid1).Col<TStringGrid(DBGrid1).ColCount-1
then TStringGrid(DBGrid1).Col := TStringGrid(DBGrid1).Col+1;

البته طبق خواست شما بعد از آخرین ستون باید به سطر بعد (رکورد بعد) برود و اگر آخرین رکورد بود رکورد جدید درج کند.