当前位置: 首页 > 知识库问答 >
问题:

在Inno Setup Pascal Script中获取字符串的宽度和高度

韦高谊
2023-03-14

无论如何,我可以在Pascal Script中获得字符串的宽度和高度吗?

例如:

var
  S: String;

S := 'ThisIsMyStringToBeChecked'

这里我需要根据当前的字体大小和字体返回其高度和宽度。

我阅读了如何获取字符串的TextWidth(没有Canvas)?,但无法将其转换为Inno Setup Pascal代码。

我想用这个尺寸(宽度和高度)来改变< code >标签。当标题的字符串宽度超过< code>TLabel时,标题类似于< code >“太长,无法显示”,带有< code>clRed。宽度。

提前谢谢。

共有1个答案

公西俊能
2023-03-14

以下操作适用于TNewStticText(不是TLabel):

type
  TSize = record
    cx, cy: Integer;
  end;

function GetTextExtentPoint32(hdc: THandle; s: string; c: Integer;
  var Size: TSize): Boolean;
  external 'GetTextExtentPoint32W@Gdi32.dll stdcall';
function GetDC(hWnd: THandle): THandle;
  external 'GetDC@User32.dll stdcall';
function SelectObject(hdc: THandle; hgdiobj: THandle): THandle;
  external 'SelectObject@Gdi32.dll stdcall';

procedure SmartSetCaption(L: TNewStaticText; Caption: string);
var
  hdc: THandle;
  Size: TSize;
  OldFont: THandle;
begin
  hdc := GetDC(L.Handle);
  OldFont := SelectObject(hdc, L.Font.Handle);
  GetTextExtentPoint32(hdc, Caption, Length(Caption), Size);
  SelectObject(hdc, OldFont);

  if Size.cx > L.Width then
  begin
    L.Font.Color := clRed;
    L.Caption := 'Too long to display';
  end
    else
  begin
    L.ParentFont := True;
    L.Caption := Caption;
  end;
end;
 类似资料:
  • 问题内容: 是否可以在node.js中获取图像的宽度和高度(在服务器端,而不是客户端)?我需要在我正在编写的node.js库中找到图像的宽度和高度。 问题答案: 是的,这是可能的,但是您需要安装GraphicsMagick或ImageMagick。 我都用过,我可以推荐GraphicsMagick,它要快得多。 一旦安装了程序及其模块,就可以执行以下操作来获取宽度和高度。

  • 因此,我创建了一个简单的模拟,其中方块是随机产生的,随机向量和窗口边缘的反弹。 我希望它能考虑到正在调整的窗口大小。因此,如果我将窗口的尺寸从600x600改为1200x600,则新边框的方块将会弹出,而不是600x600。 我尝试执行getWidth()getHeight(),但它将返回0。因此,我将它放在pain()(因为它在window resize中被调用)方法中,并将返回值保存为局部变量

  • PDFBox的字体类PDFont中有一个名为getFontHeight的方法,听起来很简单。然而,我不太理解文档和参数代表什么。 这将获得字符的字体宽度。 参数: c-要获取宽度的字符代码。 偏移量-数组中的偏移量。长度 数据的长度。 返回:宽度为1000个文本空间单位,即333或777 在PDFBox中,这个方法是用来获取角色高度的正确方法吗?如果是的话,如何获取?字体高度和字体大小之间是否存在

  • 我是JavaFX的新手,我正在编写一个简单的登录应用程序,我想在我的web浏览器中启动它。 我如何获得web浏览器的宽度和高度?是否有一些对象用于此目的,或一个方法,我希望能够调整应用程序的大小,每当浏览器的大小改变。

  • 问题内容: 我试图在没有ImageObserver的情况下在Java中获取和的图像(通过URL)。我当前的代码是: 当我进入调试模式时,我可以看到该图像已加载,并且可以看到该图像的和,但是我似乎无法返回它们。该和方法需要的图像观察者,我没有。先感谢您。 问题答案: 您可以使用ImageIcon为您处理图像的加载。 更改 至 主要的变化是在使用,和,方法。

  • 显然,有两个方法和 是这样的: 我看了这篇文章,但它推荐了一种已弃用的方法: 如何在爪哇fx中获取标签