ورود

View Full Version : سه پرسش درباره dbgrid



ord1383
سه شنبه 29 فروردین 1385, 06:22 صبح
با سلام خدمت دوستان سه پرسش درباره استفاده از dbgrid دارم ممنون می شوم راهنمایی نمایید :
1- میخواهم با اتمام یک رکورد و هنگان انتقال به رکورد بعدی ، برنامه پرسش کند که آیا رکورد ثبت شود و در صورت منفی بودن جواب از ثبت آن خودداری کند . این کدها را در چه رویدادی باید بنویسم .

2- میخواهم با enter کردن روی هر سلول به سلول بعدی برود .

3- چگونه به یک سلول جدول یک مقدار را نسبت دهیم . در برنامه ای که نوشته ام با کلیک کردن بر روی دکمه داخل یک سلول فرمی باز می شود و کاربر در آن فرم یک گزینه را انتخاب می کند . حال نمیدانم چگونه آن گزینه را به سلول مربوطه نسبت دهم .

mzjahromi
سه شنبه 29 فروردین 1385, 07:07 صبح
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 Then
if (DBGrid1.Columns.Count-1)>DBGrid1.SelectedIndex then
DBGrid1.SelectedIndex:=DBGrid1.SelectedIndex+1
else if Not Table1.Modified Then
Begin
Table1.Append;
DBGrid1.SelectedIndex:=0;
End
else if MessageBox(...)=IDYes Then
Begin
Table1.Post;
Table1.Append;
DBGrid1.SelectedIndex:=0;
End;
if (Key=' ') and((DBGrid1.Columns.Count-1)=DBGrid1.SelectedIndex)then
if Table1.FieldByName('Ended').AsString='*' Then
Table1.FieldByName('Ended').AsString:=''
else
Table1.FieldByName('Ended').AsString:='*';
if ((DBGrid1.Columns.Count-1)=DBGrid1.SelectedIndex)then
Key:=#0;

End;


2- میخواهم با enter کردن روی هر سلول به سلول بعدی برود .



if Key=#13 Then
if (DBGrid1.Columns.Count-1)>DBGrid1.SelectedIndex then
DBGrid1.SelectedIndex:=DBGrid1.SelectedIndex+1


1- میخواهم با اتمام یک رکورد و هنگان انتقال به رکورد بعدی ، برنامه پرسش کند که آیا رکورد ثبت شود و در صورت منفی بودن جواب از ثبت آن خودداری کند . این کدها را در چه رویدادی باید بنویسم .



else if Not Table1.Modified Then
Begin
Table1.Append;
DBGrid1.SelectedIndex:=0;
End
else if MessageBox(...)=IDYes Then
Begin
Table1.Post;
Table1.Append;
DBGrid1.SelectedIndex:=0;
End;


3- چگونه به یک سلول جدول یک مقدار را نسبت دهیم . در برنامه ای که نوشته ام با کلیک کردن بر روی دکمه داخل یک سلول فرمی باز می شود و کاربر در آن فرم یک گزینه را انتخاب می کند . حال نمیدانم چگونه آن گزینه را به سلول مربوطه نسبت دهم .


if (Key=' ') and((DBGrid1.Columns.Count-1)=DBGrid1.SelectedIndex)then
if Table1.FieldByName('Ended').AsString='*' Then
Table1.FieldByName('Ended').AsString:=''
else
Table1.FieldByName('Ended').AsString:='*';

ord1383
سه شنبه 29 فروردین 1385, 08:11 صبح
آقا محمد واقعاً ممنونم .
انشاءا... بتونم جبران کنم .

بابک زواری
سه شنبه 29 فروردین 1385, 13:01 عصر
هر تاپیک یک سوال