我在程序中需要获取系统工作区,即要执行API函数 SystemParametersInfo。
我的做法是:
SystemParametersInfo 中的一个参数是TRect类型。
X3系统中是不能中指针的。就必须定义一个类来替换TRect。
定义如下:
TWorkArea=class(TObject)
Left,Right,Bottom,Top: Longint;
// Left,Top,Right,Bottom: Longint; 本来Delphi 中 TRect 的规定顺序是这样,但在本环境中却不一致,先这样改到。
end;
以下为调用API函数过程
var
WorkArea: TWorkArea;
begin
WorkArea:=TWorkArea.Create;
Borland.Delphi.Windows.SystemParametersInfo(Borland.Delphi.Windows.SPI_GETWORKAREA,0,WorkArea,0);
如果类按Delphi 中的顺序定义。
能够获取到 工作区域的值。但是 顺序却不一致,比如
WorkArea.Top得到的是Right的值。
我想问一下,像类似这种情况,有否好的方法来来正确地获得对象的属性值。
(这个程序中我是根据调试情况来修改的)。
或则用其他的方法来执行这个API函数。。
谢谢! |