var в заголовке стандартного обработчика

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

var в заголовке стандартного обработчика

Сообщение Xenar » 15.06.2011 10:44:50

Всем доброго дня.
Столкнулся с такой проблемой.
Мне нужно что бы стандартный обработчик типа
Код: Выделить всё
procedure TForm1.RadioButton4Change(Sender: TObject);

выдавал наружу данной процедуры значения переменной, меняю обработчик на
Код: Выделить всё
procedure TForm1.RadioButton4Change(Sender: TObject;  var procent: Integer);
begin
procent:= 2;
end;

в объявлении класса формы тоже делаю соответствующее изменение.
Проект нормально компилируется без всяких предупреждений, но при реализации данного обработчика получаю ошибку
Код: Выделить всё
Проект вызвал класс исключения 'External: SIGSEGV'.


Если я убираю var из заголовка то исключения нет.

В чем я ошибся??
Аватара пользователя
Xenar
постоялец
 
Сообщения: 158
Зарегистрирован: 08.06.2011 12:54:07

Re: var в заголовке стандартного обработчика

Сообщение rayanAyar » 15.06.2011 10:50:07

Нельзя добавлять свои переменные в обработчик события.
Аватара пользователя
rayanAyar
новенький
 
Сообщения: 42
Зарегистрирован: 06.01.2011 08:22:52
Откуда: Новоуральск

Re: var в заголовке стандартного обработчика

Сообщение Xenar » 15.06.2011 10:55:42

Печально. Но спасибо за разъяснения.
Аватара пользователя
Xenar
постоялец
 
Сообщения: 158
Зарегистрирован: 08.06.2011 12:54:07

Re: var в заголовке стандартного обработчика

Сообщение rayanAyar » 15.06.2011 11:59:32

Если будет больше информации зачем это было нужно - может придумаем как обойтись без добавления своих переменных в обработчик события. Я что-то не припомню чтобы возникала необходимость в таких манипуляциях.
Аватара пользователя
rayanAyar
новенький
 
Сообщения: 42
Зарегистрирован: 06.01.2011 08:22:52
Откуда: Новоуральск

Re: var в заголовке стандартного обработчика

Сообщение vada » 15.06.2011 16:00:16

Можно создать класс наследник от нужного со свим обработчиком событий. Муторно правда...
Проще глобальную переменную описать чтобы стандартный обработчик в нее инфу складывал. Это запростяк.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: var в заголовке стандартного обработчика

Сообщение Vadim » 15.06.2011 16:11:30

Можно создать переменную в private области класса и с ней работать в обработчике. Это будет проще.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: var в заголовке стандартного обработчика

Сообщение Xenar » 15.06.2011 16:38:35

Всем спасибо, уже решил проблему путем дополнительной процедуры. Конечно, теоретические проще было бы передать значение из процедуры-обработчика, но нет так нет. Перефразируя классиков, "я пошел другим путем" :D

Добавлено спустя 4 минуты 24 секунды:
vada писал(а):Проще глобальную переменную описать чтобы стандартный обработчик в нее инфу складывал. Это запростяк.

Хм очень интересно, а как?? В качестве задела на будущее. Но видимо Vadin как раз рецепт и написал, насколько я понял
Можно создать переменную в private области класса и с ней работать в обработчике. Это будет проще.
Аватара пользователя
Xenar
постоялец
 
Сообщения: 158
Зарегистрирован: 08.06.2011 12:54:07


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 36

Рейтинг@Mail.ru