-
есть функция AnsiUpperCase. С ней все вроде понятно. А как получить вместо знака "/" знак "?", или вместо "1" знак "!" ?. т.е будто была нажата клавиша Shift.
-
А смысл? Одно дело сравнивать некий текст регистронезависимо.
-
Задача то какая? Если пользователю нужно ввести необходимый символ он и так нажмет Shift.
-
ну т.е. AnsiUpperCase такие символы не переводит?
-
> Сергей (22.11.12 22:26) [3] > ну т.е. AnsiUpperCase такие символы не переводит?
Какие - такие? Вот давай порассуждаем, ты же программист, значит должен обладать логическим мышлением. Вот есть "а" - это элемент алфавита, который может быть представлен в виде строковых и прописных элементов, в школе так учат. А теперь берем другой знак, ну например тот-же "/". В какой школе учат что ему соответствует знак вопроса?
-
да понял, просто не до конца понимал суть функции. спасибо)
-
то что ты хочешь для символов, не зависящих от раскладки делается так function CapsMode(const S: AnsiString): AnsiString;
var
Keys: TKeyboardState;
Vk: Word;
i: Integer;
Ch: DWORD;
begin
FillChar(Keys, SizeOf(Keys), 0);
Keys[VK_SHIFT] := $80;
SetLength(Result, Length(S));
for i := 1 to Length(Result) do
begin
Vk := VkKeyScanA(S[i]);
if Vk = $FFFF then RaiseLastOsError(ERROR_NO_UNICODE_TRANSLATION);
if ToAscii(LoByte(Vk), 0, Keys, @Ch, 0) <> 1 then RaiseLastOsError(ERROR_NO_UNICODE_TRANSLATION);
Result[i] := AnsiChar(Ch)
end;
end; а для зависящих в общем случае никак, потому что на компьютере может быть и не установлена украинская раскладка чтобы преобразовать из ї в Ї
-
Нет у "/" знак "?" ни верхнего, ни нижнего регистра А учитывая бардак с раскладками клавиатуры нельзя даже на нее ссылаться. Например символ "\" где только не бывал, последний раз я его обнаружил на клавише Z
-
спасибо всем, было полезно)
-
> последний раз я его обнаружил на клавише Z
это не на неэтбуках случаем?
-
> brother (24.11.2012 04:57:09) [9]
Обычная десктопная клавиатура, не 102 клавиши, эта клавиши левее Z
-
> эта клавиши левее Z
так левее Z или не левее это не важно. Если при латинском языке ввода она там же где | то соответствие всё еще есть
-
> А как получить вместо знака "/" знак "?"
С чего бы это? У меня "/" - "7" и "?" - "ß"
-
> "?" - "ß" А в нижних углах Strng? :-)
-
> Strng
нету у меня таких кнопок.
-
Извиняюсь, затесалась лишняя ;-)
|