鱼C论坛

 找回密码
 立即注册
查看: 3504|回复: 8

[争议讨论] 鱼C记事本发现的几个问题and交作业

[复制链接]
发表于 2013-8-20 13:49:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 沉思的牛 于 2013-8-20 13:58 编辑

在学习鱼C记事本遇到了几个问题现在和大家讨论一下:
问题1:小甲鱼的代码不能向下查找
为了理解小甲鱼的代码,我进行单步调试,却发现J的值和我想的不一样  赋值为0为什么会是2

J的值

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:帮助里面的字符和小甲鱼视频里面不一样

看图 QQ截图20130819103555.jpg QQ截图20130819103634.jpg
小甲鱼的代码  为什么我编译过后不一样?


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-8-20 13:51:26 | 显示全部楼层
强烈支持楼主ing...........:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-20 14:08:00 | 显示全部楼层
没怎么接触delphi 7只能支持一下 啦(*^__^*) 嘻嘻……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-20 14:44:48 | 显示全部楼层
:dizzy:上次是科技的实力的vcd试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-21 10:04:18 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-21 10:23:47 | 显示全部楼层
只有当进入for循环,j 才会被赋值为0

第二个问题,那是系统注册的原因,看下系统属性里的注册到吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-21 11:18:26 | 显示全部楼层
comeheres 发表于 2013-8-21 10:23
只有当进入for循环,j 才会被赋值为0

第二个问题,那是系统注册的原因,看下系统属性里的注册到吧

进到了for循环里面去了的,单步的时候都进去了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-21 11:32:18 | 显示全部楼层
沉思的牛 发表于 2013-8-21 11:18
进到了for循环里面去了的,单步的时候都进去了

你的i为0

i-1就是-1

For j:=0 to -1 do

j肯定不能赋值了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-21 12:03:28 | 显示全部楼层
comeheres 发表于 2013-8-21 11:32
你的i为0

i-1就是-1

谢谢  明白了
居然犯这种低级错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 07:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表