проблема с TPageControl.OnChange

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

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

Ответить
yser
новенький
Сообщения: 29
Зарегистрирован: 06.02.2008 10:27:40

проблема с TPageControl.OnChange

Сообщение yser »

День добрый.

Решил попробвать 0.9.25 сборку, скомпилировав и запустив проект - проект вывались с ошибкой, повозившись обнаружил следующую ошибку (наверное можно ее так назвать).

На форме лежит TPageControl, 2 закладки и в одной Memo, также обявлена переменная FMyList: TList;
По событию FormCreate создается объект FMyList := TList.Create;
По событию FormDestroy удаляется объект FMyList.Free;
По событию TPageControl.OnChange (переключении закладок) в Memo пишется строка IntToStr(FMyList.Count) ;

Так вот если запустить прогу (скомпилировав в lazarus-0.9.24) - то все отлично работает.
А если запустить прогу (скомпилировав в lazarus-0.9.25) - то вылетает с ошибкой.

Оказалось следующее - вызывается метод TPageControl.OnChange на этапе создания формы и имеем обращение к FMyList.Count еще до того как переменная FMyList была создана - возникает ошибка.

PS:
Пример в аттаче.
Сборка - lazarus-0.9.25-fpc-2.2.0-20080604-win32.exe
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ViTality
постоялец
Сообщения: 308
Зарегистрирован: 05.10.2007 15:12:02

Сообщение ViTality »

этот OnChange он везде забадал.
Всмысле практически у каждого контрола(тотже RxLookupCombo от alexs) у которого он есть, он вызывается при создании формы(несколько раз!!!).
Хотя у TPageControl ранее не замечал(хотя и компилил в 0.9.25, гдето месячной давности).

в качестве лекарства попробуй обвернуть весь код в TPageControl.OnChange в:

Код: Выделить всё

if self.visible then 
begin
// и тут уже весь код который помещаеш в TPageControl.OnChange
end;


--[оффтоп]--
я так понял лазарь полностью перешел на утф-8. открыл свой проект месячной давности в свежей ревизии лазаря, а все подписи кнопок и т.п. в юникодных кривозябликах
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

ViTality писал(а):я так понял лазарь полностью перешел на утф-8

Да. Если хочеш без utf8 то использую дерективу компиляции DisableWindowsUnicodeSupport при сборке IDE. Но лучше переведи исходники в utf8.
yuray
новенький
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Сообщение yuray »

alexs писал(а):Но лучше переведи исходники в utf8.

А как быть с LazReport? Там тоже вся кирилица пропала... :(
Извините, за оффтоп...
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Я патчик на это дело сделал.
P.S. Павел Ишенин ты получил мои письма - я как раз об этом писал тебе.
yuray
новенький
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Сообщение yuray »

Я так понял, что нужно мониторить новые сборки...
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

yuray писал(а):Я так понял, что нужно мониторить новые сборки...

можно вобще на не стабильной сидеть :-) (как я) и каждый день собирать для себя новую версию.
Ответить