今天见鬼了,这个为什么一定要这行程序呢?(100分)

  • 主题发起人 主题发起人 liuind
  • 开始时间 开始时间
if (g/k=round(g/k)) and (g<>0) then li:=li+1;
asm mov ax,word ptr li end; // 加入这句就可以了!
 
var
li:integer;

if (g/k=round(g/k)) and (g<>0) then li:=li+1; //
listbox1.Items.Add(inttostr(li));  //一定要有这行,li的值才会变化,表现为jpeg才能读到变化的文件名。删除这行后,jpeg读到的图片不会变。
JPeg.LoadFromFile(li);

请先确定一下JPeg的LoadFromFile函数的参数是什么类型??
我记得好象是string,你在看看li定义的是什么类型?
下面就不用我多说了吧?
 
if (g/k=round(g/k)) and (g<>0) then li:=li+1; //
这句有错误吧 g/k 得到的是 double 类型 ,而 round 得到的是 int64 ,二者比较 永远没有结果, li 编译器可能会自动初始化,所以关键在此处 改成为

if ((g div k)=round(g/k)) and (g<>0) then li:=li+1; //
也许就ok ,如果 g 本身也是 int 类型的话 ,不用再改, 否则可能需要
g < 0.0001 这种比较吧
 
同意楼上的[:D]
 
var
li:integer;

if (g/k=round(g/k)) and (g<>0) then li:=li+1; //

JPeg.LoadFromFile(inttostr(li));
 
今天见鬼了,这个为什么一定要这行程序呢?
var
li:integer;

if (g/k=round(g/k)) and (g<>0) then li:=li+1; //
listbox1.Items.Add(inttostr(li));  //一定要有这行,li的值才会变化,表现为jpeg才能读到变化的文件名。删除这行后,jpeg读到的图片不会变。
JPeg.LoadFromFile(li);


可优化:
var
li:integer;
if (g mod k=0) and (g<>0) then li:=li+1;
JPeg.LoadFromFile(inttostr(li));
 
我记得发过分的,奇怪了。。。。。
不好意思,分太少了,参与者均有,谢谢了,工程完成了!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部