用的是advstringgrid2.4。
将options->goRowSelect设置为true,只能以行为单位选择。
连接了一个右键菜单,想在菜单弹出前知道当前选择的行是什么,该用什么方法?
并发现使用SHIFT键可以多选,这种情况又怎么知道呢?
--------急用呵,大虾们支个招。先谢谢了。

解决方案 »

  1.   

    PopupMenu的OnPopup事件写:ShowMessage(AdvStringGrid1.SelectedText);
      

  2.   

    ShowMessage("真的需要帮助呢,难道大家都没遇到过类似的情况?");
      

  3.   

    想在菜单弹出前知道当前选择的行是什么
    --------------
    想要行内容还是行号?行内容就是SelectedText,行号见下面代码。var i,l,h:integer;
    begin
      with AdvStringGrid1 do
        begin
          l:=Row-RowSelectCount-1;
          if l<1 then l:=1;
          h:=Row+RowSelectCount-1;
          if h>RowCount then h:=RowCount;
          for i:=l to h do
           if RowSelect[i] then ShowMessage(IntToStr(i));
        end;
    end;
      

  4.   

    直接一行一行地判断更好
    var i:integer;
    begin
      with AdvStringGrid1 do
        begin
         for i:=1 to RowCount-1 do
           if RowSelect[i] then ShowMessage(IntToStr(i));
        end;
    end;
      

  5.   

    advStringGrid.Row就是当然行号吧
    至于多选的问题你可以在一个Navigator之类的属性里设置