需要 AHK GUI IF 语句

问题描述 投票:0回答:1

创建了一个 AHK 计算器 GUI,当您选择复制时,它将复制所有信息以进行粘贴。我想编辑脚本以不复制该部分(如果该部分为空白)。 GUI 设置为 3 个级别,但有时我只使用 1 或 2 个级别,并且使用当前脚本,我必须在粘贴后删除空文本。我只想复制填写的级别。下面是 GUI 复制部分的代码。还附上了我使用当前脚本(左侧记事本)粘贴时当前的外观以及我希望它看起来的样子(右侧记事本)的照片示例。任何帮助将不胜感激。谢谢。

Photo Example

Copy:
CopyQC =
(
QC Level 1:
    Result: %Result1%
    Lab Range: %LRange1%
    Peer Mean: %PeerMean1%
    Peer SD: %PeerSD1%
    Peer Range: %1Low% - %1High%
    Result SDs: %Result1SD%
QC Level 2:
    Result: %Result2%
    Lab Range: %LRange2%
    Peer Mean: %PeerMean2%
    Peer SD: %PeerSD2%
    Peer Range: %2Low% - %2High%
    Result SDs: %Result2SD%
QC Level 3:
    Result: %Result3%
    Lab Range: %LRange3%
    Peer Mean: %PeerMean3%
    Peer SD: %PeerSD3%
    Peer Range: %3Low% - %3High%
    Result SDs: %Result3SD%
)
Gui, 6: Add, Edit, vCopy, %CopyQC%
Gui, 6: Show
Send, ^c
Gui, 6: Destroy
return

不了解 IF 语句或者这是否是这里的最佳方案。

if-statement user-interface autohotkey
1个回答
0
投票

此处,注释添加在带有 ; 的行尾。解释:

  1. CopyQC
    初始化为空字符串。
  2. 添加3个
    IF statements
    ,每个检查
    Result#
    是否不为空。
  3. 如果
    Result#
    不为空,则将结果连接到
    CopyQC
    变量。
  4. StringTrimRight
    删除最后一个新行。
CopyQC := ""  ; Init CopyQC
If (Result1)  ; IF Result1 NOT Empty
{
    CopyQC .= 
    (LTrim
    "QC Level 1:
        Result: " Result1 "
        Lab Range: " LRange1 "
        Peer Mean: " PeerMean1 "
        Peer SD: " PeerSD1 "
        Peer Range: " 1Low " - " 1High "
        Result SDs: " Result1SD "
    "
    )  ; Concatenate QC1 To CopyQC
}
If (Result2)  ; IF Result2 NOT Empty
{
    CopyQC .= 
    (LTrim
    "QC Level 2:
        Result: " Result2 "
        Lab Range: " LRange2 "
        Peer Mean: " PeerMean2 "
        Peer SD: " PeerSD2 "
        Peer Range: " 2Low " - " 2High "
        Result SDs: " Result2SD "
    "
    )  ; Concatenate QC2 To CopyQC
}
If (Result3)  ; IF Result3 NOT Empty
{
    CopyQC .= 
    (LTrim
    "QC Level 3:
        Result: " Result3 "
        Lab Range: " LRange3 "
        Peer Mean: " PeerMean3 "
        Peer SD: " PeerSD3 "
        Peer Range: " 3Low " - " 3High "
        Result SDs: " Result3SD "
    "
    )  ; Concatenate QC3 To CopyQC
}
StringTrimRight, CopyQC, CopyQC, 1  ; Remove Last New Line
© www.soinside.com 2019 - 2024. All rights reserved.