Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Модератор форума: Peter, DEMBEL, YURIY  
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Раскладка клавиатуры
Раскладка клавиатуры
vokamreДата: Пн, 13 Июля 2009, 00:55 | Сообщение # 1
Доброго времени суток уважаемые.
Возможно ли программно переключать язык ввода текста,или получить информацию о том какой язык мспользуется.


Сообщение отредактировано
vokamre - Пн, 13 Июля 2009, 00:57
 
СообщениеДоброго времени суток уважаемые.
Возможно ли программно переключать язык ввода текста,или получить информацию о том какой язык мспользуется.

Автор - vokamre
Дата добавления - 13 Июля 2009 в 00:55
PeterДата: Пн, 13 Июля 2009, 21:53 | Сообщение # 2
Админ NeoBook
Quote (vokamre)
Возможно ли программно переключать язык ввода текста,или получить информацию о том какой язык мспользуется.

Штатными средствами NB, к сожалению, нет!
Если вы используете NB версии 5.6, то это все легко можно сделать при помощи функций VBScript. Правда, для этого надо ещё хоть немного знать этот самый VB.
Или только при помощи плагина...

Вот, например, как это выглядит в VB.


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (vokamre)
Возможно ли программно переключать язык ввода текста,или получить информацию о том какой язык мспользуется.

Штатными средствами NB, к сожалению, нет!
Если вы используете NB версии 5.6, то это все легко можно сделать при помощи функций VBScript. Правда, для этого надо ещё хоть немного знать этот самый VB.
Или только при помощи плагина...

Вот, например, как это выглядит в VB.


Автор - Peter
Дата добавления - 13 Июля 2009 в 21:53
vokamreДата: Чт, 16 Июля 2009, 13:19 | Сообщение # 3
Жаль.
Peter спасибо за ответ.
 
СообщениеЖаль.
Peter спасибо за ответ.

Автор - vokamre
Дата добавления - 16 Июля 2009 в 13:19
BodiДата: Чт, 16 Июля 2009, 13:39 | Сообщение # 4
Ветеран форума
vokamre, а почему вам VBScript не подходит?
Quote (vokamre)
Возможно ли программно переключать язык ввода текста, или получить информацию о том какой язык мспользуется.

Ну обычными средствами NB переключить раскладку не получиться, а вот узнать какая используется можно попробовать.
 
Сообщениеvokamre, а почему вам VBScript не подходит?
Quote (vokamre)
Возможно ли программно переключать язык ввода текста, или получить информацию о том какой язык мспользуется.

Ну обычными средствами NB переключить раскладку не получиться, а вот узнать какая используется можно попробовать.

Автор - Bodi
Дата добавления - 16 Июля 2009 в 13:39
ВадимДата: Пт, 17 Июля 2009, 09:54 | Сообщение # 5
Генератор идей
Узнать довольно просто. У меня получалось с использованием этих глобальных переменных (выдержка из справки):

[SystemLanguage]
Возвращает значение активной локализации операционной системы (язык винды, короче говоря). Например: “English (United States)”

[SystemLanguageExt]
Возвращает аббревиатурное сокращение активной языковой локализации операционной системы. Например: “ENU” для английского языка (United States).


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
СообщениеУзнать довольно просто. У меня получалось с использованием этих глобальных переменных (выдержка из справки):

[SystemLanguage]
Возвращает значение активной локализации операционной системы (язык винды, короче говоря). Например: “English (United States)”

[SystemLanguageExt]
Возвращает аббревиатурное сокращение активной языковой локализации операционной системы. Например: “ENU” для английского языка (United States).


Автор - Вадим
Дата добавления - 17 Июля 2009 в 09:54
PeterДата: Пт, 17 Июля 2009, 13:19 | Сообщение # 6
Админ NeoBook
Quote (VadimLevkin)
Узнать довольно просто. У меня получалось с использованием этих глобальных переменных (выдержка из справки):

Это переменные содержат именно те данные, которые и указаны в справке, и к текущей раскладке клавиатуры отношения не имеют.
К тому же, раскладка клавы может быть у каждого активного окна (программы) своя!

Добавлено (17 Июль 2009, 13:19)
---------------------------------------------

Quote (Bodi)
а вот узнать какая используется можно попробовать.

Только если через плагин ии VBS.
Плагин делать для такой ерунды смысла нет, а вот вернется из отпуска Дембель, попросим его наваять VB-скрипт (мне изучать его в лом, да и некогда). Преобразуем скрпит в необушную функцию.
Это будет самое разумное и экономичное решение! :)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (VadimLevkin)
Узнать довольно просто. У меня получалось с использованием этих глобальных переменных (выдержка из справки):

Это переменные содержат именно те данные, которые и указаны в справке, и к текущей раскладке клавиатуры отношения не имеют.
К тому же, раскладка клавы может быть у каждого активного окна (программы) своя!

Добавлено (17 Июль 2009, 13:19)
---------------------------------------------

Quote (Bodi)
а вот узнать какая используется можно попробовать.

Только если через плагин ии VBS.
Плагин делать для такой ерунды смысла нет, а вот вернется из отпуска Дембель, попросим его наваять VB-скрипт (мне изучать его в лом, да и некогда). Преобразуем скрпит в необушную функцию.
Это будет самое разумное и экономичное решение! :)

Автор - Peter
Дата добавления - 17 Июля 2009 в 13:19
BodiДата: Пт, 17 Июля 2009, 13:27 | Сообщение # 7
Ветеран форума
Quote (Peter)
Только если через плагин ии VBS.

Я просто видимо не понял вопроса.
Если текст (который нужно определить) вводится в программе NB, то можно определить на каком он языке, а если он вводится куда-либо ещё, или вообще не куда не вводится, то конечно просто так его не определить.
 
Сообщение
Quote (Peter)
Только если через плагин ии VBS.

Я просто видимо не понял вопроса.
Если текст (который нужно определить) вводится в программе NB, то можно определить на каком он языке, а если он вводится куда-либо ещё, или вообще не куда не вводится, то конечно просто так его не определить.

Автор - Bodi
Дата добавления - 17 Июля 2009 в 13:27
PeterДата: Пт, 17 Июля 2009, 14:38 | Сообщение # 8
Админ NeoBook
Quote (Bodi)
Я просто видимо не понял вопроса.

А возможно это я не понял вопроса:
Quote (vokamre)
получить информацию о том какой язык мспользуется.

Если при вводе текста в самом проекте, то можно подумать...
Правда, с наскока я пока не могу сообразить...

Добавлено (17 Июль 2009, 14:38)
---------------------------------------------

Quote (Peter)
Если при вводе текста в самом проекте, то можно подумать..

В принципе, да - есть способ.
Правда, над практической реализацией (чтобы было действительно удобно) нужно подумать...


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (Bodi)
Я просто видимо не понял вопроса.

А возможно это я не понял вопроса:
Quote (vokamre)
получить информацию о том какой язык мспользуется.

Если при вводе текста в самом проекте, то можно подумать...
Правда, с наскока я пока не могу сообразить...

Добавлено (17 Июль 2009, 14:38)
---------------------------------------------

Quote (Peter)
Если при вводе текста в самом проекте, то можно подумать..

В принципе, да - есть способ.
Правда, над практической реализацией (чтобы было действительно удобно) нужно подумать...

Автор - Peter
Дата добавления - 17 Июля 2009 в 14:38
BodiДата: Пт, 17 Июля 2009, 14:42 | Сообщение # 9
Ветеран форума
Можно сделать два массива, содиржащих русский и английский алфавиты. Потом из введеной строки выделить первый символ и (если это буква, а не цифра или т.п.) найти ее в этих массивах.
 
СообщениеМожно сделать два массива, содиржащих русский и английский алфавиты. Потом из введеной строки выделить первый символ и (если это буква, а не цифра или т.п.) найти ее в этих массивах.

Автор - Bodi
Дата добавления - 17 Июля 2009 в 14:42
PeterДата: Пт, 17 Июля 2009, 14:53 | Сообщение # 10
Админ NeoBook
Quote (Bodi)
Можно сделать два массива, содиржащих русский и английский алфавиты.

Я так же и подумал...
Quote (Bodi)
Потом из введеной строки выделить первый символ

Тут все сложнее - а если в процессе набора текста юзер изменил раскладку?
Нужно проверять непрерывно в ходе набора текста.
Это тоже можно, но алгоритм уже усложняется.
Вот, кстати, чем не пример в "копилку" готовых проектов-решений? ;)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (Bodi)
Можно сделать два массива, содиржащих русский и английский алфавиты.

Я так же и подумал...
Quote (Bodi)
Потом из введеной строки выделить первый символ

Тут все сложнее - а если в процессе набора текста юзер изменил раскладку?
Нужно проверять непрерывно в ходе набора текста.
Это тоже можно, но алгоритм уже усложняется.
Вот, кстати, чем не пример в "копилку" готовых проектов-решений? ;)

Автор - Peter
Дата добавления - 17 Июля 2009 в 14:53
BodiДата: Пт, 17 Июля 2009, 15:00 | Сообщение # 11
Ветеран форума
Quote (Peter)
Тут все сложнее - а если в процессе набора текста юзер изменил раскладку?

Ну дак тогда получится что юзер написал текст на двух языках??
Quote (Peter)
Вот, кстати, чем не пример в "копилку" готовых проектов-решений?

Да... можно сделать программку как toizy и Yuriy делали, Replacer называется.

PS надо еще с регистром что-то придумать...

 
Сообщение
Quote (Peter)
Тут все сложнее - а если в процессе набора текста юзер изменил раскладку?

Ну дак тогда получится что юзер написал текст на двух языках??
Quote (Peter)
Вот, кстати, чем не пример в "копилку" готовых проектов-решений?

Да... можно сделать программку как toizy и Yuriy делали, Replacer называется.

PS надо еще с регистром что-то придумать...


Автор - Bodi
Дата добавления - 17 Июля 2009 в 15:00
PeterДата: Пт, 17 Июля 2009, 15:07 | Сообщение # 12
Админ NeoBook
Quote (Bodi)
Ну дак тогда получится что юзер написал текст на двух языках??

Если обязательно требуется на каком-то одном языке, то - да, все упрощается.
Quote (Bodi)
PS надо еще с регистром что-то придумать...

