问题一、我是N久前才碰到的,当时觉得奇怪,但是由于急着赶工,就放过了我在一个过程中定义了一个变量
var
i : Integer;(做调试用的,当时数据库有一条异常记录,我想在发生错误的时候查看这个变量的值)但是在这样一句语句居然不编译,也没有任何提示与错误信息
i := 0;
i := i+1;也就是没有出现能够被执行的蓝色小点,我只能改成如下:i : Real;
i := 0.0;
i := i + 0.1;
才能执行问题二:我在对一个TStringGrid的对象进行换行的时候类似如下语句 GrdData.Row := GrdData.Row + 1;在单步执行中,查看+1前和+1后GrdData中Row的值,没有任何变化,只想问一句,大家有没有碰到过这样的问题?唉,现在苦啊,在维护一个几十万行的程序,天天就是测试、改动、扩充。
var
i : Integer;(做调试用的,当时数据库有一条异常记录,我想在发生错误的时候查看这个变量的值)但是在这样一句语句居然不编译,也没有任何提示与错误信息
i := 0;
i := i+1;也就是没有出现能够被执行的蓝色小点,我只能改成如下:i : Real;
i := 0.0;
i := i + 0.1;
才能执行问题二:我在对一个TStringGrid的对象进行换行的时候类似如下语句 GrdData.Row := GrdData.Row + 1;在单步执行中,查看+1前和+1后GrdData中Row的值,没有任何变化,只想问一句,大家有没有碰到过这样的问题?唉,现在苦啊,在维护一个几十万行的程序,天天就是测试、改动、扩充。
i := i+1;这种 不编译很正常 因为你后面没用到它呀
如果你加上 ShowMessage(IntToStr(i)); 编译器看到这个i还有别用 那么就会对齐处理
所以说delphi的编译器还是很强的 你把其优化去掉试试应该也可以GrdData.Row := GrdData.Row + 1;
这个当然是会变的 你不要单步跟踪 用 两次ShowMessage 一次修改前的 一次修改后的。
关于第一个问题i := i+1我是放在 While Not Query.Eof do中的, 也就是在Query.Next后,我执行一次 i := i+1;然后将 I的值插入到一个文本文件中,如果异常我就查看是到了哪条记录,然后再查看记录有什么不妥。
也就是我是使用了i的,不会这样也将它优化掉吧二、确确实实没变的,因为我要对单据输完一行后换行,所以发现这个问题,用ShowMessage前后显示出来仍然为1:-(纳闷Ing,
// 你用的是什么控件?? 是DELPHI自带的么
如果不是越界的话,检查一下click方法的代码.另外,属性值赋值有条件的,不一定都能赋成功.