您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Delphi >> 还是这个问题,请老大帮忙,确实不会了!!!

还是这个问题,请老大帮忙,确实不会了!!!

来源:网络整理     时间:2016/8/10 20:41:13     关键词:

关于网友提出的“ 还是这个问题,请老大帮忙,确实不会了!!!”问题疑问,本网通过在网上对“ 还是这个问题,请老大帮忙,确实不会了!!!”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 还是这个问题,请老大帮忙,确实不会了!!!
描述:

在f1book控件当中,有一个button1按纽,在固定的一列A(序号),点击一下button1,在鼠标选中的单元框中,比如说这个单元框已填写了序号为1.1,那么自动在其下一行的序号列中显示序号1.1.1,再点击一下button1,那么再一行的序号列中显示为1.1.2,请教如何实现????


解决方案1:

我做了一下,大致如下
先定义一个全局变量,
var
  index:integer;
function GetCharCount(c:char;s:string):integer;
var i:integer;   //返回字符串某字符个数
begin
result:=0;
for i:=1 to length(s) do
   if c=s[i] then
      result:=result+1;
end;
function RightPos(c:char;s:string):integer;
var       //返回从右第一个字符出现的位置
i:integer;
begin
result:=0;
for i:=length(s) downto 1 do
   if c=s[i] then
      begin
      result:=i;
      break;
      end;
end;
function GetRightStr(s:string;c:char):string;  //返回某字符右边的字符串
var i:integer;
begin
result:='';
for i:=length(s) downto 1 do
   begin
   if s[i]=c then
      exit;
   result:=s[i]+result;
   end;
end;
function GetIncStr(s:string):string;//返回变化后的字符串
var
i:integer;
s1,ss:string;
begin
i:=GetCharCount('.',s);//取得小数点的个数
if i=1 then
   begin
   result:=s+'.1';
   exit;
   end;
if i=2 then
   begin
   ss:=GetRightStr(s,'.');
   delete(s,RightPos('.',s),length(ss)+1);
   i:=strtoint(ss);
   inc(i);
   result:=s+'.'+inttostr(i);
   end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
begin
str:=self.F1Book1.TextRC[index,1];//第几列你可以自己定义,我这儿假定是第1列
inc(index);
self.F1Book1.TextRC[index,1]:=GetIncStr(str);
end;
procedure TForm1.F1Book1SelChange(Sender: TObject);
begin
index:=1;//self.F1Book1.SelStartRow;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
self.F1Book1.TextRC[1,1]:='1.1';
end;


以上介绍了“ 还是这个问题,请老大帮忙,确实不会了!!!”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3197231.html

相关图片

相关文章