0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 6
|
|
1 | |
Вызов процедуры OnClick из модуля без формы18.11.2015, 21:00. Показов 3752. Ответов 12
Метки нет (Все метки)
Сабж. На форме много компонентов, а форма одна, хочу разделить работу с компонентами по полочкам.
Можно же, чтобы из Form1 как-то вызвать событие из Unit2 (голый юнит без формы)? Предложенные Варианты по типу: Создать процедуру на Form1 и вызвать процедуру из unit2 - не подходит. грубо говоря, хочу чтобы некоторым компонентам можно было использовать обработчик событий сразу из Unit2. Надеюсь, что понятно объяснил.
0
|
18.11.2015, 21:00 | |
Ответы с готовыми решениями:
12
Вызов процедуры из другого модуля Вызов процедуры из другого модуля Вызов процедуры из другого модуля Вызов процедуры-члена объекта из другого модуля |
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||||||
18.11.2015, 21:51 | 2 | |||||
Сообщение было отмечено Aleshka01 как решение
Решение
1
|
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 6
|
||||||
18.11.2015, 22:09 [ТС] | 3 | |||||
Благодарю, всё работает.
Кстати, класс же можно не создавать при открытии формы? Тогда сразу при её открытии назначать параметры?
Добавлено через 7 минут И ещё вопрос небольшой: а можно этот процесс автоматизировать, чтобы не писать самостоятельно процедуры, а просто заходить во вкладку Events и переходить к событию, которое описано в Unit2?
0
|
пофигист широкого профиля
4735 / 3168 / 860
Регистрация: 15.07.2013
Сообщений: 18,255
|
|
19.11.2015, 00:40 | 4 |
1
|
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 6
|
|
19.11.2015, 00:41 [ТС] | 5 |
0
|
пофигист широкого профиля
4735 / 3168 / 860
Регистрация: 15.07.2013
Сообщений: 18,255
|
|
19.11.2015, 00:55 | 6 |
Регистрировать свой класс. Дабы он был доступен в дизайн-тайме. Регистрировать для него нестандартные редакторы свойств, если таковые нужны. Т.е. это тема "Создание компонент в Дельфи". Суперсложного в ней ничего нет, но её основы нужно знать. Если нужно.
1
|
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 6
|
|
19.11.2015, 00:56 [ТС] | 7 |
Такс, хорошо, а есть примеры какие-нибудь, либо сей материал, который могу прочесть?
0
|
пофигист широкого профиля
4735 / 3168 / 860
Регистрация: 15.07.2013
Сообщений: 18,255
|
|
19.11.2015, 01:09 | 8 |
Примеры чего? "Создания компонент"? Вся VCL есть ни что иное, как создание компонент, а она у вас под руками. Ну а книжки. Либо читай книжку Рея Конопки "Создание оригинальных компонент в среде Delphi", либо книжку наших Мастеров http://www.delphimaster.ru/books/1656145/.
В данном случае примеры на форуме не годятся. Ты не поймешь, а мы обломимся объяснять.
0
|
0 / 0 / 1
Регистрация: 17.04.2016
Сообщений: 75
|
||||||
28.03.2017, 22:57 | 9 | |||||
Коллеги, добрый день.
Есть форма с таблицей TStringGrid. Нужно, что бы по нажатию Ins вызывалась процедура добавления новых строк, а по нажатию Del вызывалась процедуру удаления строк. Не понимаю, но почему-то по нажатию данных клавиш процедуры не вызываются. Полагаю, что проблема именно в синтаксисе вызова процедур TForm1.Button1Click и Form1.ButClearRowClick. Попробовал разные варианты, но положительного результата не добился. В чем ошибка? Ниже синтаксис ключевых процедур. В конце обработка нажатия клавиш Ins (45) и Del (46):
0
|
пофигист широкого профиля
4735 / 3168 / 860
Регистрация: 15.07.2013
Сообщений: 18,255
|
|
29.03.2017, 02:07 | 10 |
Если я правильно понимаю приведенный код, то процедура FGridKeyPress привязана к обработчику события FGrid.OnKeyPress.
А вы нажимаете эти клавишы когда у вас фокус на гриде? И какая у вас версия Дельфи?
0
|
0 / 0 / 1
Регистрация: 17.04.2016
Сообщений: 75
|
|
29.03.2017, 19:01 | 11 |
Да, фокус на гриде. Само событие FGrid.OnKeyPress срабатывает. Так в полном объеме обрабатывается нажатие пробела. Я думаю, что и нажатие Ins и Del принимается, просто нет перехода в соответствующую процедуру.
Версия Делфи Embarcadero® Delphi 10 Seattle Version 23.0.21418.4207 Добавлено через 8 часов 52 минуты Для эксперимента попробовал разделить элементы интерфейса формы и код вычислений. А именно, вынес все содержимое процедуры TForm1.Button1Click (весь openDialog и всю логику заполнения грида) в отдельную процедуру TForm1.AddFiles и при необходимости добавить файлы в список, обращаюсь к ней на прямую вызовом AddFiles. При нажатии на Button1, все продолжает работать как и было до разделения. При вызове через нажатие Ins (if (key=#45) then AddFiles ), без изменений не работает.
0
|
3587 / 2196 / 693
Регистрация: 29.05.2013
Сообщений: 9,381
|
|
29.03.2017, 19:53 | 12 |
Дело в том, что Del и Ins относятся к так называемой расширенной клавиатуре и имеют по сути 2 кода и в рамках события OnKeyPress их обработать не выйдет - используйте событие OnKeyDown.
2
|
0 / 0 / 1
Регистрация: 17.04.2016
Сообщений: 75
|
|
29.03.2017, 23:09 | 13 |
Пытливый,
Решено. Спасибо.
0
|
29.03.2017, 23:09 | |
29.03.2017, 23:09 | |
Помогаю со студенческими работами здесь
13
Вызов процедуры из другой формы Вызов процедуры с другой формы Вызов процедуры при закрытии формы Вызов собственной процедуры с другой формы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |