![]() |
|
#1
|
|||
|
|||
![]() Всем привет. Возникло небольшое затруднение при чтении справке о функциях и клавишах.
Интересуют возможности подобного плана: Команда или группа команд выполняемых при их активации. Если к примеру мне нужно выполнять одну и туже команду при нажатии разных кнопок или еще чего-то. Я так частично понял что есть отдельные команды, функции которые записываются и потом одной командой вызываются. Образный пример, суть мыслей: Код:
Функция: Строки кода... Кнопка: Строки кода... Вызов функции... // Вот именно эта команда. Выполняется код, доходит до функции, выполняет её и потом продолжает дальше. Строки кода... Вопрос о клавишах. Хочу так же сделать что бы в моей программе при нажатии клавиши или комбинации клавиш вроде Ctrl+A выполнялось заданное действие или вызывалась та самая функция. Если кто понял суть вопроса и может помочь исходным примером в виде кода, буду очень благодарен. Или дайте хотя бы правильную наводку в справке. Ибо я даже не знаю что и искать толком. Было нашел про клавиши, но там оказалось речь идет о глобальном изменении клавиш клавиатуры, совсем не то. |
#2
|
||||
|
||||
![]() 1. Можно выставить у формы
Код:
KeyPreview:=True Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
|||
|
|||
![]() Вообще, для этого сделан TActionList и, соотв., TAction.
Там можно назначить 2 комбинации горячих клавишь на одно действие. Хотя никто не мешает создать доп. TAction для других комбинаций и для него указать тот-же обработчик, что и для основного TAction. Код тут привести не получится, т.к. все настраивается в инспекторе объектов и непосредственного программирования не требует. |
#4
|
||||
|
||||
![]() Решений вообще масса, можно зарегистрировать горячую клавишу, можно описать в ресурсе, можно грузить из файла и использовать любой из ранее предложенных вариантов. Как фантазия подскажет.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
![]() Большое спасибо. С клавишами немного разобрался. По крайней мере смог назначить клавиши и задать им команды.
А с функциями ни кто не знает как быть? Или же они по другому называются... |
#6
|
||||
|
||||
![]() Честно говоря, я не понял:
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#7
|
|||
|
|||
![]() Более детально уже просто некуда.
![]() Выполняем код, и при необходимости что-то сделать ссылаемся на отдельный код. Я её назвал функцией, но возможно она не так называется. Обработав нужные данные, мы продолжаем выполнение нашего скрипта. Я читал статью про функции, но как-то оно не совсем то что нужно. Был пример с вычислением. В функцию отправлялись параметры (числа) они там вычислялись и результат возвращался. Но это не то... |
#8
|
||||
|
||||
![]() Судя по рисунку, требуется рекурсивная функция.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#9
|
|||
|
|||
![]() Цитата:
|
#10
|
||||
|
||||
![]() Функция которая вызывает сама себя определённое количество раз или завершает работу по условию.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#11
|
|||
|
|||
![]() Попробуем по другому изъяснится.
![]() |
#12
|
|||
|
|||
![]() Код:
procedure TForm1.Proc(ANum : Integer); begin case ANum Of 1 : Label1.color := $00FF0000; 2 : Label1.color := $0000FF00; 3 : Label1.color := $000000FF; end; end; procedure TForm1.Button1Click(Sender : TObject); begin Label1.Caption := 'Text'; Proc(1); end; procedure TForm1.Button1Click(Sender : TObject); begin Label1.Caption := 'Text'; Proc(2); end; |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Kaktuz (16.01.2012)
|