Для проверки раскладки это как-раз и не нужно, а точнее - ВРЕДНО!
Но в принципе, в версии NB 5.6 команда SearchStr уже имеет опцию "с учетом регистра". ;)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (Bodi)
Ну дак тогда получится что юзер написал текст на двух языках??

Если обязательно требуется на каком-то одном языке, то - да, все упрощается.
Quote (Bodi)
PS надо еще с регистром что-то придумать...

Для проверки раскладки это как-раз и не нужно, а точнее - ВРЕДНО!
Но в принципе, в версии NB 5.6 команда SearchStr уже имеет опцию "с учетом регистра". ;)

Автор - Peter
Дата добавления - 17 Июля 2009 в 15:07
BodiДата: Пт, 17 Июля 2009, 15:10 | Сообщение # 13
Ветеран форума
Quote (Peter)
Для проверки раскладки это как-раз и не нужно, а точнее - ВРЕДНО! Но в принципе, в версии NB 5.6 команда SearchStr уже имеет опцию "с учетом регистра".

Я забыл про команды: StrUpper "" "" , StrLower "" "".
С ними все будет нормально ;)
 
Сообщение
Quote (Peter)
Для проверки раскладки это как-раз и не нужно, а точнее - ВРЕДНО! Но в принципе, в версии NB 5.6 команда SearchStr уже имеет опцию "с учетом регистра".

Я забыл про команды: StrUpper "" "" , StrLower "" "".
С ними все будет нормально ;)

Автор - Bodi
Дата добавления - 17 Июля 2009 в 15:10
PeterДата: Пт, 17 Июля 2009, 15:15 | Сообщение # 14
Админ NeoBook
Quote (Peter)
Если обязательно требуется на каком-то одном языке, то - да, все упрощается.

Хотя нет!
Нам ведь надо четко ограничить раскладку при вводе, поэтому проверять придется НЕПРЕРЫВНО!
Это типа защита от дурака... :)

Добавлено (17 Июль 2009, 15:14)
---------------------------------------------

Quote (Bodi)
Я забыл про команды: StrUpper "" "" , StrLower "" "".

А зачем они?

Добавлено (17 Июль 2009, 15:15)
---------------------------------------------
Я имею ввиду зачем они здесь?


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (Peter)
Если обязательно требуется на каком-то одном языке, то - да, все упрощается.

Хотя нет!
Нам ведь надо четко ограничить раскладку при вводе, поэтому проверять придется НЕПРЕРЫВНО!
Это типа защита от дурака... :)

Добавлено (17 Июль 2009, 15:14)
---------------------------------------------

Quote (Bodi)
Я забыл про команды: StrUpper "" "" , StrLower "" "".

А зачем они?

Добавлено (17 Июль 2009, 15:15)
---------------------------------------------
Я имею ввиду зачем они здесь?


Автор - Peter
Дата добавления - 17 Июля 2009 в 15:15
BodiДата: Пт, 17 Июля 2009, 15:23 | Сообщение # 15
Ветеран форума
Quote (Peter)
Я имею ввиду зачем они здесь?

Ну если у нас алфавит будет сохранен в нижнем регистре, а пользователь напишет свою строку в верхнем, то ведь ничего не получится, другими словами "а" и "А" не одно и тоже. Хотя может я чего-то недопонимаю?
 
Сообщение
Quote (Peter)
Я имею ввиду зачем они здесь?

Ну если у нас алфавит будет сохранен в нижнем регистре, а пользователь напишет свою строку в верхнем, то ведь ничего не получится, другими словами "а" и "А" не одно и тоже. Хотя может я чего-то недопонимаю?

Автор - Bodi
Дата добавления - 17 Июля 2009 в 15:23
Alex3AДата: Пт, 17 Июля 2009, 15:30 | Сообщение # 16
Друг клуба ММВ
А вам не кажется, что надо оставитьвсе как оно и есть?
Или прога расчитана на обезьян? :D
 
СообщениеА вам не кажется, что надо оставитьвсе как оно и есть?
Или прога расчитана на обезьян? :D

Автор - Alex3A
Дата добавления - 17 Июля 2009 в 15:30
PeterДата: Пт, 17 Июля 2009, 15:40 | Сообщение # 17
Админ NeoBook
Quote (Bodi)
другими словами "а" и "А" не одно и тоже

Для команды SearchStr это одно и то же!
Если, конечно, не задействована опция "с учетом регистра".
Quote (Alex3A)
А вам не кажется, что надо оставитьвсе как оно и есть?

В смысле?
Quote (Alex3A)
Или прога расчитана на обезьян?

На диких? :)

Мы ведь сейчас рассуждаем чисто ТЕОРЕТИЧЕСКИ!
А на каких обезьян рассчитывать прогу пусть юзер сам решает! :D


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (Bodi)
другими словами "а" и "А" не одно и тоже

Для команды SearchStr это одно и то же!
Если, конечно, не задействована опция "с учетом регистра".
Quote (Alex3A)
А вам не кажется, что надо оставитьвсе как оно и есть?

В смысле?
Quote (Alex3A)
Или прога расчитана на обезьян?

На диких? :)

Мы ведь сейчас рассуждаем чисто ТЕОРЕТИЧЕСКИ!
А на каких обезьян рассчитывать прогу пусть юзер сам решает! :D


