Скажите, alexs, почему каждры пишете на Lazarus, а не на Delphi? Что сподвигнуло?
Потому что лазарь нравится Потомучто будет бесплатно и в исходниках На дельфях у нас весь комплекс бухучёта для торговли и склада
По моему RxMemoryData глючит. Простейшее приложение: Форма на ней RxMemoryDate, dbGrid, dbNavigator. Определяем поля в RxMemoryDate:
Я постараюсь посмотреть - RxMemoryDataя перенёс практически без переделок - только возился с блобами - возможно там и напортачил - если есть возможность - разберись.
кстати - новая версия Добавил компонент TPageManager, TRxAppIcon и багофиксы
Потому что лазарь нравится Потомучто будет бесплатно и в исходниках
Нравится - это сильный аргумент А если серьёзно, то я мог бы немного поучаствовать. У меня сейчас кадры (довольно примитивные, но это никого не смущает) сделаны на совершенно безумной связке FB+MS Access97 (ODBC), что порождает некоторые проблемы, которые уже довольно сильно достали. Так что готов общаться.
в стандартном MemDataset также себя ведёт - это всё когда записи в FieldDefs создаются в дезайнере. Если я записи создал в рантайме - то всё работает. Похоже баг. киньте в багрепорт.
15.10.2005 - версия 1.0.9.30 + TRxCustomDBLookupCombo - Улучшена отрисовка (старый стиль отрисовки будет при включённом Flat) + TRxCustomDBLookupCombo - При нажатии клавишы ESC поле очищается (метод DataField.Clear) - TRxCustomDBLookupCombo - Исправлена ошибка отрисовки пустого значения DataField в режиме DisplayAllFields - отображается значение свойства EmptyValue - TRxCustomDBLookupCombo - Исправлена ошибка открытия списка допустимых значений при пустом DataField (список стоял на последней записи) - TRxCustomDBLookupCombo - исправлен расчёт высоты выпадающего списка в зависимости от значения свойства DropDownCount - TRxCustomDBLookupCombo - исправлен выбор значения в выпадающем спсике нажатием клавишы Enter + TRxMemoryData - Введён код для обхода глюка Lazarus с не корректным созданием полей по данным FieldDefs, которые были созданы в Design-time + TRxMemoryData - реализован редактор компоненты - копия струтктуры из другого DataSet-а + TRxDBGrid - подключен редактор свойства FieldName у колонки + TRxDBGrid - реализована возможность подстановки значений для отображения через свойства KeyList и PickList (аналогично TRxDBComboBox)
С TRxMemoryData творится странное: я добавляю поля и устанавливаю их свойства, сохраняю форму. Пока всё нормально. Потом делаю Active равным True (в инспекторе) и у меня тут же слетают DisplayName, а Precision становится равным -1. В TMemDataset (который идёт в комплекте) ничего такого не происходит.
С TRxMemoryData творится странное: я добавляю поля и устанавливаю их свойства, сохраняю форму. Пока всё нормально. Потом делаю Active равным True (в инспекторе) и у меня тут же слетают DisplayName, а Precision становится равным -1. В TMemDataset (который идёт в комплекте) ничего такого не происходит.
Это ожидаемое поведение - вызвано тем, что ллазарь не коректно востанавливает в рантайме те поля, которые в дизайнере я создал через FieldDefs - может это тоже уже подправлено? как я выяснил такие поля после запуска приложения имеют в проперти FieldNo всегда ноль. если исправлено - то в коде необходимо закоментировать 2 строки в модуле rxmemds - помечены коментарием
// Убрать после исправления бага в лазарусе насчёт сохранения в ресурс FieldDefs
если перечисленные выше ошибки не исправлены - то почти готов чуть-чуть подправленный вариант - он должен устранить указанные симптомы. Но принципиально не могу сохранить для объектов - наследников TField те поля, для которых не предусмотренно место в заготоке FieldDefs.
НО - я не проверял в последних сборках лазаря, т.к. жду пока исправят баг в редакторе - когда после некторого времени нормальной работы перестают вводиться данные с клавиатуры и работет только Enter м забой.
Наверное у меня одного RxNew не собирается (win и linux).
rxdbgrid.pas ----------------- if (FSortField = GetFieldFromGridColumn(aCol)) then ASortMarker := FSortOrder; ----------------- -> /usr/lib/lazarus/components/RxNew/rxdbgrid.pas(497,20) Error: Identifier not found "GetFieldFromGridColumn"
---------------- if Assigned(FOnGetBtnParams) and Assigned(GetFieldFromGridColumn(aCol)) then ---------------- -> /usr/lib/lazarus/components/RxNew/rxdbgrid.pas(498,45) Error: Identifier not found "GetFieldFromGridColumn"
---------------- FOnGetBtnParams(Self, GetFieldFromGridColumn(aCol), Canvas.Font, ---------------- -> /usr/lib/lazarus/components/RxNew/rxdbgrid.pas(501,27) Error: Identifier not found "GetFieldFromGridColumn"
---------------- F := GetFieldFromGridColumn(aCol); ---------------- -> /usr/lib/lazarus/components/RxNew/rxdbgrid.pas(549,8) Error: Identifier not found "GetFieldFromGridColumn"
---------------- DrawCellText(aCol,aRow,aRect,aState,S); ---------------- -> /usr/lib/lazarus/components/RxNew/rxdbgrid.pas(571,5) Error: Identifier not found "DrawCellText"
----------------- Result := TRxDbGridColumns.Create(Self, TRxColumn); ----------------- -> /usr/lib/lazarus/components/RxNew/rxdbgrid.pas(731,52) Error: Wrong number of parameters specified
Кстати, в *NIX регистр имен критичен. поаккуратней.
Старая версия LCL - возьми свежий снапшот - когда это писалось - модифициоровался также код стандартного DBGrid для облечения написания от него наследников
насчёт регистра в именах файлов - страюсь - в последних версиях вроде почти всё выправил - если что не так - говорите
Кстати - новая сборка: + TRxLabel - перенесён компонент + TSecretPanel - перенесён компонент - TRxMemoryData - внесён код, обходящий ошибку востановления свойства FieldDefs в модуле DB - работает вроде теперь всё правильно + TRxLoginDialog - начат перенесён - TRxDBComboBox - небольшой багфикс
там же, на сайте, кому интересно - выложил исходники своих кадров - всё ещё очень сырое и функционала мало - но кое-что работает. прямой линк: <a href='http://alexs75.narod.ru/files/FreeOK.rar' target='_blank'>FreeOK.rar</a>
сори - вот верный - опять в регистрах запутался <a href='http://alexs75.narod.ru/Files/FreeOK.rar' target='_blank'>http://alexs75.narod.ru/Files/FreeOK.rar</a>
IBE: Invalid token. invalid request BLR at offset 18. table TB_TOBAR is not defined. IBE: Restore completed. Current time: 22:07:18. Elapsed time: 00:00:06
Также, лазарь ругается на какие-то отсутствующие пропертя у TJvUIBDataBase: AllowStreamedConnected, DefTransactionRead, DefTransactionWrite. Кроме обычной UIB от марта 2005г. есть какая-то перепиленная?
На счёт Lazreport: Брать его надо в CVS. Сегодняшние исходники (последние изменения 3 дня назад) компилируются сегодняшним снапшотом лазаря "на ура".
упс - я правил исходник UIB - автор не добавил мои доработки в его версию - положу на сайте исправленния. бэкап попробуй востановить GBAK-ом - я IBE после некоторых случаев эту работу не доверяю - а GBAK у меня востановил этот архив
Да, GBAK восстановил этот бэкап без проблем. Учту на будущее. Теперь всё встало, скомпилилось, запустилось. Первые впечатления очень благоприятные.
Заметил пока 2 бага: 1. Надо двойным щелчком по сотруднику открыть его с его данными, потом нажать в нём кнопку "Отмена". Вот тут строка сотрудника в таблице обнуляется. 2. При печати отчетов принтер печатает текст ну ооочень мелко. Разметка (линии) при этом нормальные.