|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.03.2016, 18:53 | #1 |
Пользователь
Регистрация: 06.02.2016
Сообщений: 35
|
Передача названия объекта в процедуре
Допустим процедура / функция меняет значение Edit1.text. Edit разный, и хочется его передавать, как параметр процедуры. Как такое реализовать?
|
21.03.2016, 18:56 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Ну так и делать, передавать параметром функции TEdit.
И давать всему нормальные имена, а не Edit1, Edit2, ..., Edit99.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 21.03.2016 в 19:02. |
21.03.2016, 20:18 | #3 | |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 594
|
Цитата:
Вы разве не заметили, что любая стандартная процедура имеет хотя бы один обязательный параметр? Вот вам пример: Код:
А в теле процедуры вы напишете: Код:
Код:
Последний раз редактировалось kropotkina-alice; 21.03.2016 в 20:21. |
|
21.03.2016, 20:35 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Где автор говорил, что он подписывается на события Edit'ов?
И это не "стандартная процедура", а обработчик события. И BitBtn1Click(Edit1) это бред, Sender не для этого предназначен и вообще не надо вызывать обработчики событий самому.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 21.03.2016 в 20:55. |
21.03.2016, 21:58 | #5 | |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 594
|
А где вы увидели события Edit'ов?
Не подскажете, каким переводчиком надо воспользоваться, чтобы перевести слово "procedure" как "обработчик события"? Кстати, а вот это тоже "обработчик события"? Код:
Цитата:
Кстати, "Sender" в переводе означает "передатчик", то есть тот, кто передает команду на выполнение вызываемой процедуры... Последний раз редактировалось kropotkina-alice; 21.03.2016 в 22:01. |
|
21.03.2016, 22:05 | #6 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Причем тут procedure, я про event handler. Дельфи ж создает такие процедуры с Sender именно для обработки событий, а не просто так.
И Sender обычно является объектом сгенерировавшим это событие, а не чем попало переданным.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 21.03.2016 в 22:08. |
21.03.2016, 22:13 | #7 | |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 594
|
Цитата:
Интересно, а почему вы считаете, что этого "вызывателя" нельзя подменить? Я, например, этот прием использую довольно часто... Кстати, и вам это никто не запрещает... И я впервые слышу, что это - "бред"... |
|
21.03.2016, 22:20 | #8 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
Тем более что коду внутри этой процедуры скорее всего вообще не нужна никакая кнопка и никакого отношения к обработке ее нажатия он не имеет. Почему просто не сделать нормальную процедуру Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 21.03.2016 в 22:24. |
|
21.03.2016, 22:48 | #9 |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 594
|
У вас какое-то странное восприятие...
Вообще-то, если вы внимательно посмотрите, событие вызывается нажатием на BitBtn. И обработчик для этого события будет вызван в любом случае, кого бы мы сэндером ни назначили. И кто мне запрещает указать сэндером не BitBtn (что происходит по умолчанию), а любой другой объект??? По вашей логике вы предлагаете плодить процедуры и вызывать из обработчика для BitBtn какую-то дополнительную DoSomethingWithEdit(edt: TEdit)... А если мне понадобится по нажатию на BitBtn сотворить нечто с TPanel, к примеру? Добавлять еще и DoSomethingWithPanel(pnl: TPanel)??? А если действия и в том, и в другом случае идентичны? Плодить одинаковые куски кода? Извините, но вы сами знаете устоявшееся название для такого... м-м-м... "кода"... З.Ы. От дальнейшего бесплодного флуда уклоняюсь, ибо взаимопонимание маловероятно... |
21.03.2016, 22:56 | #10 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Ну DoSomething это просто пример как Foo и Bar, на самом деле она должна иметь нормальное имя соответствующее задаче. Например, DrawBorder, HighlightErrorEdit, Clear, Fill(edit, data) и т.п.
Никто не запрещает, просто обычно так не делают, и не пихают весь подряд код в обработчик события кнопки, а разделяют его на процедуры (выполняющие какую-то четкую задачу). Это как раз и поможет не "плодить одинаковые куски кода".
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 21.03.2016 в 23:00. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача параметров в хранимой процедуре | Maxjuvefan | БД в Delphi | 7 | 17.09.2015 14:09 |
createthread и передача параметра процедуре | fucil | Win Api | 9 | 19.01.2012 19:19 |
[Delphi] Передача параметров процедуре | Язь | Помощь студентам | 0 | 09.12.2011 17:38 |
Передача процедуре статического массива | cod48 | Общие вопросы Delphi | 1 | 24.08.2010 21:07 |
Передача параметра процедуре FormCreate | Grandistok | Общие вопросы Delphi | 3 | 24.04.2010 15:42 |