我是一個不規則的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」長度決定的空格的函數。對於exammple:
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。
哇!這是一個快速的答案,謝謝。它完美的工作 - 只是工作。 – jandrew 2013-02-22 16:06:04
它適合你嗎? – 2013-02-22 16:06:48
@Jandrew,如果有效,你能否「接受」我的答案?謝謝! – 2013-02-22 17:57:55