gpt4 book ai didi

delphi - 我如何知道 Delphi IDE 对象检查器在哪个监视器上?

转载 作者:行者123 更新时间:2023-12-03 18:25:24 25 4
gpt4 key购买 nike

这是对 How can I get the Delphi IDE's Main Form? 的跟进我现在有工作。

我想更进一步,将我的设计器放在与 Object Inspector 相同的表单上,对于那些使用经典的非固定桌面布局并且可能将 Object Inspector 放在与 Delphi IDE 主表单不同的屏幕上的人。

关于如何从我的设计时包中找到对象检查器所在的监视器有什么想法吗?

最佳答案

无论属性检查器是否停靠,这都应该有效,因为它会退回到停靠案例的主要形式:

function EnumWindowsProc(hwnd: HWND; lParam: LPARAM): Integer; stdcall;
var
ClassName: string;
PID: Cardinal;
begin
Result := 1;
GetWindowThreadProcessId(hwnd, PID);
if PID = GetCurrentProcessId then
begin
SetLength(ClassName, 64);
SetLength(ClassName, GetClassName(hwnd, PChar(ClassName), Length(ClassName)));
if ClassName = 'TPropertyInspector' then
begin
PHandle(lParam)^ := hwnd;
Result := 0;
end;
end;
end;

function GetPropertyInspectorMonitor: TMonitor;
var
hPropInsp: HWND;
begin
hPropInsp := 0;
EnumWindows(@EnumWindowsProc, LPARAM(@hPropInsp));
if hPropInsp = 0 then
hPropInsp := Application.MainFormHandle;
Result := Screen.MonitorFromWindow(hPropInsp);
end;

关于delphi - 我如何知道 Delphi IDE 对象检查器在哪个监视器上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/970633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com