用strgrid做了录入表单 要在第2列输入价格(浮点)该如和控制啊!!!

解决方案 »

  1.   

    取得行数和列数的值
    procedure TfrmMarket.stgMarketSelectCell(Sender: TObject; ACol,
      ARow: Integer; var CanSelect: Boolean);
    begin
      rowv:=arow;
      colv:=acol;
      if (colv in [1,2,3,4,7]) then
        colchange(false)
      else
        colchange(true);
    end;
    行数和列数使能函数
    procedure TfrmMarket.ColChange(AColEnabled:boolean);  procedure AColEnable;
      begin
        stgMarket.Options :=stgMarket.Options+[goEditing];
    //    stgMarket.Options :=stgMarket.Options+[goAlwaysShowEditor];
      end;  procedure AColDisable;
      begin
        stgMarket.Options :=stgMarket.Options-[goEditing];
    //    stgMarket.Options :=stgMarket.Options-[goAlwaysShowEditor];
      end;begin
      if AColEnabled=true then
        AColEnable
      else
        AColDisable;
    end;
    限制输入事件
    procedure TfrmMarket.stgMarketKeyPress(Sender: TObject; var Key: Char);
      procedure InputIntNumber;
      begin
         if not (key in ['0'..'9',#8]) then
         key:=#0;
      end;  procedure InputFloatNumber;
      begin
         if not (key in ['0'..'9','.',#8]) then
         key:=#0;
      end;
    begin
      case colv of
        5:InputIntNumber;
        6:InputFloatNumber;
      end;
    end;根据具体情况,你参考处理一下