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

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

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

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

Сообщение yser » 10.06.2008 12:09:00

День добрый.

Решил попробвать 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
У вас нет необходимых прав для просмотра вложений в этом сообщении.
yser
новенький
 
Сообщения: 29
Зарегистрирован: 06.02.2008 11:27:40

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

Сообщение ViTality » 10.06.2008 13:51:02

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

в качестве лекарства попробуй обвернуть весь код в TPageControl.OnChange в:
Код: Выделить всё
if self.visible then
begin
// и тут уже весь код который помещаеш в TPageControl.OnChange
end;


--[оффтоп]--
я так понял лазарь полностью перешел на утф-8. открыл свой проект месячной давности в свежей ревизии лазаря, а все подписи кнопок и т.п. в юникодных кривозябликах
ViTality
постоялец
 
Сообщения: 308
Зарегистрирован: 05.10.2007 15:12:02

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

Сообщение alexs » 10.06.2008 15:36:28

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

Да. Если хочеш без utf8 то использую дерективу компиляции DisableWindowsUnicodeSupport при сборке IDE. Но лучше переведи исходники в utf8.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

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

Сообщение yuray » 10.06.2008 18:02:55

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

А как быть с LazReport? Там тоже вся кирилица пропала... :(
Извините, за оффтоп...
yuray
новенький
 
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

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

Сообщение alexs » 10.06.2008 18:11:30

Я патчик на это дело сделал.
P.S. Павел Ишенин ты получил мои письма - я как раз об этом писал тебе.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

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

Сообщение yuray » 10.06.2008 18:21:39

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

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

Сообщение alexs » 10.06.2008 18:38:34

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

можно вобще на не стабильной сидеть :-) (как я) и каждый день собирать для себя новую версию.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь


Вернуться в Lazarus

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 10

Рейтинг@Mail.ru