delphi中表格单元格编辑运算符的小经验

来源:互联网 发布:网络赌钱输了好多 编辑:程序博客网 时间:2024/06/05 19:34

最近在delphi中表格单元格编辑运算符处理的时候,有一点小小的收获分享给大家


方法一:模拟键盘操作  +-*/()等功能

比如

模拟加号:keydb_event(VK_ADD,MapVirtualKey(VK_ADD,0),0,0);

模拟等号:keydb_event(VkKeyScan('='),0,0,0);

这个可能会影响系统键盘状态,比如用了shift,会影响其他程序的编辑状态。


方法二:直接编辑单元格,或者其他可以编辑的区域

procedure CellInsChar(c: Char);
var
        SelLength,curSelStart:Integer;
        lefts,rights:string;
begin    
        SelLength:=ESCtrl1.ActiveSheet.Editor.SelLength;
        curSelStart:= ESCtrl1.ActiveSheet.Editor.SelStart;
        lefts:=LeftStr(ESCtrl1.ActiveSheet.EditorText,curSelStart);
        rights:=RightStr(ESCtrl1.ActiveSheet.EditorText,SelLength-curSelStart);

        if ESCtrl1.ActiveSheet.Editing then
        begin
          ESCtrl1.ActiveSheet.EditorText :=
              lefts + c +rights;
        end
        else
        begin
          ESCtrl1.ActiveSheet.Editing := true;
          ESCtrl1.ActiveSheet.EditorText := c;
        end;
        ESCtrl1.ActiveSheet.Editor.SelStart :=curSelStart+1;
end;


CellInsChar('+');//插入加号

CellInsChar('=');//插入等号

CellInsChar('(');//插入(

CellInsChar(')');//插入)



这样就可以在光标处输入自己想输入的内容。


原创粉丝点击