Глюк в TDBGrid

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

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

anbsoft
незнакомец
Сообщения: 9
Зарегистрирован: 23.12.2012 21:59:47

Глюк в TDBGrid

Сообщение anbsoft »

Обнаружил следующую ошибку:
Если Dataset (в моем случае TIBQiery из набора IBX) неактивен,
то нажатие клавиш Tab, Page Up, Page Down, Enter вызывает исключение EDatabaseError Operation can not be performed on an inactive dataset.
Насколько я понимаю, TDBGrid пытается выполнять манипуляции с датасетом не проверяя его активности,
а это ошибка в исходниках компонента.
Я только неделя как сел за Lazarus, как быть в таком случае?
Читал что можно как-то отправить запрос или патч разработчикам, но пока не уверен что смогу все правильно сделать.
Я конечно могу покопаться в исходниках и исправить ошибку, но как это сделать с пользой для других?
Lazarus 1.0.4 FPC 2.6.0

Добавлено спустя 7 минут 2 секунды:
Глянул в Delphi, та обработчик TCustomDBGrid.KeyDown начинается с проверки

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

if not FDatalink.Active or not CanGridAcceptKey(Key, Shift) then Exit;

В Лазаре этого нет.

Добавлено спустя 4 минуты 27 секунд:
Пока для себя добавил указанный выше код в начало обработчика TCustomDBGrid.KeyDown и все в порядке,
но хотелось бы чего-то большего :) .
Аватара пользователя
khvalera
новенький
Сообщения: 57
Зарегистрирован: 29.06.2010 00:49:43
Контактная информация:

Re: Глюк в TDBGrid

Сообщение khvalera »

Я вот пытаюсь набросать программулину которая будет юзать BufDataset... и за неделю уже отловил таких багов уже наверно пол ста, так что для Лазаря пока это нормально ;)
Зарегистрируйся на http://bugs.freepascal.org и запость баг, я с ним тоже сталкивался.
anbsoft
незнакомец
Сообщения: 9
Зарегистрирован: 23.12.2012 21:59:47

Re: Глюк в TDBGrid

Сообщение anbsoft »

Я уже заметил что "это" для Лазаря нормально :( , что ни компонент - то сплошные глюки.
Не столько пишешь программу, сколько отлавливаешь глюки.
И самое "приятное", что при обновлениях Лазаря прийдется большинство багов заново исправлять.
Получается нужно заводить себе список исправленных глюков и проверять их все при каждом обновлении.
Недешевая цена за бесплатность получается.
А более-менее продвинутый проект вообще страшно браться писать, утонешь в исправлениях-переисправлениях :cry: .
Но ничего, дорогу осилит идущий.
Аватара пользователя
khvalera
новенький
Сообщения: 57
Зарегистрирован: 29.06.2010 00:49:43
Контактная информация:

Re: Глюк в TDBGrid

Сообщение khvalera »

anbsoft писал(а):И самое "приятное", что при обновлениях Лазаря прийдется большинство багов заново исправлять.

Если объявишь баг, то возможно в следующих версиях его уже не будет, иногда изменения вносятся оперативно.
Но бывает и такое, что после исправления, в следующих версиях он появляется заново. :)
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Глюк в TDBGrid

Сообщение Максим »

khvalera
Не вижу от вас 50 отчётов об ошибках.

anbsoft писал(а):Я уже заметил что "это" для Лазаря нормально :( , что ни компонент - то сплошные глюки.
Не столько пишешь программу, сколько отлавливаешь глюки.

Отчёт об ошибке или не было. :mrgreen:
Кстати, можно использовать FPC 2.6.1, там, по сравнению с версией 2.6.0, внесено много исправлений в модули для работы с БД.
Аватара пользователя
khvalera
новенький
Сообщения: 57
Зарегистрирован: 29.06.2010 00:49:43
Контактная информация:

Re: Глюк в TDBGrid

Сообщение khvalera »

Максим писал(а):khvalera
Не вижу от вас 50 отчётов об ошибках.

... то что можно было обойти костылями, правил ими, так как не было времени совсем. Со временем обязательно создам.

Максим писал(а): Кстати, можно использовать FPC 2.6.1, там, по сравнению с версией 2.6.0, внесено много исправлений в модули для работы с БД.

... а в FPC 2.6.2 еще меньше, но и там их я Вам скажу больше чем достаточно. :)
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Глюк в TDBGrid

