【发布时间】:2019-09-02 10:05:21
【问题描述】:
我在高 DPI 应用程序中运行时创建的控件的定位存在问题。例如,我创建了一个标签,并想创建一个图像并将其直接放置在标签的右侧。
if USER_EMAIL <> '' then
begin
lblSummary_Email := TcxLabel.Create(pnlSummary);
with lblSummary_Email do
begin
Caption := 'E-Mail: ' + USER_EMAIL;
Top := 125;
Left := 278;
AutoSize := true;
Parent := pnlSummary;
end;
with TcxImage.Create(pnlSummary) do
begin
Width := 17;
Height := 17;
Top := lblSummary_Email .Top;
Left := lblSummary_Email .Left + lblSummary_Email .Width + 10;
Picture := imgConfirmed.Picture;
Properties.ShowFocusRect := false;
Style.BorderStyle := ebsNone;
Enabled := false;
Parent := pnlSummary;
end;
end;
图片位置不正确。这表明我在运行时设置的位置将直接转换为 High-DPI。如何避免这种情况或如何在高 DPI 应用程序中为运行时创建的控件设置正确的位置?
【问题讨论】:
-
图片正好放置在您指定的位置。您需要通过缩放坐标来添加代码以说明当前 dpi。
-
您似乎仍然在使用 DevEx 组件:您是否考虑过使用 Layout Control 来摆脱这些问题?