Autohotkey 右对齐值列表

Autohotkey 右对齐值列表,autohotkey,Autohotkey,我是一个不正规的AHK用户,通常工作在我的知识的边缘。 我通常需要把帮助文件放在手边。 我正在使用版本1.0.48.05,但遇到问题 简言之,我想使用Gui界面打印一个数值列表,以便这些数值在彼此的右对齐下排列。 我找不到一个简单或可靠的方法来做到这一点。我错过了什么。 这些值可以在0到9999之间变化。它们总是整数 ==================== 这是我尝试右对齐之前的一段代码: tabpos := 200 Gui, Add, Text, x%tabpos% y300, %value

我是一个不正规的AHK用户,通常工作在我的知识的边缘。 我通常需要把帮助文件放在手边。 我正在使用版本1.0.48.05,但遇到问题

简言之,我想使用Gui界面打印一个数值列表,以便这些数值在彼此的右对齐下排列。 我找不到一个简单或可靠的方法来做到这一点。我错过了什么。 这些值可以在0到9999之间变化。它们总是整数

====================

这是我尝试右对齐之前的一段代码:

tabpos := 200
Gui, Add, Text, x%tabpos% y300, %value1%
Gui, Add, Text, x%tabpos% y320, %value2%
Gui, Add, Text, x%tabpos% y340, %value3%
Gui, Add, Text, x%tabpos% y360, %value4%
这会在“tabpos”位置打印我的值,但都是左对齐的

我第一次尝试右对齐是使用一个函数,该函数填充了由“value”的长度确定的许多空格。例如:

Gui, Add, Text, x%tabpos% y300, % pad(6, value1)

pad(width, val)
{
   ans :=  SubStr("      ", 1, width-StrLen(val)).val
   return ans
}
但这并不能很好地发挥作用,因为一个数字的宽度与一个空格的宽度不一样(或不一样)。 我在函数中引入了一个倍数,它对不同的字体大小和字体起着不同的作用

我的第二次尝试是根据“值”的长度将“tabpos”调整若干像素。例如:

newpos := tabpos - 9*StrLen(value1)     ; Where a digit is 9 pixels wide
Gui, Add, Text, x%newpos% y300, %value1%
但这只适用于一个数字正好是9像素宽的情况。我想要一个更通用、更稳健的方法

我曾尝试使用AHK SetFormat指令,但没有取得任何效果。也许我用错了。在任何情况下,SetFormat似乎都是通过填充空格来工作的,因此它的效果与我第一次尝试(上面)时遇到的问题相同

==================

欢迎提出任何建议

我希望该方法可以使用任何字体、大小、粗体或普通字体,以及显示器的DPI。

如何

Gui, Add, Text, x100 y100 w100 Right, 123
Gui, Add, Text, x100 y120 w100 Right, 123456
Gui, Add, Text, x100 y140 w100 Right, 123456789

哇!这是一个快速的回答,谢谢。“它工作得很好——就是这份工作。”詹德鲁,如果它工作的话,你能“接受”我的答案吗?非常感谢。对不起,我迟了接受你的回答。我刚刚习惯了这个论坛。