Сообщение Максим »

khvalera писал(а):... а в FPC 2.6.2 еще меньше, но и там их я Вам скажу больше чем достаточно. :)

FPC 2.6.2 ещё нет в природе. А об ошибках сообщайте, и чем раньше, тем лучше. Уверяю, сейчас есть все условия для их быстрого исправления. :)
Аватара пользователя
khvalera
новенький
Сообщения: 57
Зарегистрирован: 29.06.2010 00:49:43
Контактная информация:

Re: Глюк в TDBGrid

Сообщение khvalera »

Максим писал(а):FPC 2.6.2 ещё нет в природе.

RC1: ftp://ftp.freepascal.org/pub/fpc/beta/2.6.2-rc1/ :)
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Глюк в TDBGrid

Сообщение Максим »

Это кандидат в релизы, так что, не совсем то, хотя и близко. :)
Аватара пользователя
amateur
энтузиаст
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: Глюк в TDBGrid

Сообщение amateur »

лазарь "похож" на дельфи. И то что сделано, и как сделано в дельфине не должно быть в лазаре. Решение должно быть не похожим на дельфиновский вариант.
Иначе вариант посыла, вплоть до суда, гарантировано. Хотя для личного использование к.з....

Поэтому:
Глянул в Delphi, та обработчик ... В Лазаре этого нет.
и не должно быть...

но хотелось бы чего-то большего
предложите свой вариант...

Уверяю, сейчас есть все условия для их быстрого исправления.
А в чем отличие от сейчас и до ?
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Глюк в TDBGrid

Сообщение Максим »

amateur писал(а):лазарь "похож" на дельфи. И то что сделано, и как сделано в дельфине не должно быть в лазаре. Решение должно быть не похожим на дельфиновский вариант.
Иначе вариант посыла, вплоть до суда, гарантировано. Хотя для личного использование к.з....

Поэтому:

Глянул в Delphi, та обработчик ... В Лазаре этого нет.

и не должно быть...

Да щаз.

amateur писал(а):А в чем отличие от сейчас и до ?

"До" не было нескольких разработчиков, активно пилящих подсистему БД в FPC.
Аватара пользователя
amateur
энтузиаст
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: Глюк в TDBGrid

Сообщение amateur »

Да щаз.


Хоть щаз, хоть не щас. А код из дельфи использовать -ТАБУ для лазаря (примеры явного передирания уже были...)...

"До" не было нескольких разработчиков, активно пилящих подсистему БД в FPC.
- :? интересно: че они раньше делали.
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Глюк в TDBGrid

Сообщение Максим »

Вы действительно не понимаете разницы между копированием кода и созданием независимой совместимой по интерфейсу реализации или прикидываетесь?
Аватара пользователя
amateur
энтузиаст
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: Глюк в TDBGrid

Сообщение amateur »

судя по теме: человек взял, посмотрел в дельфи и, скопировав код, вставил в лазарь.

Хотя: если данный момент является
созданием независимой совместимой по интерфейсу реализации
то я тогда прикидываюсь...

Но скопировав решил узнать: правильно ли это.

Ответ НЕТ. Но для личного пользования подойдут любые "грабли"...
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Глюк в TDBGrid

Сообщение Максим »

Человек сообщил о проблеме и, для иллюстрации поведения Delphi в данной ситуации, привёл одну строчку кода, на которую, в силу её тривиальности, авторское право не распространяется (таких конструкций в большинстве программ огромное множество и в большинстве случаев их вид практически однозначно диктуется архитектурой программы). При этом вполне возможно, что в Lazarus добуквенного копирования даже такой тривиальной строчки не получится в силу отличий в реализации (а если и получится, то тем очевиднее её тривиальность).

Вы же полезли куда-то в дебри с намёками о том, что искомого поведения в Lazarus они никогда не получат (по крайней мере именно это следует из вашего поста). Зачем? Вы хотите запутать людей?
Ответить