![]() |
|
|
#1
|
|||
|
|||
|
Собственно хочется сделать следующее:
1. При нажатии на кнопку изменялась на ней надпись и действие (единственный нормальный вариант, который нашел - это изменение caption'а и изменение метода. 2. 3 секунды она должна быть не доступна (делается через поток, но проблема в том, что не знаю как узнать какая кнопка нажата и поэтому код получается большим) Таких кнопок на форме не одна, а несколько. И тут же задам еще вопрос: как включать и выключать процедуру? Нужно к примеру следующее Код:
Procedure Start (start: boolean); Код:
Start(true); |
|
#2
|
||||
|
||||
|
Не понял, зачем поток. 3 секунды можно задать таймером. Можно даже WinAPI'шным.
Нажатая кнопка в виде объекта передается в параметре Sender метода onClick при нажатии на кнопку. |
|
#3
|
||||
|
||||
|
1. Это и есть стандартный способ.
2. Через таймер проще. Опоздал. ![]() |
|
#4
|
|||
|
|||
|
Если в том же потоке кидаешь процедуру Sleep, то форма зависает, что не есть хорошо. Можно тогда пример с таймером и как получить инфу в параметре Sender?
|
|
#5
|
||||
|
||||
|
В Sender передается объект, вызвавший событие.
Код:
procedure TForm1.ButtonOnClick(Sender: TObject); begin (Sender as TButton).Caption := '123'; ... end; Таймер есть стандартный компонент Delphi, в котором задается интервал срабатывания и функция срабатывания. Самое простое решение - сделать для каждой кнопки свой таймер. При нажатии на каждую кнопку запускаем ее личный таймер на 3 секунды и ждем. Решение поинтереснее - добавлять кнопки в очередь на срабатывание, а в поле Interval таймера задавать время до ближайшего включения какой-либо кнопки. По событию таймера доставать из очереди один элемент и работать с ним. |
| Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
lcd1232 (29.02.2012)
| ||
|
#6
|
|||
|
|||
|
Интересно. Надо будет посмотреть. Добавлю еще вопрос, дабы не создавать еще 1 тему:
Как написать текст в объекте ComboBox если style:=csDropDownList? Нужно именно то поле, которое уже сразу выбрано при запуске программы. |
|
#7
|
||||
|
||||
|
Никакой текст при этом не пишется, TEdit коим является это поле находится в ReadOnly, нужно выбрать ItemIndex из соответствующего списка ранне загруженного в TComboBox.
|
|
#8
|
|||
|
|||
|
К сожалению на последний вопрос я так и не получил ответа, а именно:
Цитата:
|
|
#9
|
||||
|
||||
|
Наверное потому что невнимательно читаешь.
Цитата:
Цитата:
|