|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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:帮助里面的字符和小甲鱼视频里面不一样
看图
小甲鱼的代码 为什么我编译过后不一样?
|
|