我想在stringgrid的某个单元格失去焦点时,写一些代码,却不知在那写。
比如,当我判断是当CELL[1,4]失去焦点时要执行一些动作。不知要在那写这些代码。

解决方案 »

  1.   

    这个或许只能用Onselectcell来做,自己记录上次的焦点,选择新焦点时判断
      

  2.   


    procedure TForm1.StringGrid1Exit(Sender: TObject);
    begin
      ShowMessage(IntToStr(StringGrid1.Col)+':'+inttostr(StringGrid1.Row));
    end;
      

  3.   

    stringgrid的onSetEditText事件里写,例如下面代码判断第二行第二列是否是数字型的字符串procedure TKCSJFForm.sgdSetEditText(Sender: TObject; ACol, ARow: Integer;
      const Value: String);
    begin  try
        if (ACol=1) and (ARow=1) then
        begin
          if sgd.cells[1,1] <> '' then
          StrToFloat(sgd.cells[ACol, ARow]);
        end;
      except
        Application.MessageBox('请输入有效数值!', '警告', MB_ICONWARNING);
        exit;
      end;
     uf_jsKCF();end;
      

  4.   

    2楼能否说清楚点,如何记录上次的焦点。
    实际上我是要实现在STRINGgrid中的计算功能。比如输入CELL[1,1]=5,CELL[2,1]=6,自动计算CELL[3,1]=30
    。本来在StringGrid1KeyDown中添加判断回车时,可以实现,但有时操作时,在输入CELL[2,1]后,不是按回车,而是直接点击另一个单元格,这样CELL[3,1]就不会变化。不知各位如何解决
      

  5.   

    每次onselectcell先与上次的onselectcell记录的row,col比较,有变化就处理,处理完后记录这次的row,col以便下次处理