Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > TShortCut --> Char or Integer


Автор: Poseidon 13.1.2006, 20:23
В общем суть такова. Есть компонент HotKey. Нужно брать из него данные и запихнуть их в массив по отдельности. А еще лучше получить сразу код этих клавишь (что в HotKey) и запихнуть ухе их в массив (можно и TStrings как строки, это не важно). В общем не суть, если бы хоть "разбить" TShortCut на Char, то можно было бы потом воспользоваться ord. Только вот в чем проблема: как получить по отдельности клавиши из HotKey, да еще и в Char, что бы потом можно было получить их коды smile

Автор: DemoCode 13.1.2006, 20:33
Перевести TShortCut в Text с помощью функции ShortCutToText из юнита Menus.

Перевести строковый символ в Char например, так.
Код

function StrToChar(Str: string): Char;
var
  A: Integer;
begin
  if Length(Str) > 0 then
  begin
    if (Str[1] = '#') and (Length(Str) > 1) then
    begin
      try
        A := StrToInt(Copy(Str, 2, Length(Str) - 1));
      except
        A := 0;
      end;
      Result := Chr(Byte(A));
    end
    else
      Result := Str[1];
  end
  else
    Result := #0;
end;

Автор: Poseidon 13.1.2006, 20:57
С помощью ShortCutToText мы получаем тот же ShortCut, только в виде string. Т.е. все-равно будет, к примеру "Alt+Ctrl+A" Конечно можно из этой строки выдрать "А" и с помощью StrToChar перевести в Char. А как быть с Alt и подобным?

Автор: Quadr0 13.1.2006, 23:52
...

Автор: Poseidon 13.1.2006, 23:59
Цитата(Quadr0 @ 13.1.2006, 22:52 Найти цитируемый пост)

И заполняешь его нужным кол-вом горячих клавиш.
smile
Зная, я ленивый. Знаю, многим есть чем заниматься. Но я все же не представляю пока как это сделать.
Повторю, что входные данные - это строка в HotKey

Автор: Quadr0 14.1.2006, 02:43
...

Автор: Poseidon 14.1.2006, 21:52
Что такое EdKey, EdShift, EdCtrl, EdAlt?
TEdit что-ли? Зачем?

Автор: Quadr0 14.1.2006, 23:07
...

Автор: Poseidon 14.1.2006, 23:24
Хех, я в принципе так и думал, но
Цитата(Poseidon @ 13.1.2006, 19:23 Найти цитируемый пост)

что бы потом можно было получить их коды
Из строки "Alt" я не получу 18 простым IntToStr smile и ord тут не прилепишь... smile
Добавлено @ 23:36
Отбой тревоги. Победил сваю лень и разобрался. Спасибо Quadr0 [+]

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)