1 (изменено: Gutalin, 2018-01-16 21:46:17)

Тема: AHK: Как значение опции сделать зависящим от переменной

Пытался разными способами реализовать смену цвета текста в зависимости от нажимаемой клавиши.
Вот что мне нужно:
Если я нажал на Q, то текст должен стать красного цвета, а если на W - то синим. И в параметр

Gui, Add, Text, ...

засовывал и через условие пытался, но всё не работает, вот окончательный вариант:


Gui, font, vCl
Gui, Add, Text, w100 vSt,
Gui, Show, h500 w500, MyWindow
Gui, font, cDefault

q::
{
Color:="cRed"
Guicontrol,1:,Cl, %Color%
sost:=22
Guicontrol,1:,St, %sost%
}
return

W::
{
Color:="cBlue"
Guicontrol,1:,Cl, %Color%
sost:=33
Guicontrol,1:,St, %sost%
}
return

Guiclose:
ExitApp
AutoHotkey - 1.1.32.00

2

Re: AHK: Как значение опции сделать зависящим от переменной

Gutalin пишет:
Gui, font, vCl

А что эта строчка означает? Читайте Gui, Font и GuiControl, Font.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Как значение опции сделать зависящим от переменной

teadrinker, она задаёт цвет тексту

AutoHotkey - 1.1.32.00

4

Re: AHK: Как значение опции сделать зависящим от переменной

А что такое vCl?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Как значение опции сделать зависящим от переменной

teadrinker, это переменная. Нажимая, например, q я хочу дать ей значение cRed,  и текст снизу чтобы стал красным, а уже нажимая W, я хочу дать ей значение cBlue, чтобы текст снизу стал синим.

AutoHotkey - 1.1.32.00

6

Re: AHK: Как значение опции сделать зависящим от переменной

Такого синтаксиса нет. У этой команды в опциях нет переменой, которая задаётся через v.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7 (изменено: Gutalin, 2018-01-16 22:30:49)

Re: AHK: Как значение опции сделать зависящим от переменной

teadrinker

Guicontrol,1:,Cl, %Color%

А это тогда что? Или я Вас не понимаю?

AutoHotkey - 1.1.32.00

8

Re: AHK: Как значение опции сделать зависящим от переменной

Такого синтаксиса тоже нет. Как поменять цвет, написано по ссылке, которую я дал.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK: Как значение опции сделать зависящим от переменной

Если Вам не нравится, что я использовал переменную, вот:


If St = 22
Gui, font, cRed
Else if St = 33 
Gui, font, cBlue
Gui, Add, Text, w100 vSt,
Gui, Show, h500 w500, MyWindow
Gui, font, cDefault

q::
{
sost:=22
Guicontrol,1:,St, %sost%
}
return

W::
{
sost:=33
Guicontrol,1:,St, %sost%
}
return

Guiclose:
ExitApp
AutoHotkey - 1.1.32.00

10 (изменено: teadrinker, 2018-01-17 00:28:39)

Re: AHK: Как значение опции сделать зависящим от переменной

Да это не мне не нравится, это AHK-интерпретатору не нравится. Теперь непонятно:

Gutalin пишет:
If St = 22
Gui, font, cRed
Else if St = 33 
Gui, font, cBlue
Gui, Add, Text, w100 vSt,

Здесь переменной St изначально не присвоено никакого значения, она пустая, соответственно строчки

Gui, font, cRed

и

Gui, font, cBlue

никогда не выполнятся. Кроме того, St — это у Вас переменная, ассоциированная с контролом, такие переменные используются только для идентификации контрола и для получения его содержания, им присваивать какие-либо значения не принято.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

11

Re: AHK: Как значение опции сделать зависящим от переменной

Но им присваивается значение, при нажатии, и при каждом последующим значение меняется

AutoHotkey - 1.1.32.00

12

Re: AHK: Как значение опции сделать зависящим от переменной

Ну так это же при нажатии присваивается, а когда скрипт только запущен, нажатия ещё не было, и эта переменная пустая.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

13

Re: AHK: Как значение опции сделать зависящим от переменной

Как тогда быть? Занулить её в начале?

AutoHotkey - 1.1.32.00

14 (изменено: Gutalin, 2018-01-17 00:41:49)

Re: AHK: Как значение опции сделать зависящим от переменной

Так и когда только скрипт запущен текста тоже нет, пока я кнопку не нажми. Если вы про это хотите сказать. Я просто не понимаю, что переменной мешает  замениться?

AutoHotkey - 1.1.32.00

15

Re: AHK: Как значение опции сделать зависящим от переменной

В начале ей вообще никакого значения присваивать не нужно. Если хотите установить какой-то цвет текста кроме чёрного изначально, Gui, Font использовать не нужно, для этого можно просто воспользоваться опцией "c":

Gui, Add, Text, cRed w100 vSt, My Text
Gui, Show

А вот чтобы поменять цвет, команда Gui, Font понадобится:

Gui, Add, Text, cRed w100 vSt, My Text
Gui, Show

Sleep, 1000

Gui, Font, cBlue
GuiControl, Font, St
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

16

Re: AHK: Как значение опции сделать зависящим от переменной

Вот что получилось:

Gui, Add, Text, w100 vSt,
Gui, Show, h500 w500, MyWindow

q::
{
sost:=22
Guicontrol,1:,St, %sost%
Gui, font, cRed
GuiControl,Font, St
}
return

W::
{
sost:=33
Guicontrol,1:,St, %sost%
Gui, font, cBlue
GuiControl,Font, St
}
return

Guiclose:
ExitApp

Спасибо большое, что объяснили, всё работает!

AutoHotkey - 1.1.32.00