Автор - Peter
Дата добавления - 17 Июля 2009 в 15:40
Alex3AДата: Пт, 17 Июля 2009, 16:00 | Сообщение # 18
Друг клуба ММВ
Quote (Peter)
Мы ведь сейчас рассуждаем чисто ТЕОРЕТИЧЕСКИ!

Если чисто теоритически то все возможно, не менее чем с десятоком способов :D
Надеюсь вы заметили, что когда в какой либо проге вы установите раскладку
и регистр, он сохраняется таким же при переходах с проги на прогу,
а это значит, что есть места где это все храниться, остается найти где и использовать :D
Нагуглить можно немеряно. :D
 
Сообщение
Quote (Peter)
Мы ведь сейчас рассуждаем чисто ТЕОРЕТИЧЕСКИ!

Если чисто теоритически то все возможно, не менее чем с десятоком способов :D
Надеюсь вы заметили, что когда в какой либо проге вы установите раскладку
и регистр, он сохраняется таким же при переходах с проги на прогу,
а это значит, что есть места где это все храниться, остается найти где и использовать :D
Нагуглить можно немеряно. :D

Автор - Alex3A
Дата добавления - 17 Июля 2009 в 16:00
BodiДата: Пт, 17 Июля 2009, 16:18 | Сообщение # 19
Ветеран форума
Quote (Peter)
Для команды SearchStr это одно и то же!

Ааа... просто я не сразу вас понял, вы хотите искать соответствие введенных букв и букв в массиве с помощью SearchStr? А я хотел сделать что-то вроде этого:
Code
Loop "1" "32" "[n]"
  If "[MassivRU[n]]" "=" "[text]"
   .введен русский текст
   ...
   ExitLoop
  Else
   If "[MassivEN[n]]" "=" "[text]"
    .введен английский текст
    ...
    ExitLoop
   EndIf
  EndIf
EndLoop

В переменной text первый символ введенной юзером строки.
Quote (Peter)
Нам ведь надо четко ограничить раскладку при вводе, поэтому проверять придется НЕПРЕРЫВНО!

Можно проверить все введенные символы и если этот текст и на том и на другом языке, выдать соответствующее сообщение.
 
Сообщение
Quote (Peter)
Для команды SearchStr это одно и то же!

Ааа... просто я не сразу вас понял, вы хотите искать соответствие введенных букв и букв в массиве с помощью SearchStr? А я хотел сделать что-то вроде этого:
Code
Loop "1" "32" "[n]"
  If "[MassivRU[n]]" "=" "[text]"
   .введен русский текст
   ...
   ExitLoop
  Else
   If "[MassivEN[n]]" "=" "[text]"
    .введен английский текст
    ...
    ExitLoop
   EndIf
  EndIf
EndLoop

В переменной text первый символ введенной юзером строки.
Quote (Peter)
Нам ведь надо четко ограничить раскладку при вводе, поэтому проверять придется НЕПРЕРЫВНО!

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

Автор - Bodi
Дата добавления - 17 Июля 2009 в 16:18
PeterДата: Пт, 17 Июля 2009, 16:27 | Сообщение # 20
Админ NeoBook
Quote (Alex3A)
он сохраняется таким же при переходах с проги на прогу

У меня ничего подобного не происходит - как и положено каждое окно открывается с раскладкой по умолчанию, и при смене раскадки сохраняет её на все время сеанса.

Добавлено (17 Июль 2009, 16:24)
---------------------------------------------
И при переключении с окна на окно раскладка соответственно меняется тоже.

Добавлено (17 Июль 2009, 16:27)
---------------------------------------------

Quote (Bodi)
букв в массиве

Нам тут не нужны массивы: буквы алфавита достаточно поместить в простые переменные, и уже в них искать соответствия.


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (Alex3A)
он сохраняется таким же при переходах с проги на прогу

У меня ничего подобного не происходит - как и положено каждое окно открывается с раскладкой по умолчанию, и при смене раскадки сохраняет её на все время сеанса.

Добавлено (17 Июль 2009, 16:24)
---------------------------------------------
И при переключении с окна на окно раскладка соответственно меняется тоже.

Добавлено (17 Июль 2009, 16:27)
---------------------------------------------

Quote (Bodi)
букв в массиве

Нам тут не нужны массивы: буквы алфавита достаточно поместить в простые переменные, и уже в них искать соответствия.

Автор - Peter
Дата добавления - 17 Июля 2009 в 16:27
BodiДата: Пт, 17 Июля 2009, 16:33 | Сообщение # 21
Ветеран форума
Quote (Peter)
буквы алфавита достаточно поместить в простые переменные,

Ну дак и я так предлагаю. Например переменная [MassivRU1] будет содержать букву "а", [MassivRU2] - "б" и т.д.
Вот еще пример покороче:
Code
Loop "1" "33" "[n]"
   SearchStr "[MassivRU[n]]" "[text]" "[b]"
EndLoop
If "[b]" "=" "0"
   Loop "1" "26" "[n]"
    SearchStr "[MassivEN[n]]" "[text]" "[b]"
   EndLoop
EndIf


Сообщение отредактировано
Bodi - Пт, 17 Июля 2009, 21:17
 
