马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 沉思的牛 于 2013-8-20 13:58 编辑
在学习鱼C记事本遇到了几个问题现在和大家讨论一下:
问题1:小甲鱼的代码不能向下查找
为了理解小甲鱼的代码,我进行单步调试,却发现J的值和我想的不一样 赋值为0为什么会是2
J的值
到这里我就不明白小甲鱼的代码了
然后我自己写了一个查找的代码,能向下查找,大家看看//按下查找按钮
procedure TForm1.FindDialog1Find(Sender: TObject);
var
PosReturn: Integer;
begin
if startflag = 0 then //第一次进来
begin
str:=memo1.Text; //所有字符串给str
posreturn:=pos(finddialog1.FindText,str); //查找第一次出现的位置
if(posreturn =0 ) then //第一次查找不到
messagebox(handle,'查找不到','提醒',MB_OK)
else
begin
str:=copy(str,posreturn+1,length(memo1.Text)-posreturn); //原来查找过的就不要了撒
// ShowMessage(Str);
// showmessage(inttostr(PosReturn));
ptr:=ptr+PosReturn; //ptr是光标位置
Memo1.SetFocus; //设置焦点
Memo1.SelStart:= ptr-1; //设置光标位置
Memo1.SelLength:= Length(FindDialog1.FindText); //显示蓝色光标
startflag:=1; //置一
end;
end
else //第二次及其以上
begin
posreturn:=pos(finddialog1.FindText,str); //在Str里面找
str:=copy(str,posreturn+1,Length(str)-PosReturn); //更新Str
ptr:=ptr+PosReturn;
// showmessage(str);
// showmessage(inttostr(PosReturn));
// showmessage(inttostr(ptr));
If PosReturn <> 0 then // 不等于0就是能查找到
begin
Memo1.SetFocus; //设置焦点 福克斯
Memo1.SelStart:=ptr-1; //设置光标位置
Memo1.SelLength:= Length(FindDialog1.FindText); //显示蓝色光标
end
else
messagebox(handle,'查找不到','提醒',MB_OK); //查找完毕
end;
end;
//按下取消按钮
procedure TForm1.FindDialog1Close(Sender: TObject);
begin
//两个都是全局变量
startflag:=0; //这个是查找标志
ptr:=0; //这个是设置光标位置
end;
OK, 到这里自己把查找的问题解决了;
但是小甲鱼的代码没有能理解,还有调试哪里J的值,和预期的不一样,大家来解决一下;
然后我们讨论问题二
问题2:帮助里面的字符和小甲鱼视频里面不一样
看图
小甲鱼的代码 为什么我编译过后不一样?
|