| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Вызов процедуры |
| Автор: IamDreamer 29.4.2006, 15:43 | ||||
Имеется процедура:
В списке параметров кроме Sender'a ничего нет, но при вызове:
|
| Автор: vood 29.4.2006, 16:33 |
| задай ей sender:=application а еще лучше напиши процедуру аналогичную данной только с параметром application:tapplication вместо sendera |
| Автор: IamDreamer 29.4.2006, 16:45 |
| vood, а что вообще такое Sender/TApplication? |
| Автор: Quadr0 29.4.2006, 16:52 |
| ... |
| Автор: IamDreamer 29.4.2006, 17:53 | ||||
Это типа так:
А как без него? Я пробовал так:
|
| Автор: Демо 29.4.2006, 18:01 |
| Ну напиши NewDir(nil), раз не нужен параметр. |
| Автор: Sunvas 29.4.2006, 18:20 |
или NewDir(self) в зависимости от того, как ты вызываешь процедуру |
| Автор: IamDreamer 29.4.2006, 19:57 |
| Я вызываю ее напрямую. В смысле это процедура создания новой папки. В моем случае это можно сделать несколькими способами (правой кнопкой мыши, там выбрать, простой кнопкой "Создать" и т.д.). Дык вот чтобы не писать одно и то же везде, я решил сделать процедуру, которой для работы не надо никаких параметров, они ей не нужны. |
| Автор: vood 30.4.2006, 00:20 |
| Так это событие onclick popupmenu А нафиг его вызывать оно само сработает |
| Автор: vood 30.4.2006, 00:22 |
| События ненужно вызывать как функции они срабатывают сами Или утебя на форме нет popupmenu Добавлено @ 00:23 Yanis,это событие компонента |
| Автор: Yanis 30.4.2006, 00:33 | ||
А, ну теперь ясно. IamDreamer Вообще странное объявление метода класса/объекта. Если уж на то оно пошло то должно быть как минимум таким:
Вот это уже похоже на метод. |
| Автор: vood 30.4.2006, 00:37 |
| Yanis, а только ли TApplication может быть Sender? |
| Автор: Демо 30.4.2006, 01:04 | ||
Sender - это любой объект. Предназначен для использования в обработчиках событий для идентификации объекта класса. например:
|
| Автор: Тьма 30.4.2006, 01:17 | ||||
| отвечу за яниса нет, не только Sender - это обьект, который вызвал событие, т.е. в процедуте procedure TForm1.Button1Click(Sender: TObject) sender это Button1. если ты используешь один обработчик события на несколько контролов, то Sender это будет контрол, который вызваль это событие например
вырезка из делфовой справки
ой ой ой долго писал |
| Автор: vood 30.4.2006, 05:03 |
| Тьма значит Sender это обьект событие которого обрабатываеться? |
| Автор: Yanis 30.4.2006, 07:47 |
| Демо, Тьма Молодцы ;) Респект. Добавлено @ 07:54 Отвечу за Тьму |
| Автор: IamDreamer 30.4.2006, 08:50 | ||||||
Как это срабатывают сами? Допустим, необходимо при нажатии на кнопку "Создать папку" показать диалог создания папки. Получается, в событии OnClick кнопки нужно вписать:
Но у меня эта процедура уже есть. Поэтому, в событии OnClick вписываю вместо целого кода процедуры ее вызов:
Как это она сама вызовется? И popupmenu тож есть.
Можно попробовать. |
| Автор: Joss 30.4.2006, 10:39 | ||
Процедура NewDir у тебя имеет параметр типа TObject. Почему ты ее вызываешь без параметров? Вызывай так:
|
| Автор: vood 30.4.2006, 14:08 | ||
Напиши и немучайся
Добавлено @ 14:09 ЗЫ Yanis, спасибо |
| Автор: IamDreamer 1.5.2006, 10:40 |
| vood, дык это че, везде придется писать? |