一个DBGrid,用adotable连接数据库,其中adotable和datasource都是创建的,不是拖的控件,dbgrid是直接拖了一个控件。表中有两个字段,第二个字段是字符型的,在往dbgrid上的第二个字段输值的时候,我要判断当输入的字符长度为4时,我在这4个字符后面加一个字符‘-’,如何实现??在哪个事件中实现??代码如何写???高手指点啊

解决方案 »

  1.   

    如果只输了三个字符呢?你要显示成什么样子?还要不要显示那个‘-’呢?
    如果输入的字符数大于4个那显示成什么样子?
    abcd-e
    还是abcde
      

  2.   

    不知道楼主这样做有什么用处;或者说是好处;具体说要实现这个功能其实很easy的;
    你试试下面的代码;procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
       if dbgrid1.SelectedIndex = 1 then
       begin
          if (length(dbgrid1.SelectedField.AsString) > 4) and  (not AnsiContainsStr(dbgrid1.SelectedField.AsString, '-')) then
          begin
            adoquery1.Edit;
            dbgrid1.SelectedField.Value := StuffString(dbgrid1.SelectedField.AsString, 5, 0, '-');
            adoquery1.Post;
          end;
       end;
    end;