Сообщение
Quote (Peter)
буквы алфавита достаточно поместить в простые переменные,

Ну дак и я так предлагаю. Например переменная [MassivRU1] будет содержать букву "а", [MassivRU2] - "б" и т.д.
Вот еще пример покороче:
Code
Loop "1" "33" "[n]"
   SearchStr "[MassivRU[n]]" "[text]" "[b]"
EndLoop
If "[b]" "=" "0"
   Loop "1" "26" "[n]"
    SearchStr "[MassivEN[n]]" "[text]" "[b]"
   EndLoop
EndIf

Автор - Bodi
Дата добавления - 17 Июля 2009 в 16:33
PeterДата: Пт, 17 Июля 2009, 16:34 | Сообщение # 22
Админ NeoBook
Хотя можно и через массивы....

Добавлено (17 Июль 2009, 16:34)
---------------------------------------------
Все. сейчас работать надо. все вечером.


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
СообщениеХотя можно и через массивы....

Добавлено (17 Июль 2009, 16:34)
---------------------------------------------
Все. сейчас работать надо. все вечером.


Автор - Peter
Дата добавления - 17 Июля 2009 в 16:34
Alex3AДата: Пт, 17 Июля 2009, 18:21 | Сообщение # 23
Друг клуба ММВ
Quote (VadimLevkin)
[SystemLanguageExt]

Эта переменная только для чтения? или для записи то же?
делфя
russian := LoadKeyboardLayout('00000419', 0);
latin := LoadKeyboardLayout('00000409', 0);
SetActiveKeyboardLayout(russian);
апи
SetKeyboardLayout
GetKeyboardLayout
LoadKeyboardLayout(StrCopy(Layout,PChar (s)),KLF_ACTIVATE);
в проект можно све это влепить несколькими способами, через плагин,
выполняемый внешний файл, в конце концов, через рундлл32.ехе, написав
под его формат библу с нужной функцией...
 
Сообщение
Quote (VadimLevkin)
[SystemLanguageExt]

Эта переменная только для чтения? или для записи то же?
делфя
russian := LoadKeyboardLayout('00000419', 0);
latin := LoadKeyboardLayout('00000409', 0);
SetActiveKeyboardLayout(russian);
апи
SetKeyboardLayout
GetKeyboardLayout
LoadKeyboardLayout(StrCopy(Layout,PChar (s)),KLF_ACTIVATE);
в проект можно све это влепить несколькими способами, через плагин,
выполняемый внешний файл, в конце концов, через рундлл32.ехе, написав
под его формат библу с нужной функцией...

Автор - Alex3A
Дата добавления - 17 Июля 2009 в 18:21
PeterДата: Пт, 17 Июля 2009, 22:00 | Сообщение # 24
Админ NeoBook
Quote (Alex3A)
Эта переменная только для чтения? или для записи то же?

Только для чтения.
Да и она никакого отношения к текущей раскладке клавиатуры не имеет.
Quote (Alex3A)
делфя
russian := LoadKeyboardLayout('00000419', 0);
latin := LoadKeyboardLayout('00000409', 0);
SetActiveKeyboardLayout(russian);
апи

Ну да, в делфях все просто, но делать специально ради этого плагин как-то... %)
Просто (на мой взгляд) гораздо разумнее и изящнее решить эту же задачу через VB-функцию.

Добавлено (17 Июль 2009, 21:47)
---------------------------------------------

Quote (Bodi)
Например переменная [MassivRU1] будет содержать букву "а", [MassivRU2] - "б" и т.д.

Я сейчас попробовал живьем...
В общем, никаие массивы не нужны. все гораздо проще:
создаем две (для двух раскладок) переменные, например, [Rus] и [Eng], в них заносим алфавиты:
Code
SetVar "[Rus]""йцукенгшщзхъэждлорпавыфячсмитьбю"
SetVar "[Eng]""qwertyuioplkjhgfdsazxcvbnm"

А на событие TextChange объекта EditBox (Memo) ставим скрипт в духе:
Code
SearchStr "[TextEntry1]" "[Rus]" "[Result]"
If "[Result]" "=" "0"
   раскладка английская
EndIf

Понятно, что это совсем упрощенный вариант и его нужно дорабатывать, к тому же надо будет отслеживать каждый вводимый символ, а не все содержание объекта ввода целиком, как это получается сейчас в примере, но проблем нет, и в целом идея, думаю, ясна.
Точно также можно обработать и ввод цифр, специальных символов...

Добавлено (17 Июль 2009, 22:00)
---------------------------------------------
Но, все же я не стал бы заморачиваться с этими скриптами, а применил VB-функцию. ;)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (Alex3A)
Эта переменная только для чтения? или для записи то же?

Только для чтения.
Да и она никакого отношения к текущей раскладке клавиатуры не имеет.
Quote (Alex3A)
делфя
russian := LoadKeyboardLayout('00000419', 0);
latin := LoadKeyboardLayout('00000409', 0);
SetActiveKeyboardLayout(russian);
апи

Ну да, в делфях все просто, но делать специально ради этого плагин как-то... %)
Просто (на мой взгляд) гораздо разумнее и изящнее решить эту же задачу через VB-функцию.

Добавлено (17 Июль 2009, 21:47)
---------------------------------------------

