Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> различение знаков 
V
    Опции темы
Klose
Дата 14.8.2006, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 1.7.2006
Где: Каменск-Уральский

Репутация: нет
Всего: нет



Можно ли как-нибудь различить одинаковые знаки но набранные разными способами? Н-р:
Я могу набрать
Двоеточие   с помощью (на англиском языке) Shift+Ж и   с помощью
Shift+6.
PM MAIL ICQ   Вверх
Quadr0
Дата 14.8.2006, 22:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 11:53
  Вверх
Fedia
Дата 14.8.2006, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

Репутация: 8
Всего: 13



Проверить то можно, только нескромный вопрос: зачем ? smile
Код

procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  Id: Cardinal;
  russian, latin, curent: HKL;
begin
  //проверяем текущую раскладку
  russian:=LoadKeyboardLayout('00000419', 0);
  latin:=LoadKeyboardLayout('00000409', 0);
  Id:=GetWindowThreadProcessId(Application.Handle);
  curent:=GetKeyboardLayout(Id);

  //проверяем код нажатой клавиши
  if (key=186) and (curent=latin) then
  ShowMessage('Набрали ":" при английской раскладке клавиатуры');
  if (key=54) and (curent=russian) then
  ShowMessage('Набрали ":" при русской раскладке клавиатуры');
end;




--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
Klose
Дата 14.8.2006, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 1.7.2006
Где: Каменск-Уральский

Репутация: нет
Всего: нет



Значит, если делать "перевод" из первого случая в "Ж" и второго в "^", то будет что-то одно из них?

Упс, не видел=)

Нужно чтобы "переводилось", когда пишешь на англиской на русский вариант и наоборот.
Напрмер,чтобы "byajhvfnbrf" перевести на "информатика"

Это сообщение отредактировал(а) Klose - 14.8.2006, 23:05
PM MAIL ICQ   Вверх
Fedia
Дата 14.8.2006, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

Репутация: 8
Всего: 13



Нет, "Ж" , "^", ":" - разные символы с разным кодом.


--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
Klose
Дата 14.8.2006, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 1.7.2006
Где: Каменск-Уральский

Репутация: нет
Всего: нет



Зато ":" и ":" - одинаковые smile 

Спасибо за код.
Жаль , что он на момент нажатия.

Это сообщение отредактировал(а) Klose - 14.8.2006, 23:25
PM MAIL ICQ   Вверх
Fedia
Дата 15.8.2006, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

Репутация: 8
Всего: 13



Цитата(Klose @  14.8.2006,  23:14 Найти цитируемый пост)
Жаль , что он на момент нажатия.

Это потому, что 
Цитата(Klose @  14.8.2006,  23:14 Найти цитируемый пост)
Зато ":" и ":" - одинаковые 
 smile
Многое зависит от момента, в который тебе необходимо получить из набора символов "byajhvfnbrf" слово "информатика". Вот простой пример, реализующий эти действия в момент нажатия:
Код

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  case key of
    #121: key:=#237;
    #97: key:=#244;
    #106: key:=#238;
    #104: key:=#240;
    #118: key:=#236;
    #102: key:=#224;
    #110: key:=#242;
    #98: key:=#232;
    #114: key:=#234;
  end;
end;

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

  for i:=1 to Length(s1) do
  if ord(s1[i]) = 121 then
  s1[i]:=char(237);



--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
Klose
Дата 15.8.2006, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 1.7.2006
Где: Каменск-Уральский

Репутация: нет
Всего: нет



Замену остальных я уже сделал. Вот щас мучаюсь с такими знаками,которые повторяютсяsmile

PM MAIL ICQ   Вверх
Fedia
Дата 15.8.2006, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

Репутация: 8
Всего: 13



Цитата(Klose @  15.8.2006,  09:32 Найти цитируемый пост)
Замену остальных я уже сделал. Вот щас мучаюсь с такими знаками,которые повторяются

Не мучайся: 'Ж' меняй на ':' для английской раскладки и '^' меняй на ':' для русской. И Наоборот smile


--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
kostas
Дата 16.8.2006, 06:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 21.7.2006

Репутация: 3
Всего: 4



Или лучше не изобретать велосипед, ведь есть puntoswitcher ))
PM ICQ   Вверх
Fedia
Дата 16.8.2006, 06:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

Репутация: 8
Всего: 13



 
Цитата(kostas @  16.8.2006,  06:33 Найти цитируемый пост)
Или лучше не изобретать велосипед, ведь есть puntoswitcher ))

С этим предложением в другой раздел форума, кажись smile



--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0781 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.