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

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

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

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

Сообщение pupsik » 14.03.2017 18:57:55

Балабол
если я не бросаюсь фотками и вы не воспринимаете то что я говорю ... Хм... как угодно.
Ок. tema: что происходит при нажатии на "ОК"? Т.е. по шагам, с учётом того что это модальная форма и работа идет с датасетом. Только не надо это тут описывать. :)

Так что не нужно уверовать в непогрешимость кода самого лазаруса и фп...
глюки есть всегда. Только вот когда пишут что они сами "безглючны". Т.е. тс топика. Это весьма странно.

Получается. в написанном лично коде и логике нет багов, а вот в лазаре и фпс - завались. Ппц классно. А ещё круче: я баг нарыл... всё: удаляю лазарь. Бред какой то.

java73
1 - лазарь за вас сам логику придумал, программу написал?
2 - причина? Это отрисовка, или магия?
3. хм... копать. Я не видел что вы писали, я не знаю как вы писали, не видно примера. Вывод - кто его знает что у вас сбоит...

п.с.
Вы нашли что то похожее на баг. Отлично. Но при чём тут прорисовка к датасету? А кто его знает. При чём тут чудеса? А кто его знает. Главное - нашёл баг. Правда описать почему не могу... ну да ладно.
Зачем искать причину следствия?
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

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

4) починился баг одним и тем же способом

Добавлено спустя 2 минуты 33 секунды:
Ясно. pupsik просто тролль. Зря только распинались перед ним
Последний раз редактировалось tema 14.03.2017 19:01:24, всего редактировалось 1 раз.
tema
постоялец
 
Сообщения: 375
Зарегистрирован: 24.03.2011 20:19:27

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

Сообщение zub » 14.03.2017 19:01:01

tema
странно, я думал для этого
viewtopic.php?f=5&t=18904#p113632
и для этого
viewtopic.php?f=5&t=18904&start=15#p113891

Я в английском также не силен как и вы. Я уже высказал свое мнение - создавать багрепорт надо было в разделе lazarus (предполагается что баг в LCL), не в fpc, и картинки туда смысла никакого постить нет, особенно на русском. Багрепорты в основном постятся и оперативно решаются без всяких топиков "поддержки")). Находишь проблему, описываешь проблему, переводишь, прилагаешь патч...

>>Объясните, Вы издеваетесь или реально так пишете от души?
В каком месте я издеваюсь? я не виноват что абсолютное большинство "багов" оказываются кривыми руками тсов. Вполне возможно при нештатном использовании чего-либо после обновления появляются проблемы. Раньше косяки "прощались", теперь нет.
Базы данных не в моих интересах, и проверить-воспроизвести "баг" я не смогу - поэтому верю всем наслово))
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

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

Сообщение Лекс Айрин » 14.03.2017 19:03:32

java73, и что? Могут происходить разные события с невероятно маленькой вероятностью. Попробуй дальше покопать... возможно еще где глюк... если в компиляторе, то его поправят. А может, уже и поправили.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

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

Сообщение tema » 14.03.2017 19:05:30

zub писал(а):tema
странно, я думал для этого
viewtopic.php?f=5&t=18904#p113632
и для этого
viewtopic.php?f=5&t=18904&start=15#p113891

А оказалось для этого
viewtopic.php?f=5&t=18904#p113409
Кто бы мог подумать, что смысл топика в первом сообщении...
zub писал(а):создавать багрепорт надо было в разделе lazarus (предполагается что баг в LCL), не в fpc

Вы давно были на багтрекере? Я Вас удивлю: там в графе Project написано Lazarus.
tema
постоялец
 
Сообщения: 375
Зарегистрирован: 24.03.2011 20:19:27

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

Сообщение vitaly_l » 14.03.2017 19:13:35

tema писал(а):Вы издеваетесь или реально так пишете от души? ТС именно об этом! Я прошу помочь донести этот баг на буржуйском на багтреккер


Hello people!

I found a bug in showModal function which is used by hundreds of thousands of programmers.
Look next 3 points:

1) Please, remove this code from the module:
Код: Выделить всё
2883,2884c2880,2884
<     if (PopupMode = pmNone) and HandleAllocated then
<       RecreateWnd(Self); // need to refresh handle for pmNone because ParentWindow changes if (fsModal in FFormState) - see GetRealPopupParent


2) And, please, remove this code from the module, to:
Код: Выделить всё
2953,2954d2952
<       if ((PopupMode = pmNone) and HandleAllocated) and not (csDestroying in ComponentState) then
<         RecreateWnd(Self); // need to refresh handle for pmNone because ParentWindow changes if (fsModal in FFormState) - see GetRealPopupParent


