Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1389881868
Drowsy
2014-01-16 18:17
2014.08.24
Проблема загрузки.


11-1205861966
Vinum
2008-03-18 20:39
2014.08.24
Сделать кучу форм


2-1380648981
Иван
2013-10-01 21:36
2014.08.24
Архивирование Zipforge


15-1390768202
Юрий
2014-01-27 00:30
2014.08.24
С днем рождения ! 27 января 2014 понедельник


2-1380565915
zibert
2013-09-30 22:31
2014.08.24
pred





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский