delphi6 问题

页面导航:首页 > 软件编程 > Delphi > delphi6 问题

delphi6 问题

来源: 作者: 时间:2016-02-05 11:47 【

在delphi里可以内嵌汇编语言直接访问一些寄存器如EAX,而在delphi6里执行下面代码会跳不出循环procedure Delphi6EAXBug; // loops forever with Delphi 6vari: integer;beginfor i := 0 to 15

 

里可以内嵌汇编语言直接访问一些寄存器如EAX,而在delphi6里执行下面代码会跳不出循环

procedure Delphi6EAXBug; // loops forever with Delphi 6
var
 i: integer;
begin
 for i := 0 to 15 do
   asm
     mov eax,2
   end;
end;
解决办法
procedure Delphi6EAXBug;
var
 i: integer;
begin
 for i := 0 to 15 do
   asm
     push eax
     mov eax,2
     pop eax
   end;
end;

如果将一个int64类型的变量作为一个需要浮点数为参数的函数的参数(如:ln,sin等)会报告类型不匹配,而不会自动进行转换,如下例

var  X: Int64;  Y: Extended;begin  X := 1;  Y := Ln(X);end;
解决办法:给参数加上0.0
var  X: Int64;  Y: Extended;begin  X := 1;  Y := Ln(X+0.0);end;

一个很怪的现象,试试下面代码

1.在form上放一个TRichEdit

2.放一个TLabel

3.放一个TButton

4.在Button1的onlick事件里写下面的代码并执行

procedure TForm1.Button1Click(Sender: TObject);
begin
 Label1.Parent := RichEdit1;
 Label1.Top := 20;
 Label1.Left := 20;
 RichEdit1.Repaint;
end;


Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<