程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> delphi6 問題

delphi6 問題

編輯:Delphi

 

在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;


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved