SIGSEGV с TDBLookupComboBox на модальной форме

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

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

Re: SIGSEGV с TDBLookupComboBox на модальной форме

Сообщение tema » 14.03.2017 16:03:33

java73 писал(а):dblookup.inc (88 строка, если интересно)

Ага, она самая! Три дня бился!

Добавлено спустя 2 минуты 27 секунд:
vitaly_l писал(а):Может вы оба забыли Create; сделать и обращаетесь к просто объявленной форме?

Там же прикреплена минимальная тестовая программа. Посмотрите, забыли там Create или нет

Добавлено спустя 1 минуту 26 секунд:
Очень жаль, что у спорщиков сейчас нет важного проекта с дблукапкомбобоксом на модальной форме. Уверен, по-другому бы заговорили!
tema
постоялец
 
Сообщения: 318
Зарегистрирован: 24.03.2011 20:19:27

Re: SIGSEGV с TDBLookupComboBox на модальной форме

Сообщение vitaly_l » 14.03.2017 16:13:07

tema писал(а):Посмотрите, забыли там Create или нет

Ага, значит Create сделали, а она почему-то волшебно забыла присвоить Handle ?

Да ещё и вылетает с SIGSEGV на 88 строке, которая при повторном присваивании Handle, на 88 строке - уже не вылетает ?
Значит ошибка явно не на 88 строке...

Но почему вы оба видя что, ошибка не на 88 строке, вдруг решили что ошибка в ShowModal, если вылетает на 88 строке ?

Чтобы понять суть: попробуйте вставить HandleNeeded на 88 строку и о чудо!!! Программа ВДРУГ перестанет выдавать SIGSEFV.
:roll: И тогда Вы оба будете уверять нас, что ошибка была на 88 строке, а не в ShowModal ?

Чтобы совсем понять, сделайте HandleNeeded перед запуском ShowModal...
И о чудо... она перестанет вылетать на 88 строке и функцию ShowModal ненужно будет патчить...
:roll: Правда баг всё равно останется в ваших кодах... :twisted: :twisted: :evil: :wink:

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 2964
Зарегистрирован: 31.01.2012 16:41:41

Re: SIGSEGV с TDBLookupComboBox на модальной форме

Сообщение zub » 14.03.2017 16:36:37

>>Очень жаль, что у спорщиков сейчас нет важного проекта с дблукапкомбобоксом на модальной форме. Уверен, по-другому бы заговорили!
Тебе нужно не тут флеймить, а на багтрекере - чтоб баг рассмотрели и если он присутствует починили.
zub
долгожитель
 
Сообщения: 2133
Зарегистрирован: 14.11.2005 23:51:26

Re: SIGSEGV с TDBLookupComboBox на модальной форме

Сообщение pupsik » 14.03.2017 17:15:28

tema в общем баговщики. Шоб вам .... Достали. :lol:

Нету там бага. Сейчас привёл у себя к адекватной реализации. Т.е. ваш пример из багтрека (единственное что он под литл сделан - т.е. вся структура ваша только литл).

Без всяких правок и магии (волшебства). Т.е. боксы не копировал и ничего не двигал, вызвал диалог и оно сохранило. Изменения касались только кода и заполнения запросов. В коде добавил 5 строчек и убрал 3 строчки вашего.

Но..о, коли нашли "баг"... и считаете это багом... пускай будет так. Только баг не в лазаре (по крайней мере не там где вы его нашли). И ковыряли вы следствие, а вот причину не нашли.


java73 вот кто его знает что вы там наворотили. А описаний на этом форуме и так мама не горюй. Так что: верю на слово... Баг подправлен. :roll:

zub это трудно назвать багом. Просто не корректное взаимодействие с формами.
pupsik
энтузиаст
 
Сообщения: 991
Зарегистрирован: 20.08.2014 16:20:13

Re: SIGSEGV с TDBLookupComboBox на модальной форме

Сообщение serbod » 14.03.2017 17:46:58

http://wiki.freepascal.org/TDBLookupComboBox

TDBLookupCombobox получает список значений из свойства ListSource (это, к примеру, таблица кодов и названий валют) и отображает значения колонки, указанной в ListField (имя валюты). Текущее значение определяется по колонке KeyField (код валюты) и привязано к колонке DataField таблицы DataSource (например, код валюты в таблице финансовых операций).

Можно не привязывать DataField и DataSource, тогда это будет просто список имен, который ни на что не влияет. А в примере с багртекера все наоборот - DataField и DataSource указаны, а ListSource и ListField пустые. Как по-вашему оно должно работать?
Аватара пользователя
serbod
постоялец
 
Сообщения: 138
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Re: SIGSEGV с TDBLookupComboBox на модальной форме

Сообщение java73 » 14.03.2017 17:59:15

Я честно так и не понял генезис ошибки. У меня НИЧЕГО не происходит в момент создания формы, а на комбобоксах даже enabled стоит false, их включает пользователь (на них фильтры данных работают). Поэтому понять как это всё взаимодействует, я не могу. Лишь путем трассировки исполнения я понял, что ошибка возникает на стадии, когда одна форма перебирает данные из таблицы, которые связаны с комбобоком, но который не enabled даже.... Поэтому иначе, как БАГ я это назвать не могу.
java73
постоялец
 
Сообщения: 191
Зарегистрирован: 21.11.2013 09:08:10

Re: SIGSEGV с TDBLookupComboBox на модальной форме

Сообщение serbod » 14.03.2017 18:03:43

Отключенный контрол по сути становится read-only, при этом он полноценно функционирует, отображает данные, но не доступен пользователю. При этом можно без проблем управлять контролом программно.
Аватара пользователя
serbod
постоялец
 
Сообщения: 138
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Re: SIGSEGV с TDBLookupComboBox на модальной форме

Сообщение tema » 14.03.2017 18:04:38

pupsik писал(а):Сейчас привёл у себя к адекватной реализации. Т.е. ваш пример из багтрека (единственное что он под литл сделан - т.е. вся структура ваша только литл).
Без всяких правок и магии (волшебства). Т.е. боксы не копировал и ничего не двигал, вызвал диалог и оно сохранило. Изменения касались только кода и заполнения запросов. В коде добавил 5 строчек и убрал 3 строчки вашего.

пруф или балабол!

Добавлено спустя 3 минуты 10 секунд:
zub писал(а):>>Очень жаль, что у спорщиков сейчас нет важного проекта с дблукапкомбобоксом на модальной форме. Уверен, по-другому бы заговорили!
Тебе нужно не тут флеймить, а на багтрекере - чтоб баг рассмотрели и если он присутствует починили.

Объясните, Вы издеваетесь или реально так пишете от души? ТС именно об этом! Я прошу помочь донести этот баг на буржуйском на багтреккер, т.к. в буржуйском не силён! Именно для того, что Вы написали этот топик вообще создан!!!
tema
постоялец
 
Сообщения: 318
Зарегистрирован: 24.03.2011 20:19:27

Re: SIGSEGV с TDBLookupComboBox на модальной форме

Сообщение java73 » 14.03.2017 18:09:49

В моем случае вполне могут быть косяки во взаимодействии компонентов ZeosDBO и компонентов стандартных. И еще есть таблица RX, но она вроде совсем ни при чем. От ZeosDBO я, к сожалению, отказаться пока не могу, т.к. база залита на mysql сервер и от меня это не зависит.
java73
постоялец
 
Сообщения: 191
Зарегистрирован: 21.11.2013 09:08:10

Re: SIGSEGV с TDBLookupComboBox на модальной форме

Сообщение tema » 14.03.2017 18:10:22

java73 писал(а):ошибка возникает на стадии, когда одна форма перебирает данные из таблицы, которые связаны с комбобоком

Именно! Только даже на том этапе, когда перебираются контролы формы. Я дотуда добрался и распечатывал результаты перебора в консоль.
tema
постоялец
 
Сообщения: 318
Зарегистрирован: 24.03.2011 20:19:27

Re: SIGSEGV с TDBLookupComboBox на модальной форме

Сообщение pupsik » 14.03.2017 18:17:05

пруф или не было!
а зачем? У меня работает, у вас баг.. Все довольны.

С другой стороны, возможно баг, но... не там рыли. Т.е. причину не ту указали. Более точнее у меня нет желания выяснять. А без выяснения "тыкать" в баг трек, или сюда нет смысла.

когда одна форма перебирает данные из таблицы, которые связаны с комбобоком, но который не enabled даже...
т.е. EnableControls установлен, или просто бокс в enabled?

п.с.
когда перебираются контролы формы
это тут не при чём...
pupsik
энтузиаст
 
Сообщения: 991
Зарегистрирован: 20.08.2014 16:20:13

Re: SIGSEGV с TDBLookupComboBox на модальной форме

Сообщение tema » 14.03.2017 18:18:14

pupsik писал(а):
пруф или не было!
а зачем? У меня работает, у вас баг.. Все довольны.

Балабол
tema
постоялец
 
Сообщения: 318
Зарегистрирован: 24.03.2011 20:19:27

Re: SIGSEGV с TDBLookupComboBox на модальной форме

Сообщение java73 » 14.03.2017 18:18:33

А еще я реально допускаю глюки в иных местах. У меня, к примеру, на версии 1.4.0 при сохранении файлов проекта чудесным образом прямо в тексте кода, даже не на активной вкладке, а просто на открытой, могло вписаться содержимое буфера обмена. И да, я ничего не нажимал в тот момент, и да, я видел такое не единожды, а много раз. А еще раньше до этого был совсем дикий глюк (зависание при компиляции и сборке), который решился добавлением оперативной памяти в компьютер. Так что не нужно уверовать в непогрешимость кода самого лазаруса и фп...
java73
постоялец
 
Сообщения: 191
Зарегистрирован: 21.11.2013 09:08:10

Re: SIGSEGV с TDBLookupComboBox на модальной форме

Сообщение Лекс Айрин » 14.03.2017 18:30:04

java73, при всех своих кривых руках, описанные тобой глюки у мена лично не встречались. Причем, даже когда я случайно открывал проект с друг компов по сетке. Что я делаю не так?

в fpc/lasarus на транке очень короткий цикл обновления... фактически, скачивается версия от программистов. Никто не исключает глюков в компиляторе, но так как разрабатывается он не одним человеком, то шансов его там поймать мало. Да и чаще всего, просто пережидаешь день-два и скачиваешь новую версию.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 3912
Зарегистрирован: 19.02.2013 16:54:51

Re: SIGSEGV с TDBLookupComboBox на модальной форме

Сообщение java73 » 14.03.2017 18:51:23

Все это так, но
1) у двух не связанных друг с другом людей проявился одинаковый баг в совершенно разных проектах;
2) по одной и той же причине - сборка на обновленной версии;
3) фактор незаполнения свойств ListSource ListField в комбах у меня лично отсутствует, поэтому предлагаю больше не копать именно в эту сторону (и на багтрекере тоже скажите, я там не зареган).
java73
постоялец
 
Сообщения: 191
Зарегистрирован: 21.11.2013 09:08:10

Пред.След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru