我的窗口中有几个TStringGrid控件,我想选中一个,之后点击按钮后,为TStringGrid中相应位置的下一行或列增加一个空行,应该怎么作,现在解决不了的问题主要如下:
1、如果我的窗口中还有其它的一些元素,我如何判定当前鼠标选中的是一个TStringGrid还是其它的(如文本框呢)
2、怎么知道鼠标在TStringGrid中行和列的位置呢
:-),刚学delphi,请大家多多指点阿

解决方案 »

  1.   

    1。如果你是写在stringgrid的click事件里,那么跟其他东动都不搭界
    2。StringGrid1.Cells[Col][Row]
      

  2.   

    1、在按钮的OnMouseMove事件中判断:
    LastControlIsStrGrid := StringGrid1.Focused;
    在OnClick中判断LastControlIsStrGrid是否等于True,如果等于True,则选中的是TStringGrid
    2、在TStringGrid的OnSelectCell事件中得到—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————
      

  3.   

    mouseDown中可以得到鼠标的(x,y),再用mouseToCell函数也可得到鼠标所在的
    行列
      

  4.   

    例如,你在窗体上有StringGrid1,StringGrid1,Edit1
    你想在StringGrid1中点击,添加一行
    procedure TForm1.StringGrid1Click(Sender: TObject);
    begin
      StringGrid1.RowCount:=StringGrid1.RowCount+1;
    end;StringGrid1.Row
    StringGrid1.Col
    为你选中的行和列
      

  5.   

    不好意思,不是这个意思啊,我想在选中的行下面添加一行(即鼠标所点的行的下面添加一行),而不是 在sgtringgrid的最后添加
      

  6.   

    这样,找到选定行,在原StringGrid的基础添一行,将选定行到StringGrid的现有行依次下移。可以解决
      

  7.   

    要是不行,
    E_Mail:[email protected]