type
TMyTCustomGrid=class(TCustomGrid);procedureTForm1.DBGrid1KeyUp(Sender:TObject;varKey:Word; Shift:TShiftState);
var
R:TRect;
H:THandle;
P:PChar;
begin
with TMyTCustomGrid(DBGrid1) do
begin
R:=CellRect(Col,Row);
H:=ChildWindowFromPoint(DBGrid1.Handle,Point(R.Left,R.Top));
if H<>0 then
begin
GetMem(P,MAXBYTE+1);
SendMessage(H,WM_GETTEXT,MAXBYTE,Integer(P));
Edit1.Text:=P;
FreeMem(P);
end;
end;
end;注:要能运行呀

解决方案 »

  1.   


    class TMyTCustomGrid : public TCustomGrid
    {
    public:
        TRect __fastcall CellRect(int ACol, int ARow)
        {
            return TCustomGrid::CellRect(ACol, ARow);
        }
        __property Col;
        __property Row;
    };void __fastcall TForm1::DBGrid1KeyUp(TObject *Sender, WORD &Key,
          TShiftState Shift)
    {
        TMyTCustomGrid *Grid = (TMyTCustomGrid*)DBGrid1;
        TRect R = Grid->CellRect(Grid->Col, Grid->Row);
        HWND H = ChildWindowFromPoint(DBGrid1->Handle, TPoint(R.left, R.top));
        if (H)
        {
            char *p = new char[MAXBYTE + 1];
            SendMessage(H, WM_GETTEXT, MAXBYTE, (DWORD)p);
            Edit1->Text = p;
            delete[] p;
        }
    }