1 (изменено: RedBishep, 2018-06-28 20:17:25)

Тема: AHK: Ввод чисел в "Edit" через точку

Доброго времени суток.
Извиняюсь если данный вопрос уже был озвучен кем-то или его решение есть в "FAQ".

Подскажите или дайте кусок кода что бы:
Когда в "GUI" окне в поле "Edit" вводишь цифры они автоматический после каждой 3 цифры ставилась точка.
Пример: ввожу число 1000000 и оно так и остаётся. а надо что бы прям на глазах становилось таким 1.000.000 .
Если конечно такое возможно.

Заранее благодарен!

З.Ы. Новичёк в написание кода   походу дела учусь.

2

Re: AHK: Ввод чисел в "Edit" через точку

RedBishep пишет:

после каждой 3 цифры ставилась точка

RedBishep пишет:

надо что бы прям на глазах становилось таким 1.000.000

Смотрите, вы говорите после каждой 3 цифры, а в примере, который привели первая точка стоит после первой цифры.

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

3 (изменено: RedBishep, 2018-06-28 20:16:51)

Re: AHK: Ввод чисел в "Edit" через точку

Извиняюсь если ввёл в заблуждение. ошибся.
Вот пример кода который я использую он работает но только после нажатия кнопки.


Var1 := ee1
Result1 := RegExReplace(Var1, "\d(?=(\d{3})+$)", "$0.")

Нужно что-то наподобие только без кнопки, моментальное преобразование при написание в окне скрипта в поле "Edit".

4

Re: AHK: Ввод чисел в "Edit" через точку

RedBishep пишет:

Пример: ввожу число 1000000 и оно так и остаётся. а надо что бы прям на глазах становилось таким 1.000.000
Если конечно такое возможно

Для этого контрол должен заранее знать, какое число вы вводите. Иначе как он поймёт, где ставить точки? Но он не может этого знать, это фантастика.

5

Re: AHK: Ввод чисел в "Edit" через точку

Может, может.

Gui, Add, Edit, w150 number gSetDots
Gui, Show
Return

SetDots()  {
   static fn := Func("SetDots")
   GuiControl, -g, Edit1
   GuiControlGet, num,, Edit1
   num := RegExReplace(num, "\.")
   GuiControl,, Edit1, % RegExReplace(num, "\d(?=(\d{3})+$)", "$0.")
   Send {End}
   GuiControl, +g, Edit1, % fn
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

6 (изменено: teadrinker, 2018-06-27 17:52:00)

Re: AHK: Ввод чисел в "Edit" через точку

Или вот так, похитрее немного:

Gui, Add, Edit, w150 number hwndhEdit
obj := {h: hEdit}
obj.f := fn := Func("SetDots").Bind(obj)
GuiControl, +g, %hEdit%, % fn
Gui, Show
Return

SetDots(obj)  {
   GuiControl, -g, % obj.h
   GuiControlGet, num,, % obj.h
   num := RegExReplace(num, "\.")
   GuiControl,, % obj.h, % RegExReplace(num, "\d(?=(\d{3})+$)", "$0.")
   Send {End}
   fn := obj.f
   GuiControl, +g, % obj.h, % fn
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

7

Re: AHK: Ввод чисел в "Edit" через точку

teadrinker пишет:

Может, может.

Чего он тогда дёргается? Всё это обман.

8

Re: AHK: Ввод чисел в "Edit" через точку

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

9

Re: AHK: Ввод чисел в "Edit" через точку

YMP пишет:

Всё это обман.

Почему сразу обман? Просто небольшое волшебство.

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