1 (изменено: Alex_Lexon, 2017-09-29 16:22:30)

Тема: AHK: GuiControl

Здравствуйте! Расскажите пожалуйста, почему в следующем коде, после нажатия "Numpad 1" точки после "1: ..." заменяются на ничто? Почему не высвечивается "1: 2$"?
Заранее спасибо.

Gui, Add, Text, v1, 1: ...
Gui, show, W400 H400,,
return

Numpad1::
123 := 2$
GuiControl,, 1, 1: %123%
return

2

Re: AHK: GuiControl

Alex_Lexon, у вас тут сразу много ошибок. Во-первых, никогда не используйте имена переменных, состоящие из одних цифр. Такие имена зарезервированы под параметры командной строки, передаваемые скрипту при запуске. Во-вторых, если 2$ — это буквальная строка, а не переменная, то после знака := она должна быть в кавычках. В-третьих, изменяя контент текстового контрола, нужно позаботиться о том, чтобы его размер мог этот контент вместить, т. к. после GuiControl,, ControlID, NewContent размер контрола остаётся прежним, а "1: 2$", скорее всего, занимает больше места, чем "1: ...", если по умолчанию не используется моноширинный шрифт.

Gui, Font, s48
Gui, Add, Text, border, 1: ...
Gui, Add, Text, border, 1: 2$
Gui, Show
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: Alex_Lexon, 2017-09-29 18:58:50)

Re: AHK: GuiControl

teadrinker пишет:

Во-первых, никогда не используйте имена переменных, состоящие из одних цифр

Плохой пример, согласен. В основной всё "правильно"

teadrinker пишет:

Во-вторых, если 2$ — это буквальная строка, а не переменная, то после знака := она должна быть в кавычках

Хм.... Дело в том, что переменная Х (Давайте так назовём) берёт своё значение из браузера, в следующией форме: 1.29$. Потом мне надо вывести это значение на GUI, изменяя текст с помощью GuiControla. Как быть в таком случае?

4 (изменено: Alex_Lexon, 2017-09-29 19:06:30)

Re: AHK: GuiControl

Gui, Font, s48
Gui, Add, Text, vy, 1: ...
Gui, show, W400 H400,,
return

Numpad1::
x := "2$"
GuiControl,, y, 1: %x%
return

Так же не желает работать, не смотря на "".

5

Re: AHK: GuiControl

Если после := идёт переменная, то без кавычек, если буквальная строка, то в кавычках.

Alex_Lexon пишет:

Потом мне надо вывести это значение на GUI, изменяя текст с помощью GuiControla.

Лучше всего заранее позаботиться о размере (в данном случае ширине) текстового контрола, и указать её заранее при создании с запасом.

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

6 (изменено: MandarinKa02, 2017-09-29 19:07:14)

Re: AHK: GuiControl

Добавил значение "w300" - увеличивает длину текста(в пикселях)


Gui, Add, Text, vtxt w300, 1: ...
Gui, show, W400 H400,,
return

Numpad1::
var:= "2$"
GuiControl,, txt, 1: %var%
return

7

Re: AHK: GuiControl

teadrinker после := идёт функция, что выдаёт значение (Пример: 1.29$). Как мне обособлять это кавычками ""?

8

Re: AHK: GuiControl

MandarinKa02 вау, так можно, и AHK не делает так сам? Да, спасибо, теперь помогло.

9 (изменено: MandarinKa02, 2017-09-29 19:16:07)

Re: AHK: GuiControl

Alex_Lexon пишет:

после := идёт функция, что выдаёт значение (Пример: 1.29$). Как мне обособлять это кавычками ""?

Смари:
var := "123"
Тоже самое что и: var = 123
НО! var := %var2%  ;ГРУБАЯ ОШИБКА, правильно так(var := var2)
НО! var = %var2%   ;Это нормально

10

Re: AHK: GuiControl

MandarinKa02

Gui, Add, Text, vx w300, 123: ...
asddsa := % ie.document.getElementsByClassName("item-amount")[0].innerText //Тут выдаётся значение на подобие: 1.29$
GuiControl,, x, 123: %asddsa%

Расскажите, как быть?

11

Re: AHK: GuiControl

Alex_Lexon, а что здесь не так? Если у вас проблема, типо окно не открывается то стоит дописать строчку "Gui, Show"

12

Re: AHK: GuiControl

Alex_Lexon пишет:
asddsa := % ie.document.getElementsByClassName("item-amount")[0].innerText

Знак процента здесь лишний.

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

13

Re: AHK: GuiControl

MandarinKa02 "show" есть, с этим всё в порядке. Значение с долларом не показывается.
teadrinker мою проблему это не решило..

14

Re: AHK: GuiControl

Всё, спасибо, ребята. Немного дошаманил и всё заработало