delphi6中奇怪的问题(delphi6的又一个BUG),请留意!(0分)

  • 主题发起人 主题发起人 southbird
  • 开始时间 开始时间
S

southbird

Unregistered / Unconfirmed
GUEST, unregistred user!
运行库文件 /rtl/win/windows.pas 中定义了一个 TBitmap 类型;
tagBITMAP = packed record
bmType: Longint;
bmWidth: Longint;
bmHeight: Longint;
bmWidthBytes: Longint;
bmPlanes: Word;
bmBitsPixel: Word;
bmBits: Pointer;
end;
TBitmap = tagBITMAP;
这与VCL库 /source/VCL/graphics.pas 中的TBitmap 完全冲突;
TBitmap = class(TGraphic)
如果定义了一个Tbitmap ,然后又要引用 windows 和 graphics 单元 ,
如果引用顺序是
interface
uses graphics,windows ;
则 var
bitmap:Tbitmap;
begin
bitmap:=Tbitmap.create;
~~~~~
end;
则编译时会报错, "object or class type required"
系统将bitmap ,当作windows单元中的那个结构类型 ,而不是 graphics 单元 中
的TBitmap类;

如果将引用顺序更换一下 ;
interface
uses windows,graphics ;
则编译正常 ;
这当然与编译时取最后一个单元文件中的命名为准有关;
但delphi为何在不同单元取了重复的名称,隐藏如此容易出现的错误呢?
真是不应该啊!






 
后退
顶部