当前位置:编程学习 > Delphi >>

delphi6 问题

 

在delphi里可以内嵌汇编语言直接访问一些寄存器如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;


补充:软件开发 , Delphi ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,