Quote (Bodi)
Например переменная [MassivRU1] будет содержать букву "а", [MassivRU2] - "б" и т.д.

Я сейчас попробовал живьем...
В общем, никаие массивы не нужны. все гораздо проще:
создаем две (для двух раскладок) переменные, например, [Rus] и [Eng], в них заносим алфавиты:
Code
SetVar "[Rus]""йцукенгшщзхъэждлорпавыфячсмитьбю"
SetVar "[Eng]""qwertyuioplkjhgfdsazxcvbnm"

А на событие TextChange объекта EditBox (Memo) ставим скрипт в духе:
Code
SearchStr "[TextEntry1]" "[Rus]" "[Result]"
If "[Result]" "=" "0"
   раскладка английская
EndIf

Понятно, что это совсем упрощенный вариант и его нужно дорабатывать, к тому же надо будет отслеживать каждый вводимый символ, а не все содержание объекта ввода целиком, как это получается сейчас в примере, но проблем нет, и в целом идея, думаю, ясна.
Точно также можно обработать и ввод цифр, специальных символов...

Добавлено (17 Июль 2009, 22:00)
---------------------------------------------
Но, все же я не стал бы заморачиваться с этими скриптами, а применил VB-функцию. ;)


Автор - Peter
Дата добавления - 17 Июля 2009 в 22:00
ВадимДата: Вс, 19 Июля 2009, 04:40 | Сообщение # 25
Генератор идей
Спасибо, Peter, за подсказку! А то я с массивами бился... Они не бились... :)
Я как раз делаю ограничение на допустимые символы в поле ввода.
Кстати, в свойствах поля ввода есть возможность использовать маски ввода (но либо маска у меня не работает, либо я делаю что-то не так...). Буду признателен за ответ по маске. По идее, если выставить символ А, то должны разрешаться для ввода только английские буквы и цифры, но этого не происходит. Поэтому пришлось писать код.

В отношении вопроса топика код можно считать почти ответом :) - так можно узнать, какой язык исключается (воспользовавшись ключевыми его символами или всем алфавитом, как в примере ниже) :)...

К моему сожалению более короткого кода я не смог получить (а самый длинный был просто чудовищным - на 40 страниц... :D...)
Получилось (в сокращенном виде) следующее:

Code
.допустимое кол-во символов для ввода в окне ввода: 3
SubStr "[PoleVvoda]" "1" "3" "[Stroka]"

    SubStr "[Stroka]" "1" "1" "[Simvol1]"
    SubStr "[Stroka]" "2" "1" "[Simvol2]"
    SubStr "[Stroka]" "3" "1" "[Simvol3]"

.создаем переменную для латиницы и цифр
SetVar "[Latinica]" "q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m,Q,W,E,R,T,Y,U,I,O,P,A,S,D,F,G,H,J,K,L,Z,X,C,V,B,N,M,1,2,3,4,5,6,7,8,9"

.код проверки вводимых символов
If "[PoleVvoda]" "=" ""
    AlertBox "Ошибка ввода" "Поле ввода не может быть пустым."
Else
    SearchStr "[Simvol1]" "[Latinica]" "[NumStr1]"
    SearchStr "[Simvol2]" "[Latinica]" "[NumStr2]"
    SearchStr "[Simvol3]" "[Latinica]" "[NumStr3]"

    IfEx "[NumStr1] > 0 AND [NumStr2] > 0 AND [NumStr3] > 0"
       тогда все замечательно, следуем сценарию...
    Else
       IfEx "[NumStr1] = 0 OR [NumStr2] = 0 OR [NumStr3] = 0"
           AlertBox "Неверный язык ввода" "Переключите язык клавиатуры"
       EndIf
    EndIf
EndIf

Не знаю, нужно ли было указывать буквы алфавита в верхнем регистре...


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)

Сообщение отредактировано
VadimLevkin - Вс, 19 Июля 2009, 05:50
 
СообщениеСпасибо, Peter, за подсказку! А то я с массивами бился... Они не бились... :)
Я как раз делаю ограничение на допустимые символы в поле ввода.
Кстати, в свойствах поля ввода есть возможность использовать маски ввода (но либо маска у меня не работает, либо я делаю что-то не так...). Буду признателен за ответ по маске. По идее, если выставить символ А, то должны разрешаться для ввода только английские буквы и цифры, но этого не происходит. Поэтому пришлось писать код.

В отношении вопроса топика код можно считать почти ответом :) - так можно узнать, какой язык исключается (воспользовавшись ключевыми его символами или всем алфавитом, как в примере ниже) :)...

К моему сожалению более короткого кода я не смог получить (а самый длинный был просто чудовищным - на 40 страниц... :D...)
Получилось (в сокращенном виде) следующее:

Code
.допустимое кол-во символов для ввода в окне ввода: 3
SubStr "[PoleVvoda]" "1" "3" "[Stroka]"

    SubStr "[Stroka]" "1" "1" "[Simvol1]"
    SubStr "[Stroka]" "2" "1" "[Simvol2]"
    SubStr "[Stroka]" "3" "1" "[Simvol3]"

