DataBase에 따라 RowNumber를 알수 있는게 있지만
(Oracle의 경우 RowNum : Select RowNum,Field1 from Table....)
없는 경우에는 쉽지 않지요.
억지로 만들어 보았습니다. (RecNo를 DataSet과 비교)
Record가 많은 경우에는 사용하지 않는것이 좋을거라 생각합니다.
//====================================================================procedure TFmCtrlGrid.DBGrid1CellClick(Column: TColumn);
var lCURRECNO : integer;
var lBOOKMARK : TBookmark;
var i : integer;
begin
DbGrid1.Perform(WM_SETREDRAW,0,0);
With DbGrid1.DataSource.DataSet do
begin
lCURRECNO:=RecNo;
lBOOKMARK:=GetBookmark;
First;
for i:=0 to RecordCount-1 do
begin
if RecNo=lCURRECNO then
begin
ShowMessage(IntToStr(i+1));
Break;
end;
Next;
end;
GotoBookmark(lBOOKMARK);
end;
DataBase에 따라 RowNumber를 알수 있는게 있지만
(Oracle의 경우 RowNum : Select RowNum,Field1 from Table....)
없는 경우에는 쉽지 않지요.
억지로 만들어 보았습니다. (RecNo를 DataSet과 비교)
Record가 많은 경우에는 사용하지 않는것이 좋을거라 생각합니다.
//====================================================================procedure TFmCtrlGrid.DBGrid1CellClick(Column: TColumn);
var lCURRECNO : integer;
var lBOOKMARK : TBookmark;
var i : integer;
begin
DbGrid1.Perform(WM_SETREDRAW,0,0);
With DbGrid1.DataSource.DataSet do
begin
lCURRECNO:=RecNo;
lBOOKMARK:=GetBookmark;
First;
for i:=0 to RecordCount-1 do
begin
if RecNo=lCURRECNO then
begin
ShowMessage(IntToStr(i+1));
Break;
end;
Next;
end;
GotoBookmark(lBOOKMARK);
end;
DbGrid1.Perform(WM_SETREDRAW,1,0);
DbGrid1.Refresh;
end;
좀 무식하고 속도가 늦겠지만 원하는 답은 나올겁니다.