3) After that, put this code in module:
Код: Выделить всё
>     if PopupMode = pmNone then
>     begin
>       RecreateWnd(Self);
>       HandleNeeded;
>     end;

After that, my program will cease to fall! But other programmers - the path and then looking for the cause of the fall of their programmes at the ShowModule start. The main thing that my program temporarily ceases to fall.

В смысле, я не знаю как дела обстоят с Линуксами, но в Windows - при ShowModal, лично у меня ничего не падает.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

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

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

tema
>> Я Вас удивлю: там в графе Project написано Lazarus.
Естественно, там же дружелюбные люди. Просто факт - вы чтото делали-недоделали, потом куча людей должна помогать-исправлять.
Ну и по личным наблюдениям - багрепорт имеет больше всего шансов на рассмотрение в первые часы после создания. Создав не в том разделе, неправильно описав... шансы улетучиваются, и репорт уходит на "долгую" полку к тысячам подобных, ждать момента пока ктото из разрабов не напорется на похожую проблему
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

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

Сообщение pupsik » 14.03.2017 19:30:42

Ясно. pupsik просто тролль.
да я не против.
Только напишите: почему этот "баг" проявляется. Только не надо необъяснимого и магического. Конкретно. Ведь вы же нашли и исправили его.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение tema » 14.03.2017 19:45:00

pupsik писал(а):
Ясно. pupsik просто тролль.
да я не против.
Только напишите: почему этот "баг" проявляется. Только не надо необъяснимого и магического. Конкретно. Ведь вы же нашли и исправили его.

Я буду с Вами дискутировать только после того, как Вы предъявите тот, код, который Вы, по Вашим словам, написали и он работает.
tema
постоялец
 
Сообщения: 375
Зарегистрирован: 24.03.2011 20:19:27

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

Сообщение pupsik » 14.03.2017 19:59:21

tema это было лирическое отступление. Все причины вы уже озвучили. И они не ахти (уж пардон).
Да и не о дискуссии я писал. Я вас попросил написать почему (т.е. причина). Если вы не в состоянии написать почему то: где баг? Удачное попадание и работа как вам хочется - не выявления бага.
Кстати: почему было бы интересно услышать не только мне, если я не ошибаюсь :lol:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение java73 » 14.03.2017 20:25:00

pupsik писал(а): - причина? Это отрисовка, или магия?
3. хм... копать. Я не видел что вы писали, я не знаю как вы писали, не видно примера. Вывод - кто его знает что у вас сбоит

Да что вы заладили а? Сказал же, НИЧЕГО не сбоило пока под новой версией не собрал...
java73
постоялец
 
Сообщения: 257
Зарегистрирован: 21.11.2013 09:08:10

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

Сообщение pupsik » 14.03.2017 20:38:56

Да что вы заладили а
да так... Скучно было, а тут и т.д., и т.п... :lol:

Одна странность. Если малость поменять
Код: Выделить всё
procedure TDBLookupDataLink.DataEvent(Event: TDataEvent; Info: Ptrint);
begin
...
    if FRecordUpdated and {было or т.е. or меняем на and} ((FLookup.ControlItems <> nil) and
    (FLookup.ControlItems.Count <> DataSet.RecordCount)) then
    begin
....
end;

появляется "адекватность" закрытия формы. Это касаемо транк версии (от вчерашнего). Не настроенный на дискуссию tema не можете проверить у себя?
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение java73 » 14.03.2017 20:44:09

Я тоже проверю только завтра теперь уже. Все-таки код лазаруса гггггггггг....
java73
постоялец
 
Сообщения: 257
Зарегистрирован: 21.11.2013 09:08:10

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

Сообщение pupsik » 14.03.2017 20:55:54

java73 а вы при чём? Уже писал: не понятно что у вас там глючит. И тем более: что то я не увидел ответ на вопрос заданный ранее...
т.е. EnableControls установлен, или просто бокс в enabled?
так что ... гыкайте далее :lol:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение java73 » 14.03.2017 21:02:04

У меня при создании форм на которых есть dblookupconbobox ы им всем присваевается enabled=false.
Ошибка выскакивает даже когда форма с комбами ни разу не открывалась.
Я собственно логику работы визуальной части компонентов отделить предлагаю от какой-либо связи с логикой работы базы данных.
Уже все поняли, что данные тут вообще ни при чем.
java73
постоялец
 
Сообщения: 257
Зарегистрирован: 21.11.2013 09:08:10

Пред.След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru