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;