Здраствуйте. Надеюсь на вашу помощь. Значит мне надо сделать универсальную процедуру. В приложении процедура события нажатия на кнопку. У меня таких кнопок 16. Поэтому и процедур 16. А если у меня таких 50? Как быть? Действия такие: 1)Нажимаю на кнопку; 2)Генерируется событие OnMouseDown нажатой кнопки; 3)Вызывается моя универсальная процедура, назовём её PushMouse: 4)В качестве параметра в процедуру передаётся нажатая кнопка или её номер(лучше номер от 0 до 15); 5)Работа процедуры; Так вот как мне сделать такую процедуру? Что бы не писать её 16 раз. К тому же у меня ещё 3 события... Спасибо!
Приветствую Вас, Rotten! Заметь, что в приведенной тобой процедуре есть параметр Sender: TObject; - с помощью него ты можешь определить, какая кнопка (или какой контрол вообще) стал инициатором вызова этой процедуры. Т.е. ты присваиваешь всем своим кнопкам в событие OnMouseDown один и тот же обработчик, а в нем делаешь так:
var spb : TSpeedButton begin spb := Sender as TSpeedButton; spb... end;
Далее, раз ты хочешь, чтобы тебе передавалось число, то присвой его в поле tag соответствующей кнопке, а в обработчике используй это поле (spb.tag).
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 08.12.2003, 21:52 Отправитель: Bob Johnson Отвечает Boriss
Добрый день, Rotten! Нет проблем: 1) напишите одну процедуру обработки события; 2) назначьте ее (выберите) во всех других элементах; 3) внутри процедуры анализируйте Sender типа if Sender = Buttotn1 then .... Возможны вариации на эту тему Ответ отправлен: 08.12.2003, 08:41 Отправитель: Boriss Отвечает THE_PRO
Здравствуйте, Rotten! Peredayesh kakoy ni bud arqument (xot strokoviy) s pomoshyu kotoroqo i raspaznayesh che nado delat! Ответ отправлен: 08.12.2003, 10:12 Отправитель: THE_PRO
Вопрос № 1156
Подскажите плиз, как скопировать файл, в определенную папку, из ресурсов программы! CopyFile кажися не помогает!
Доброе время суток, Кирилл! Вначале загрузи его в память (используй TResourceStream), затем уже сохрани на диск.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 08.12.2003, 21:52 Отправитель: Bob Johnson Отвечает Andy
Приветствую Вас, Кирилл! Создаём поток из ресурса и сохраняем его на диск. См. приложение. Будут вопросы - в мыло.
Приложение: Ответ отправлен: 08.12.2003, 08:12 Отправитель: Andy
Вопрос № 1157
Каким образом можно в определенное время включить удаленный сервер (в winXP), после чего ко мне должны подключиться, скачать что надо с локального http-сервера, а потом отключаться. После того, как отключатся, нужно модемный сервак выключить. В активе немного знаний Delphi и VB.
Доброе время суток, Дмитри! Можно использовать стандартное средство Windows - "Планировщик событий". Есть бесплатная программа ServerOK Владимира Бровака (можно скачать по адресу http://serverok.newmail.ru). Эта небольшая программка предназначена именно для запуска RAS (Серв. Удал. Дост) из командной строки. Вот ее и нужно включить в список заданий "Планировщика" на нужное время. Возможно там есть ключ и для выключения RAS. Ответ отправлен: 09.12.2003, 20:22 Отправитель: Trubler Отвечает sir henry
Добрый день, Дмитри! Нужно включить сервис удаленного доступа или непосредственно комп? Ответ отправлен: 08.12.2003, 09:50 Отправитель: sir henry
Вопрос № 1158
Доброго времени суток! Как сделать в Edit-е форматный вывод переменной типа double, т.е. что б она мне не выводила все числа после запятой, а только нужное мне кол-во? C++Builder.
Осваиваю Borland C++ Builder В DLL есть ресурсы - обыкновенные строки, но много. Как подключить эту самую библиотеку, и вывести строки в ComboBox? Подарите кусок реального кода Borland C++ Builder
Доброе время суток, Old! Используй функцию LoadString или AnsiString::LoadString.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 08.12.2003, 21:52 Отправитель: Bob Johnson
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.