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