我在SelectCell事件中编写如下代码:IF (Arow=1) OR (Arow>=xx_grid.RowCount - 4) THEN
BEGIN
   showmessage('该单元格不能被编辑­');
   xx_start.SetFocus; //将焦点移到其它控件
   xx_grid.EditorMode :=false;
END
ELSE
BEGIN
   xx_grid.EditorMode :=true;
END;以上代码只能在第一次选择不可编辑的单元时会提示'该单元格不能被编辑­',并失去焦点,但第二次重新选择该单元格时就可以编辑了,请高手指点迷津。
另外,在运行时如何用程序指定活动的单元格,如CELL(3,2)。
谢谢

解决方案 »

  1.   

    begin
      with xx_grid do
      begin
        EditorMode := not ((ARow = 1) or (ARow >= RowCount - 4));
        if not EditorMode then
        begin
          showmessage('该单元格不能被编辑­');
          xx_start.SetFocus; //将焦点移到其它控件
        end;
        CanSelect := EditorMode;
      end;
    end;如何用程序指定活动的单元格:
      xx_grid.Row := 3;
      xx_grid.Col := 3;—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————