Delphi 更改比例和布局

vsdwdz23  于 2023-01-30  发布在  其他
关注(0)|答案(2)|浏览(149)

我试图让我的程序在运行时改变布局比例。我基于一个现有的powershell脚本开发了这段代码。但是它编译了,但是在运行时,它返回了一个错误。
错误:
在动态链接库中找不到过程入口点SystemParametersInfo。

var
  Form1: TForm1;

  function SystemParametersInfo(uiAction, uiParam: UINT; pvParam: Pointer; fWinIni: UINT): BOOL; stdcall; external 'user32.dll';

implementation

{$R *.dfm}

function SetScaling: Boolean;
begin
 Result := SystemParametersInfo($000F, 125, nil, 1);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 SetScaling;
end;
ipakzgxi

ipakzgxi1#

正如上述错误中所述,user32.dll中没有名为SystemParametersInfo的函数。
有两个名称相似的函数SystemParametersInfoA,用于处理ANSI字符串的应用程序; SystemParametersInfoW,用于支持宽字符串的应用程序,如现代 Delphi 。
注:SystemParametersInfo只能在Windows CE 5.0上找到,它位于Coredll.lib库中。

aor9mmx1

aor9mmx12#

WinAPI.Windows单元定义了SystemParametersInfo函数。无需在本地定义。
调用SystemParametersInfo(第一个参数为$000F)是请求将屏幕保护程序超时设置为125秒($000F=SPI_SETSCREENSAVETIMEOUT)。
设置DPI Scaling比你在代码中尝试的要复杂一些。你可以阅读“how-to”细节here

相关问题