Форум: "Начинающим";
Текущий архив: 2014.08.24;
Скачать: [xml.tar.bz2];
ВнизВопрос по case of Найти похожие ветки
← →
Энтони (2013-09-29 02:14) [0]Всем привет. Есть вопрос, постараюсь его описать:
допустим есть код
case (HK1.HotKey) of
//если нажата клавиша такая то, то выполняем процедуру
1: какая то процедура
.....
end;
допустим мне нужно описать 100 условий (а может и больше, если пользователь создаст больше динамических объектов), можно ли это как то сделать, что бы не писать построчно от 1..N
← →
Туповатый © (2013-09-29 06:12) [1]
> мне нужно описать 100 условий
точно условий? или 100 вариантов ОДНОГО условия?
вообще ТЗ неполное. множество вариантов. можно создать массив процедур. можно создать обработчик объекта при создании объекта и обращаться по имени объекта.
Более точно ответить возможно при более точной формулировки задачи. Вполне возможно, что все выйдет одной строкой, типа: (Sender as TComponent) или FindComponent()
← →
Павел (2013-09-29 07:01) [2]Создаются динамические THotKey и заносятся в TList
.........
SWHotKey.Add(THotkey.Create(Form1.SWScrollBox));
SWHotKey[NumberWindow].Tag:=10+NumberWindow;
SWHotKey[NumberWindow].OnChange:=Form1.SWHotKeyOnChange;
Регистрируем глобальный хоткей с индефикатором клавиши "к"
procedure TForm1.SWHotKeyOnChange(Sender: TObject);
var k:integer;
begin
k:=THotKey(Sender).Tag;
RegHotKey(SWHotKey[k-10].HotKey, k);
end;
Если нажата клавиша с идентификатором к то
procedure TForm1.WMHotKey(var Msg:TWMHotKey);
begin
Beep;
case Msg.HotKey of
1: MouseClick();
.....
//С 10+ идут динамически созданные хоткеи
10:ShowWindow1(SWEdit[0].Text);
end;
end;
← →
Leonid Troyanovsky © (2013-09-29 10:39) [3]
> Энтони (29.09.13 02:14)
> можно ли это как то сделать, что бы не писать построчно
RTFM: TActionList.
--
Regards, LVT.
← →
Павел (2013-09-30 14:59) [4]TActionList
не понял) если только это намёк на создании действий в компоненте ActionList
, но они будут действительны без приставок cntrl shift, т.е. при нажатии комбинации cntrl + клавиша в другой проге, наша прога этого не увидит, поэтому я через RegisterHotkey регаю эти комбинации
← →
Rouse_ © (2013-09-30 15:36) [5]т.е. ты хочешь забрать зарегистрированные другими программами штатные HotKey-и на себя? А пользователь это хочет? :)
← →
Павел (2013-09-30 15:49) [6]у пользователя нет выбора) я на самом деле не знаю, задача в идеале такая, что допустим пример при нажатии cntrl+R моя и вторая (чужая) прога это видела (а так да, моя прога отбирает этот хоткей)
а чтобы через THotkey видеть в чужых окнах нажатие комбинаций cntrl+клавиша, я другого выхода не увидел и сделал так
← →
Inovet © (2013-09-30 16:13) [7]> [6] Павел (30.09.13 15:49)
> у пользователя нет выбора
Ненавижу такие программы. Даже в которых отключить можно, но по умолчанию включено, падают низко в рейтинге, а где отклучить нельзя - падают в корзину
← →
Туповатый © (2013-09-30 16:18) [8]а мне нравится. без всяких там соплей, как сказано, так и будет. И это есть стиль - ОС тоже особо не повыбирать.
← →
Rouse_ © (2013-09-30 22:36) [9]Посмотри Мюнгхаузена. Там есть здравая мысль: "все глупости совершаются с умным выражением лица"
← →
Туповатый © (2013-09-30 22:47) [10]не люблю крылатые выражения. я лично неоднократно совершал глупости с тупым выражением лица, да и с прочими выражениями тоже. проще говоря: я совершал некоторые действия с различным выражением лица, некоторые из которых (действий) в последствии определялись как глупость.
И вообще, определение "глупости" как некоего неумного действия не перманентно и может в дальнейшем перейти в "он знал!"
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2014.08.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c