.создаем переменную для латиницы и цифр
SetVar "[Latinica]" "q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m,Q,W,E,R,T,Y,U,I,O,P,A,S,D,F,G,H,J,K,L,Z,X,C,V,B,N,M,1,2,3,4,5,6,7,8,9"

.код проверки вводимых символов
If "[PoleVvoda]" "=" ""
    AlertBox "Ошибка ввода" "Поле ввода не может быть пустым."
Else
    SearchStr "[Simvol1]" "[Latinica]" "[NumStr1]"
    SearchStr "[Simvol2]" "[Latinica]" "[NumStr2]"
    SearchStr "[Simvol3]" "[Latinica]" "[NumStr3]"

    IfEx "[NumStr1] > 0 AND [NumStr2] > 0 AND [NumStr3] > 0"
       тогда все замечательно, следуем сценарию...
    Else
       IfEx "[NumStr1] = 0 OR [NumStr2] = 0 OR [NumStr3] = 0"
           AlertBox "Неверный язык ввода" "Переключите язык клавиатуры"
       EndIf
    EndIf
EndIf

Не знаю, нужно ли было указывать буквы алфавита в верхнем регистре...


Автор - Вадим
Дата добавления - 19 Июля 2009 в 04:40
PeterДата: Вс, 19 Июля 2009, 08:53 | Сообщение # 26
Админ NeoBook
Quote (VadimLevkin)
По идее, если выставить символ А, то должны разрешаться для ввода только английские буквы и цифры,

Почему именно английские?
Согласно файла справки символ A обозначает набор символа из ДИАПАЗОНА алфавита, и пример:(A-Z, a-z or 0-9) только-лишь ПРИМЕР для английского языка.
Не убежден в том, что разработчикам NB было бы в кайф приводить примеры для всех языков, существующих на планете. :)
Quote (VadimLevkin)
Получилось (в сокращенном виде) следующее:

Какому событию назначен этот код?
Если для контроля процесса ввода, то он не будет работать.
К тому же, в нем не обработан случай (предупреждение) для меньшего количества символов.
Но, универсальности по-прежнему нет, т.к. код привязан к строгому количеству символов. ;)
Quote (VadimLevkin)
Не знаю, нужно ли было указывать буквы алфавита в верхнем регистре...

Нет, не нужно.
Quote (Peter)
Для команды SearchStr это одно и то же!

И запятые между символами тоже не нужны.

P.S. Кстати, количество IF и ENDIF почему-то совпадают... :)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (VadimLevkin)
По идее, если выставить символ А, то должны разрешаться для ввода только английские буквы и цифры,

Почему именно английские?
Согласно файла справки символ A обозначает набор символа из ДИАПАЗОНА алфавита, и пример:(A-Z, a-z or 0-9) только-лишь ПРИМЕР для английского языка.
Не убежден в том, что разработчикам NB было бы в кайф приводить примеры для всех языков, существующих на планете. :)
Quote (VadimLevkin)
Получилось (в сокращенном виде) следующее:

Какому событию назначен этот код?
Если для контроля процесса ввода, то он не будет работать.
К тому же, в нем не обработан случай (предупреждение) для меньшего количества символов.
Но, универсальности по-прежнему нет, т.к. код привязан к строгому количеству символов. ;)
Quote (VadimLevkin)
Не знаю, нужно ли было указывать буквы алфавита в верхнем регистре...

Нет, не нужно.
Quote (Peter)
Для команды SearchStr это одно и то же!

И запятые между символами тоже не нужны.

P.S. Кстати, количество IF и ENDIF почему-то совпадают... :)


Автор - Peter
Дата добавления - 19 Июля 2009 в 08:53
BodiДата: Вс, 19 Июля 2009, 11:42 | Сообщение # 27
Ветеран форума
Quote (VadimLevkin)
Спасибо, Peter, за подсказку! А то я с массивами бился... Они не бились... Я как раз делаю ограничение на допустимые символы в поле ввода.

О, я вижу вы уже взялись за этот пример? Моя лень меня когда-нибудь погубит :D
Quote (VadimLevkin)
Буду признателен за ответ по маске. По идее, если выставить символ А, то должны разрешаться для ввода только английские буквы и цифры, но этого не происходит. Поэтому пришлось писать код.

Здесь с маской не получится, только код.
Quote (VadimLevkin)
Получилось (в сокращенном виде) следующее:

А что делает ваш код? Определяет на английском ли языке написана строка? Лучше попробуйте сделать перевод из английских букв в русские (например: ghbdtn - привет), эта задача намного интересней и тут уж без универсальности никуда.
Quote (Peter)
P.S. Кстати, количество IF и ENDIF почему-то совпадают...

:D
 
Сообщение
Quote (VadimLevkin)
Спасибо, Peter, за подсказку! А то я с массивами бился... Они не бились... Я как раз делаю ограничение на допустимые символы в поле ввода.

О, я вижу вы уже взялись за этот пример? Моя лень меня когда-нибудь погубит :D
Quote (VadimLevkin)
Буду признателен за ответ по маске. По идее, если выставить символ А, то должны разрешаться для ввода только английские буквы и цифры, но этого не происходит. Поэтому пришлось писать код.

Здесь с маской не получится, только код.
Quote (VadimLevkin)
Получилось (в сокращенном виде) следующее:

