Re[9]: Обработчики событий и методы класса.
От: rounin  
Дата: 22.11.05 13:34
Оценка:
Здравствуйте, Alex.Che, Вы писали:

AC>Привет, "человек без имени"!

AC>Вы пишешь 22 ноября 2005:

AC>>> Не уверен, что правильно понял этот абзац. Поясни.

AC>>> Имеется в виду, что внутри регулярной процедуры (не метода),
AC>>> если не предпринимать доп.шагов, недоступен Self ?

>> Шутить изволите? Какой Self у регулярной процедуры? Self какого объекта?


AC>Никто не запрещает передать мне его в процедуру, как это показано

AC>в примере от Leonid Troyanovsky
Автор: Leonid Troyanovsky
Дата: 22.11.05
.


AC>--

AC>With best regards, Alex Cherednichenko.

Это совсем другое. Тебе требуется указатель на метод,
а ты хочешь передать ему регулярную функцию. Нет проблем.

Представь другую ситуацию: TNotifyEvent был объявлен как регулярная процедура.

type TNotifyEvent = procedure(Sender: TObject);

У тебя есть форма, на форме кнопка.
Ты хочешь сделать очень простую вещь:
чтобы по нажатию на кнопку форма, на которой эта кнопка лежит, закрылась.
Пишешь обработчик события

procedure ButtonClick(Sender: TObject);
begin
// ? а что тут писать-то?
end;

Если форма статическая, то ты можешь, конечно, зашить
в обработчик глобальный объект:

procedure ButtonClick(Sender: TObject);
begin
Form1.Close; // И на каждый экземпляр — отдельную процедуру.
end;

А если форма создана динамически, и никакая глобальная переменная на неё не ссылается?
Что тогда будешь делать?

Best regards,
"Человек без имени" aka rounin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.