dbgrid中的cell值(100分)

  • 主题发起人 主题发起人 lljyy
  • 开始时间 开始时间
L

lljyy

Unregistered / Unconfirmed
GUEST, unregistred user!
如何获得dbgrid中的某一cell值,并使此cell值等于其他几个cell值的(和或乘或除或减)。
望高手能给出代码。
 
》》如何获得dbgrid中的某一cell值
供参考--在CellClick中:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
Edit1.Text:=ADOQuery1.fieldbyname(column.FieldName).asstring;
showmessage(ADOQuery1.fieldbyname(column.FieldName).asstring);
end;
》》使此cell值等于其他几个cell值的(和或乘或除或减)。
还要先得到其他几个cell值,再与当前Cell值作运算
 
DBGrid1.Columns.Field.Text
i就是那一列的,
你可以先取得其他几个cell的值,然后再将这个值赋给它
 
DBGrid1.Columns.Field.Text可以取得i列所在当前行的值,
但如何取得具体行和列(例如位于第三行第五列的CELL)值?
 
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var
s: string;
begin
s := DBGrid1.SelectedField.AsString;
ShowMessage(s);
end;
//难道非要用Cell的方式取得值吗?
 
(3,5)
table1.moveby(2),DBGrid1.Columns[4].Field.Text
 
先把数据集移动顶端,然后使用moveby( _)移动到相应行,
然后使用columns[_]相应列,就可以获取cell内的值.
 
用下面的函数应该可以
TWrapGrid =class(TCustomGrid);
function GetColRectText(DBGrid: TDBGrid): string;
var
MCoord: TGridCoord;
P: TPoint;
begin
GetCursorPos(P);
P := DBGrid.ScreenToClient(P);
MCoord := DBGrid.MouseCoord(P.X, P.Y);
if (MCoord.X >= 0) and (MCoord.Y >= 0) then
Result := TWrapGrid(DBGrid.Text;
end;
 
我也试试
 
后退
顶部