А что делает ваш код? Определяет на английском ли языке написана строка? Лучше попробуйте сделать перевод из английских букв в русские (например: ghbdtn - привет), эта задача намного интересней и тут уж без универсальности никуда.
Quote (Peter)
P.S. Кстати, количество IF и ENDIF почему-то совпадают...

:D

Автор - Bodi
Дата добавления - 19 Июля 2009 в 11:42
ВадимДата: Вс, 19 Июля 2009, 16:12 | Сообщение # 28
Генератор идей
Quote (Bodi)
А что делает ваш код? Определяет на английском ли языке написана строка?

Quote (Peter)
Какому событию назначен этот код?

Quote (Peter)
Если для контроля процесса ввода, то он не будет работать.

Это Left Click по кнопке "Принять пароль". Конечно, для контроля процесса ввода он работать не будет. Передо мной стояла задача ограничить поле ввода допустимыми символами (раз уж сам язык ввода менять нельзя). После того как пользователь вводит пароль, он нажимает кнопку "Принять пароль", и если есть недопустимые символы, то программа выдаст сообщение. Поле ввода ограничено 11 символами (в примере я сделал 3, чтобы не засорять пространство.
Quote (Peter)
в нем не обработан случай (предупреждение) для меньшего количества символов.

Верно. Такая обработка ведется у меня по другому - кол-во символов программа наращивает до нужного кол-ва сама, потом только кодирует.
Quote (Peter)
И запятые между символами тоже не нужны.

Да, запятые остались от опытов с массивами, недоглядел :)

Добавлено (19 Июль 2009, 16:12)
---------------------------------------------

Quote (Peter)
Кстати, количество IF и ENDIF почему-то совпадают...

:D


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Bodi)
А что делает ваш код? Определяет на английском ли языке написана строка?

Quote (Peter)
Какому событию назначен этот код?

Quote (Peter)
Если для контроля процесса ввода, то он не будет работать.

Это Left Click по кнопке "Принять пароль". Конечно, для контроля процесса ввода он работать не будет. Передо мной стояла задача ограничить поле ввода допустимыми символами (раз уж сам язык ввода менять нельзя). После того как пользователь вводит пароль, он нажимает кнопку "Принять пароль", и если есть недопустимые символы, то программа выдаст сообщение. Поле ввода ограничено 11 символами (в примере я сделал 3, чтобы не засорять пространство.
Quote (Peter)
в нем не обработан случай (предупреждение) для меньшего количества символов.

Верно. Такая обработка ведется у меня по другому - кол-во символов программа наращивает до нужного кол-ва сама, потом только кодирует.
Quote (Peter)
И запятые между символами тоже не нужны.

Да, запятые остались от опытов с массивами, недоглядел :)

Добавлено (19 Июль 2009, 16:12)
---------------------------------------------

Quote (Peter)
Кстати, количество IF и ENDIF почему-то совпадают...

:D

Автор - Вадим
Дата добавления - 19 Июля 2009 в 16:12
BodiДата: Вс, 19 Июля 2009, 16:13 | Сообщение # 29
Ветеран форума
Все таки я решил поробовать решить эту интересную задачку, и вот что у меня получилось (см. прикрепление).
На самом деле это не так сложно как казалось. Определение языка введенного текста получилось на 19 строк, хотя если еще немного подумать, то можно существенно укоротить код. Еще я добавил перевод из английских букв в русские и наоборот.
Прошу учесть, что этот пример еще очень сырой и нуждается в дальнейшей доработки.
Прикрепления: Project.rar (2.5 Kb)


Сообщение отредактировано
Bodi - Вс, 19 Июля 2009, 20:21
 
СообщениеВсе таки я решил поробовать решить эту интересную задачку, и вот что у меня получилось (см. прикрепление).
На самом деле это не так сложно как казалось. Определение языка введенного текста получилось на 19 строк, хотя если еще немного подумать, то можно существенно укоротить код. Еще я добавил перевод из английских букв в русские и наоборот.
Прошу учесть, что этот пример еще очень сырой и нуждается в дальнейшей доработки.

Автор - Bodi
Дата добавления - 19 Июля 2009 в 16:13
ВадимДата: Пн, 20 Июля 2009, 08:31 | Сообщение # 30
Генератор идей
Bodi
Изящно! Мне очень понравилось!!!

Проясните для меня, плиз, два момента:

Code
SubStr "[[yazik_2]]" "[poisk]" "1" "[bukva]"

Зачем нужны двойные квадратные скобки (что это даёт)?

Code
SetVar "[result]" "[result][bukva]"

Зачем переменная rezult повторяется в собственном значении?


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)

Сообщение отредактировано
VadimLevkin - Пн, 20 Июля 2009, 08:44
 
СообщениеBodi
Изящно! Мне очень понравилось!!!

Проясните для меня, плиз, два момента:

Code
SubStr "[[yazik_2]]" "[poisk]" "1" "[bukva]"

Зачем нужны двойные квадратные скобки (что это даёт)?

Code
SetVar "[result]" "[result][bukva]"

Зачем переменная rezult повторяется в собственном значении?

Автор - Вадим
Дата добавления - 20 Июля 2009 в 08:31
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Раскладка клавиатуры
  • Страница 1 из 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск: