fix error in TRxDBLookupCombo after set value for DataField and LookupSourse.Active=false

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@434 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75 2008-04-21 14:17:43 +00:00
parent ddc5de0ac1
commit a2ed931905
10 changed files with 565 additions and 370 deletions

View File

@ -665,8 +665,7 @@ begin
C := CurrencyString[I];
if C in [',', '.'] then
begin
//Раскоментировать после исправления ошибки в FCL - функция FormatFloat
// CurrStr := CurrStr + '''' + C + ''''
CurrStr := CurrStr + '''' + C + ''''
end
else CurrStr := CurrStr + C;
end;

View File

@ -37,6 +37,7 @@
+ In property TRxDBLookupCombo.PopUpFormOptions add field AutoFillColumns. Used in dropdown list.
- Cleanup code in TRxDBLookupCombo.Paint
+ In TRxDBLookupCombo property DropDownCount now work
- fix error in TRxDBLookupCombo after set value for DataField and LookupSourse.Active=false
29.08.2007 - ¢¥àá¨ï 1.1.5.98 (svn revision 39)
+ In RxDBgrid - after close dataset list of SelectedRows is cleared
+ fix resaizing find form for RxDbGrd

View File

@ -1,351 +1,352 @@
+ У объекта TRxCustomDBLookupCombo введён контроль на CircularDataLink
+ У объекта TRxCustomDBLookupCombo ускорена отрисовка данных
- У объекта TRxCustomDBLookupCombo исправлен выбор первой записи из справочника при
пустом значени в DataField
+ В RxDBGrid опубликованы недостающие обработчики из DBGrid
+ Реализован новый компонент TRxCalendarGrid - простой календарь без заголовка.
- Исправлена ошибка компиляции модуля rxappicon.pas под Windows при использовании
интерфейса GTK2 (спасибо ViruZ - Вадим Витомский)
+ Добавлен модуль rxiconv.pas (оригинальный модуль iconv.pas от A.Voito)
+ Небольшое улучшение отрисовки заголовка кнопки в форме настройки TToolbar
+ Исправлена отрисовка запрещённого состояния у TRxCustomDBLookupCombo
- Исправлена компиляция модуля rxctrls в fpc 2.2
+ В TPopUpColumnTitle введена поддержка дерективы
 + У объекта TRxCustomDBLookupCombo введён контроль на CircularDataLink
+ У объекта TRxCustomDBLookupCombo ускорена отрисовка данных
- У объекта TRxCustomDBLookupCombo исправлен выбор первой записи из справочника при
пустом значени в DataField
+ В RxDBGrid опубликованы недостающие обработчики из DBGrid
+ Реализован новый компонент TRxCalendarGrid - простой календарь без заголовка.
- Исправлена ошибка компиляции модуля rxappicon.pas под Windows при использовании
интерфейса GTK2 (спасибо ViruZ - Вадим Витомский)
+ Добавлен модуль rxiconv.pas (оригинальный модуль iconv.pas от A.Voito)
+ Небольшое улучшение отрисовки заголовка кнопки в форме настройки TToolbar
+ Исправлена отрисовка запрещённого состояния у TRxCustomDBLookupCombo
- Исправлена компиляция модуля rxctrls в fpc 2.2
+ В TPopUpColumnTitle введена поддержка дерективы
NEW_STYLE_TITLE_ALIGNMENT_RXDBGRID
+ В RxDBGrid изображения маркеров вынесены в ресурсы (Petr Smolik)
+ Добавлен модуль автоматической сортировки в RxDBGrid exsortzeos.pas для ZeosDB (Petr Smolik)
- В TCurrencyEdit опубликовано свойство BorderSpacing
+ В модуль rxstrutils добавлена процедура StrToStrings - заполняет класс TStrings строками
содержащимися в строке S и разделёнными симовлом Delims
+ Реализован редактор свойств для полей LookupField и LookupDisplay у компонент
TRxLookupEdit и TRxDBLookupCombo
+ TRxDBLookupCombo реализована поддержка свойства AutoSize
+ При установке свойства Font у TRxDBLookupCombo выпадающий список использует этот же шрифт
+ Если у объекта TField установленый лукапные источники то при редактировании в RxDBGrid
такого поля вызывается редактор на основе TRxDBLookupCombo
- Исправлена ошибка в компоненте TRxLookupEdit - не правильно закрывался выпадающий список
+ В RxDBGrid опубликованны недостающие поля
+ Косметические изменения отрисовки TRxCustomDBLookupCombo
+ Выпадающий список в TRxCustomDBLookupCombo отображатеся просто по клику на компоненте
+ В RxDBGrid доработана отрисовка маркера сортировки и заголовка колонки
+ Перенесён и дописан компонент TRxDateEdit
+ В RxDBGrid реализован редактор для полей типа ftDate, ftDateTime на основае TRxDateEdit
(см. Demos/RxDBGrid)
+ Доработки фильтрации в RxDBGrid для GTK и GTK2
+ Перенесены компоненты TRxSpeedButton и TRxClock
+ новая функция в модуле dbutils - FillValueForField
+ Реализован редактор для RxColumnFooter.FieldName
+ TDBDateEdit теперь наследуется от TRxDateEdit, чтобы оставить как было необходимо
включить директиву DBDateEdit_OLD. Для работоспособности программ необходимо переоткрыть все формы
в дизайнере.
+ В RxDBGrid опубликованы недостающие поля
- Исправлена ошибка в обработке пустой даты в редакторе дат.
+ В свойстве PopUpFormOptions компоненты TRxDBLookupCombo добавлено поле AutoFillColumns - аналог одноимённого поля
из TDBGrid - используется в выпадающем списке
- Улучшен код в отрисовке компоненты TRxDBLookupCombo
+ В TRxDBLookupCombo работает свойство DropDownCount
29.08.2007 - версия 1.1.5.98 (svn revision 39)
+ В RxDBGrid После закрытия набора данных список помеченных строк (SelectedRows)
очищается
+ Улучшено масштабирование формы поиска по RxDbGrd
+ Компиляция в последнем Lazarus
+ TToolbarButton различает теперь стили tbrSeparator и tbrDivider
tbrSeparator - разделитьль с чертой
tbrDivider - пустой разделитель
+ TToolbarButton новый стиль tbrDropDownExtra - кнопка с выпадающим меню.
В отличии от tbrDropDown это работает как кнопка + если нажата крайня правая область - то
тогда появляется меню. (интерфейс ещё коряв - надо будет доработать в дальнейшем)
12.08.2007 - версия 1.1.4.93
+ В TRxDBComboBox опубликованы недостающие поля
+ В TRxDBLookupCombo добавлено обработчик OnGetGridCellProps
- позволяет задавать при отрисовке фон в выпадающем списке
+ В rx.inc ввёл новую дерективу компиляции
+ В RxDBGrid изображения маркеров вынесены в ресурсы (Petr Smolik)
+ Добавлен модуль автоматической сортировки в RxDBGrid exsortzeos.pas для ZeosDB (Petr Smolik)
- В TCurrencyEdit опубликовано свойство BorderSpacing
+ В модуль rxstrutils добавлена процедура StrToStrings - заполняет класс TStrings строками
содержащимися в строке S и разделёнными симовлом Delims
+ Реализован редактор свойств для полей LookupField и LookupDisplay у компонент
TRxLookupEdit и TRxDBLookupCombo
+ TRxDBLookupCombo реализована поддержка свойства AutoSize
+ При установке свойства Font у TRxDBLookupCombo выпадающий список использует этот же шрифт
+ Если у объекта TField установленый лукапные источники то при редактировании в RxDBGrid
такого поля вызывается редактор на основе TRxDBLookupCombo
- Исправлена ошибка в компоненте TRxLookupEdit - не правильно закрывался выпадающий список
+ В RxDBGrid опубликованны недостающие поля
+ Косметические изменения отрисовки TRxCustomDBLookupCombo
+ Выпадающий список в TRxCustomDBLookupCombo отображатеся просто по клику на компоненте
+ В RxDBGrid доработана отрисовка маркера сортировки и заголовка колонки
+ Перенесён и дописан компонент TRxDateEdit
+ В RxDBGrid реализован редактор для полей типа ftDate, ftDateTime на основае TRxDateEdit
(см. Demos/RxDBGrid)
+ Доработки фильтрации в RxDBGrid для GTK и GTK2
+ Перенесены компоненты TRxSpeedButton и TRxClock
+ новая функция в модуле dbutils - FillValueForField
+ Реализован редактор для RxColumnFooter.FieldName
+ TDBDateEdit теперь наследуется от TRxDateEdit, чтобы оставить как было необходимо
включить директиву DBDateEdit_OLD. Для работоспособности программ необходимо переоткрыть все формы
в дизайнере.
+ В RxDBGrid опубликованы недостающие поля
- Исправлена ошибка в обработке пустой даты в редакторе дат.
+ В свойстве PopUpFormOptions компоненты TRxDBLookupCombo добавлено поле AutoFillColumns - аналог одноимённого поля
из TDBGrid - используется в выпадающем списке
- Улучшен код в отрисовке компоненты TRxDBLookupCombo
+ В TRxDBLookupCombo работает свойство DropDownCount
- Исправлена ошибка TRxDBLookupCombo при LookupSourse.Active=false и установке значения для поля DataField
29.08.2007 - версия 1.1.5.98 (svn revision 39)
+ В RxDBGrid После закрытия набора данных список помеченных строк (SelectedRows)
очищается
+ Улучшено масштабирование формы поиска по RxDbGrd
+ Компиляция в последнем Lazarus
+ TToolbarButton различает теперь стили tbrSeparator и tbrDivider
tbrSeparator - разделитьль с чертой
tbrDivider - пустой разделитель
+ TToolbarButton новый стиль tbrDropDownExtra - кнопка с выпадающим меню.
В отличии от tbrDropDown это работает как кнопка + если нажата крайня правая область - то
тогда появляется меню. (интерфейс ещё коряв - надо будет доработать в дальнейшем)
12.08.2007 - версия 1.1.4.93
+ В TRxDBComboBox опубликованы недостающие поля
+ В TRxDBLookupCombo добавлено обработчик OnGetGridCellProps
- позволяет задавать при отрисовке фон в выпадающем списке
+ В rx.inc ввёл новую дерективу компиляции
RXDBGRID_OPTIONS_WO_CANCEL_ON_EXIT
если она определени - то в свойстве TRxDbGrid.Options выключается флаг
dgCancelOnExit (см. пункт 5 из readmy.txt)
- В RxDBGrid исправлена ошибка потери фокуса после закрытия списка фильтра
+ В примере на RxDBGrid добавлен промер на визуальную фильтрацию данных
+ Добавлен компонент TAutoPanel (автор Dmitry V. Bolshakov) -
документация в папке auto_panel_doc
+ В свойстве OptionsRX добавлен новый флаг - rdgMrOkOnDblClik
при его установке при двойном нажатии на RxDbGrid форме, которой принадлежит
RxDbGrid присиваивается ModalResult:=mrOk;
25.06.2007 - версия 1.1.3.86
- Исправлена ошибка в методе TRxMemoryData.SortOnFields
+ Добавлена поддержка сортировок из RxDBGrid на TRxMemoryData
- достаточно просто подключить в проект модуль rxsortmemds
+ В RxDBGrid добавлен метод UpdateTitleHight - принудительный пересчёт высоты заголовок колонок
- В RxDBGrid испралено определение нажатия на последнйи столбец
+ В RxDBGrid в заголовке введена специальная обработка символа | - это
считается безусловный разделитель строк
+ В RxDBGrid.OptionsRx добавлен флаг rdgMultiTitleLines -
при наличии в заголовке символа | между строками рисуется разделительная
линия
+ В rx.inc ввёл новую дерективу компиляции
если она определени - то в свойстве TRxDbGrid.Options выключается флаг
dgCancelOnExit (см. пункт 5 из readmy.txt)
- В RxDBGrid исправлена ошибка потери фокуса после закрытия списка фильтра
+ В примере на RxDBGrid добавлен промер на визуальную фильтрацию данных
+ Добавлен компонент TAutoPanel (автор Dmitry V. Bolshakov) -
документация в папке auto_panel_doc
+ В свойстве OptionsRX добавлен новый флаг - rdgMrOkOnDblClik
при его установке при двойном нажатии на RxDbGrid форме, которой принадлежит
RxDbGrid присиваивается ModalResult:=mrOk;
25.06.2007 - версия 1.1.3.86
- Исправлена ошибка в методе TRxMemoryData.SortOnFields
+ Добавлена поддержка сортировок из RxDBGrid на TRxMemoryData
- достаточно просто подключить в проект модуль rxsortmemds
+ В RxDBGrid добавлен метод UpdateTitleHight - принудительный пересчёт высоты заголовок колонок
- В RxDBGrid испралено определение нажатия на последнйи столбец
+ В RxDBGrid в заголовке введена специальная обработка символа | - это
считается безусловный разделитель строк
+ В RxDBGrid.OptionsRx добавлен флаг rdgMultiTitleLines -
при наличии в заголовке символа | между строками рисуется разделительная
линия
+ В rx.inc ввёл новую дерективу компиляции
NEW_STYLE_TITLE_ALIGNMENT_RXDBGRID
если она определна, то при создании новых колонок в RxDBGrid заголовок центрируется,
если эта деректива не определена - то поведение заголовка стандартное - выравнивается
по левому краю
+ В TRxDBLookupCombo если в свойстве PopUpFormOptions заданы колонки то при отрисовке данных
в строке используется ширина, указанная в колонках
+ В TRxDBLookupCombo после закрытия списка запоминается ширина колонок, установленная
оператором
31.05.2007 - версия 1.1.2.77
- Исправлена компиляция модуля rxtoolbar.pas с последними версиями LCL
(после введения тем) - сам TToolPanel ещё не работает с темами
- Исправил компиляцию модуля rxlogin.pas - была ошибка на SetCursor
15.05.2007 - версия 1.1.1.75
+ В RxDBGrid добавлен метод OptimizeColumnsWidth(AColList:String) - подбирает
ширину колонки (колонок - перечисление через ";") по содержимому
+ В RxDBGrid добавлен метод OptimizeColumnsWidthAll - соотвественно производит автободбор
ширины для всех колонок
+ TRxColumn добавлен метод OptimizeWidth - подбор ширины указанной колонки
Для всех методов подбора ширины производится также выфетчивание всех записей
+ Опция rdgDblClickOptimizeColWidth в свойстве RxDBGrid.OptionsRx работает
- исправлен глюк расчёта высоты заголовка колонки для многострочного заголовка
- Исправлен глюк отерытия примера на RxDBGrid
+ В примере на RxDBGrid добавлен примера на оптимизацию ширины
28.03.2007 - версия 1.1.0.68
- В RxDBGrid исправлена отрисовка итоговой строки при изменении размера колонок
+ В RxDBGrid в свойстве OptionsRx добавлено состояние rdgXORColSizing
- при включённом прорисовка масштабирования колонки происходит линией
(контуром), окончательная прорисовка колонки происходит после окончания изменения
размера столбца - стандартное поведение в Delphi
- Изменён метод отрисовки итоговой строки (код от Yogrik)
+ Небольшие доработки с позиционированием кнопок в ToolBar-е
+ В TRxDBLookupCombo улучшена отрисовка выпадающего списка
+ В TRxColumnTitle добавлены свойства Hint и ShowHint - подсказка, всплывающая при
наведении курсора на заголовок колонки в TRxDBGrid
+ Реализована поддержка фильтрации днных в TRxDBGrid (код от Yogrik)
01.11.2006 - версия 1.0.19.61
+ В выпадающем списке компонента TRxDBLookupCombo реализован быстрый поиск
по столбцу, заданному свойством LookupDisplayIndex.
Из-за ограничений LCL поиск осуществляется пока только по вводу чисел
+ В RxDBGrid добавлено отображение строки итогов (Footer row), соответсвенно введены
необходимые свойства в колонках.
Внимание: из-за ошибок в TDataSet не работает коректно пока агрегатные функции
если она определна, то при создании новых колонок в RxDBGrid заголовок центрируется,
если эта деректива не определена - то поведение заголовка стандартное - выравнивается
по левому краю
+ В TRxDBLookupCombo если в свойстве PopUpFormOptions заданы колонки то при отрисовке данных
в строке используется ширина, указанная в колонках
+ В TRxDBLookupCombo после закрытия списка запоминается ширина колонок, установленная
оператором
31.05.2007 - версия 1.1.2.77
- Исправлена компиляция модуля rxtoolbar.pas с последними версиями LCL
(после введения тем) - сам TToolPanel ещё не работает с темами
- Исправил компиляцию модуля rxlogin.pas - была ошибка на SetCursor
15.05.2007 - версия 1.1.1.75
+ В RxDBGrid добавлен метод OptimizeColumnsWidth(AColList:String) - подбирает
ширину колонки (колонок - перечисление через ";") по содержимому
+ В RxDBGrid добавлен метод OptimizeColumnsWidthAll - соотвественно производит автободбор
ширины для всех колонок
+ TRxColumn добавлен метод OptimizeWidth - подбор ширины указанной колонки
Для всех методов подбора ширины производится также выфетчивание всех записей
+ Опция rdgDblClickOptimizeColWidth в свойстве RxDBGrid.OptionsRx работает
- исправлен глюк расчёта высоты заголовка колонки для многострочного заголовка
- Исправлен глюк отерытия примера на RxDBGrid
+ В примере на RxDBGrid добавлен примера на оптимизацию ширины
28.03.2007 - версия 1.1.0.68
- В RxDBGrid исправлена отрисовка итоговой строки при изменении размера колонок
+ В RxDBGrid в свойстве OptionsRx добавлено состояние rdgXORColSizing
- при включённом прорисовка масштабирования колонки происходит линией
(контуром), окончательная прорисовка колонки происходит после окончания изменения
размера столбца - стандартное поведение в Delphi
- Изменён метод отрисовки итоговой строки (код от Yogrik)
+ Небольшие доработки с позиционированием кнопок в ToolBar-е
+ В TRxDBLookupCombo улучшена отрисовка выпадающего списка
+ В TRxColumnTitle добавлены свойства Hint и ShowHint - подсказка, всплывающая при
наведении курсора на заголовок колонки в TRxDBGrid
+ Реализована поддержка фильтрации днных в TRxDBGrid (код от Yogrik)
01.11.2006 - версия 1.0.19.61
+ В выпадающем списке компонента TRxDBLookupCombo реализован быстрый поиск
по столбцу, заданному свойством LookupDisplayIndex.
Из-за ограничений LCL поиск осуществляется пока только по вводу чисел
+ В RxDBGrid добавлено отображение строки итогов (Footer row), соответсвенно введены
необходимые свойства в колонках.
Внимание: из-за ошибок в TDataSet не работает коректно пока агрегатные функции
(SUM, MAX, MIN, AVG)
+ В TRxMemoryData реализовал свойство AppendRecord - пока не будет написано аналогичное
в TDataSet
+ Новый Демо - RxDBGrid - демонстрация возможностей RxDBGrid
- В RxDBGrid исправлен вызов OnDrawColumnCell
08.09.2006 - версия 1.0.18.56
+ У объекта TToolPanel ввёл параметр ButtonAllign = (tbaNone, tbaLeft, tbaRignt)
выравнивание по умолчанию кнопок, tbaNone - это старое поведение
+ У объекта TToolbarItem (кнопка панели инструментов) введена поддержка типа
tbrSeparator - разделитель между кнопками
+ При закрытии списка у TRxDBLookupCombo происходит перерисовка
владельца (parent) компонента - обхожу глюк LCL в Win32
19.08.2006 - версия 1.0.17.53
+ изменил по умолчанию рамку popup окна у TRxDBLookupCombo на стиль bsNone
(так привычнее)
+ Одиночный клик мышки в списке popup окна у TRxDBLookupCombo также закрывает
его
- исправлена поведении в обработке клавиши ESC у компоненты TRxDBLookupCombo -
если поле набора данных не пустое - то происходит установка поля в null и обнуление
сканкода клавишы, при пустом поле (повторное нажатие) - клавиша не брабатывается
+ У RxDBLookupCombo не срабатывало событие OnChange
15.05.2006 - версия 1.0.16.49
+ Полностью переписан выпадающий список для объекта TRxDBLookupCombo
+ У объекта TRxDBLookupCombo введено новое свойство PopUpFormOptions - в нём
собраны все параметры выпадающего списка
если заполнен список PopUpFormOptions.Columns то список отоборажаемых
полей в гриде берётся из этого свойства, иначе возьмётся строка
LookupDisplay - здесь перечисляется список полей через точку с запятой (";")
+ В TRxMemoryData реализовал свойство AppendRecord - пока не будет написано аналогичное
в TDataSet
+ Новый Демо - RxDBGrid - демонстрация возможностей RxDBGrid
- В RxDBGrid исправлен вызов OnDrawColumnCell
08.09.2006 - версия 1.0.18.56
+ У объекта TToolPanel ввёл параметр ButtonAllign = (tbaNone, tbaLeft, tbaRignt)
выравнивание по умолчанию кнопок, tbaNone - это старое поведение
+ У объекта TToolbarItem (кнопка панели инструментов) введена поддержка типа
tbrSeparator - разделитель между кнопками
+ При закрытии списка у TRxDBLookupCombo происходит перерисовка
владельца (parent) компонента - обхожу глюк LCL в Win32
19.08.2006 - версия 1.0.17.53
+ изменил по умолчанию рамку popup окна у TRxDBLookupCombo на стиль bsNone
(так привычнее)
+ Одиночный клик мышки в списке popup окна у TRxDBLookupCombo также закрывает
его
- исправлена поведении в обработке клавиши ESC у компоненты TRxDBLookupCombo -
если поле набора данных не пустое - то происходит установка поля в null и обнуление
сканкода клавишы, при пустом поле (повторное нажатие) - клавиша не брабатывается
+ У RxDBLookupCombo не срабатывало событие OnChange
15.05.2006 - версия 1.0.16.49
+ Полностью переписан выпадающий список для объекта TRxDBLookupCombo
+ У объекта TRxDBLookupCombo введено новое свойство PopUpFormOptions - в нём
собраны все параметры выпадающего списка
если заполнен список PopUpFormOptions.Columns то список отоборажаемых
полей в гриде берётся из этого свойства, иначе возьмётся строка
LookupDisplay - здесь перечисляется список полей через точку с запятой (";")
11.05.2006 - версия 1.0.15.47
+ В RxDBGrid добавлено свойство с дополнительными параметрами, работают пока два
отображение окна поиска в списке и окна выбора колонок к отображению
+ при включённой опции в свойстве OptionsRx нажатие сочетания клавш Ctrl+F
отображает окно поиска по списку
+ при включённой опции в свойстве OptionsRx нажатие сочетания клавш Ctrl+W
отображает окно выбора колонок
+ изменён случай вызлва для события TRxDbGrid.OnGetCellProps - для ячеки, которая
в данный момент сфокусирована - событие не вызвается
+ В TRxDBGrid добавлено свойство:
11.05.2006 - версия 1.0.15.47
+ В RxDBGrid добавлено свойство с дополнительными параметрами, работают пока два
отображение окна поиска в списке и окна выбора колонок к отображению
+ при включённой опции в свойстве OptionsRx нажатие сочетания клавш Ctrl+F
отображает окно поиска по списку
+ при включённой опции в свойстве OptionsRx нажатие сочетания клавш Ctrl+W
отображает окно выбора колонок
+ изменён случай вызлва для события TRxDbGrid.OnGetCellProps - для ячеки, которая
в данный момент сфокусирована - событие не вызвается
+ В TRxDBGrid добавлено свойство:
function TRxDBGrid.ColumnByFieldName(AFieldName: string): TRxColumn
возвращает указатель на требуемый столбец по имени поля набора данных
в случае отсутсвия данного столбца - вернёт nil
11.04.2006 - версия 1.0.14.41
- небольшое исправление в отображение CurrencyEdit
14.02.2006 - версия 1.0.13.40
- исправлена отрисовка RxDbGrid с не подключённым набором данных
- исправлена в RxDbGrid отрисовка заголовка колонки с набором полей по умолчанию
+ В TToolPanel добавлена поддержка выделенного списка изображений (Selected image list)
(при наличии в нём изображений кнопки рисуются из него при наведённых на него курсоре)
- исправлена ошибка сжатия колонки в RxDbGrid (деление на 0)
- Исправлена кустомизация TToolPanel во время выполнения еслине у всех Items
установлено свойство Action
12.01.2006 - версия 1.0.12.38
+ в RxDbGrid в заголовке колонки добавлено свойство Orientation - отвечает за
направление отрисовки текста в заголовке столбца
+ добавлена демка для демонстрацииотрисовки текста вертикально (под углом 90
градусов)
возвращает указатель на требуемый столбец по имени поля набора данных
в случае отсутсвия данного столбца - вернёт nil
11.04.2006 - версия 1.0.14.41
- небольшое исправление в отображение CurrencyEdit
14.02.2006 - версия 1.0.13.40
- исправлена отрисовка RxDbGrid с не подключённым набором данных
- исправлена в RxDbGrid отрисовка заголовка колонки с набором полей по умолчанию
+ В TToolPanel добавлена поддержка выделенного списка изображений (Selected image list)
(при наличии в нём изображений кнопки рисуются из него при наведённых на него курсоре)
- исправлена ошибка сжатия колонки в RxDbGrid (деление на 0)
- Исправлена кустомизация TToolPanel во время выполнения еслине у всех Items
установлено свойство Action
12.01.2006 - версия 1.0.12.38
+ в RxDbGrid в заголовке колонки добавлено свойство Orientation - отвечает за
направление отрисовки текста в заголовке столбца
+ добавлена демка для демонстрацииотрисовки текста вертикально (под углом 90
градусов)
21.12.2005
+ в RxDbGrid добавлено свойство AllowedOperation - для запрета выплнения некоторых
операций
+ в RxDbGrid доработан обработчик события OnGetCellProps
+ в TRxMemoryData введено свойство OnFilterRecordEx - временно, пока в TDataSet
не реализуют работу свойства OnFilterRecord
16.12.2005 - версия 1.0.11.35
+ доработано поведение TToolbarButton для коректной работы
в последних сборках Lazarus
+ исправлен регистр в названиях некоторых модулей
+ пробная сборка под Linux
27.11.2005 - версия 1.0.11.34
- TToolPanel - исправлена ошибка сохранения свойств панели при
редактировании её в runtime
22.10.2005 - версия 1.0.10.33
+ TRxLabel - перенесён компонент
+ TSecretPanel - перенесён компонент
- TRxMemoryData - внесён код, обходящий ошибку востановления свойства FieldDefs
в модуле DB - работает вроде теперь всё правильно
+ TRxLoginDialog - начат перенесён
- TRxDBComboBox - небольшой багфикс
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)
+ в RxDbGrid добавлено свойство AllowedOperation - для запрета выплнения некоторых
операций
+ в RxDbGrid доработан обработчик события OnGetCellProps
+ в TRxMemoryData введено свойство OnFilterRecordEx - временно, пока в TDataSet
не реализуют работу свойства OnFilterRecord
16.12.2005 - версия 1.0.11.35
+ доработано поведение TToolbarButton для коректной работы
в последних сборках Lazarus
+ исправлен регистр в названиях некоторых модулей
+ пробная сборка под Linux
27.11.2005 - версия 1.0.11.34
- TToolPanel - исправлена ошибка сохранения свойств панели при
редактировании её в runtime
22.10.2005 - версия 1.0.10.33
+ TRxLabel - перенесён компонент
+ TSecretPanel - перенесён компонент
- TRxMemoryData - внесён код, обходящий ошибку востановления свойства FieldDefs
в модуле DB - работает вроде теперь всё правильно
+ TRxLoginDialog - начат перенесён
- TRxDBComboBox - небольшой багфикс
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)
10.10.2005
- Исправлена ошибка при рисовании изображения в RxDbGrid из ImageList,
также операция немного ускорена
- исправлена ошибка при изменении ширины колонки (деление на 0)
+ начата работа над сохранением состояния колонок RxDbGrid через FormStorage
- Небольшой багофикс при работе с изображениями в TToolPanel
+ Добавил компонент TPageManager
+ Написал новый компонент TRxAppIcon - это для тех кто не хочет возиться с
ресурсами - в момент запуска приложению будет сопоставлена указанная иконка.
т.к. она хранится не в стандартном виндовом ресурсе - поэтому проводник
будет показывать на приложении обычную иконку - но в момент запуска
появится указанная. Работает только под Windows - если кто знает как это
делается в других системах - допишите.
Когда в лазаре доделают нормальную работу с иконками - компоненту надо
переписать - а может лазарь научится создавать стандартный ресурс виндовый
для программы - тогда в этой компоненте надобность вобще отпадёт
- Исправлена ошибка при рисовании изображения в RxDbGrid из ImageList,
также операция немного ускорена
- исправлена ошибка при изменении ширины колонки (деление на 0)
+ начата работа над сохранением состояния колонок RxDbGrid через FormStorage
- Небольшой багофикс при работе с изображениями в TToolPanel
+ Добавил компонент TPageManager
+ Написал новый компонент TRxAppIcon - это для тех кто не хочет возиться с
ресурсами - в момент запуска приложению будет сопоставлена указанная иконка.
т.к. она хранится не в стандартном виндовом ресурсе - поэтому проводник
будет показывать на приложении обычную иконку - но в момент запуска
появится указанная. Работает только под Windows - если кто знает как это
делается в других системах - допишите.
Когда в лазаре доделают нормальную работу с иконками - компоненту надо
переписать - а может лазарь научится создавать стандартный ресурс виндовый
для программы - тогда в этой компоненте надобность вобще отпадёт
08.10.2005
+ Окно настройки теперь вегда сверху
+ Для более тонкой настройки отображения кнопок добави в опциях тулбара
два дополнительных флага - tpGlyphPopup, tpCaptionPopup
- небольшие багофиксы
+ реализована работа с изображениями в RxDbGrid через ImageList (см. readmy.txt)
+ Добавлен компонент TRXXPManifest - работает только под Windows -
поддержка XP манифеста
+ Окно настройки теперь вегда сверху
+ Для более тонкой настройки отображения кнопок добави в опциях тулбара
два дополнительных флага - tpGlyphPopup, tpCaptionPopup
- небольшие багофиксы
+ реализована работа с изображениями в RxDbGrid через ImageList (см. readmy.txt)
+ Добавлен компонент TRXXPManifest - работает только под Windows -
поддержка XP манифеста
05.10.2005
+ убрал свойстов Flat, TransparentBtn
+ Добавил свойство Options, включающее tpFlatBtns, tpTransparentBtns
+ Добавил включение окна настройки подвойному клику на панели
правой кнопкой мышки с зажатым Ctrl
- исправл баг множественного открытия окна настройки панели
+ у TToolbarItem добавил свойство Tag
+ убрал свойстов Flat, TransparentBtn
+ Добавил свойство Options, включающее tpFlatBtns, tpTransparentBtns
+ Добавил включение окна настройки подвойному клику на панели
правой кнопкой мышки с зажатым Ctrl
- исправл баг множественного открытия окна настройки панели
+ у TToolbarItem добавил свойство Tag
04.10.2005
+ в TToolPanel пофиксил баг не верного начального размера кнопки
+ Добавлена возможность прорисовки кнопок в стиле WindowsXP
+ При в стиле Flat и WindowsXP при наведении курсора на кнопку
она приподнимается для лучшего визуализации
- т.к. TImageList.Draw не умеет рисовать запроещённое состояние
изоражения при задисабливании Action не дисаблится картинка
также из-за этого нет возможности сделать изображение с тенью
- вылазиет баг в лазаре если в дизайнере удалить напрямую с панели
кнопку (не через Items) - ещё не знаю как в лазаре в дизайнере
для некоторых элементов запретить удаление
+ Добавил демку для TToolPanel
+ в TToolPanel пофиксил баг не верного начального размера кнопки
+ Добавлена возможность прорисовки кнопок в стиле WindowsXP
+ При в стиле Flat и WindowsXP при наведении курсора на кнопку
она приподнимается для лучшего визуализации
- т.к. TImageList.Draw не умеет рисовать запроещённое состояние
изоражения при задисабливании Action не дисаблится картинка
также из-за этого нет возможности сделать изображение с тенью
- вылазиет баг в лазаре если в дизайнере удалить напрямую с панели
кнопку (не через Items) - ещё не знаю как в лазаре в дизайнере
для некоторых элементов запретить удаление
+ Добавил демку для TToolPanel
03.10.2005
+ перевёл все имена файлов к нижнему регистру
+ в TToolPanel пофиксил некторые баги
+ работает окно настройки панели
+ Поддерживается DropDownMenu в стиле полного нажатия кнопки
+ скрытие не нужных кнопок (настройка в run-time)
+ перевёл все имена файлов к нижнему регистру
+ в TToolPanel пофиксил некторые баги
+ работает окно настройки панели
+ Поддерживается DropDownMenu в стиле полного нажатия кнопки
+ скрытие не нужных кнопок (настройка в run-time)
02.10.2005 (beta)
+ Начата реализация (полностью своя) TToolPanel - аналог RxToolbar
по функциональности похоже на стандартный ToolBar - точно
также работает через Actions (для добавления кнопок использовать метод Items)
полностью моя перерисовка кнопок - нормальный внешний вид.
работает:
+ кустомизация расположения кнопок и внешнего вида в run-time
+ сохранение во внешний конфигурационный файл через propstorage
будут реализованы:
- DropDownMenu - в зависимости от стиля кнопки либо выпадает
при нажатии на кнопку, либо будет отдельнная облясть кнопки (суб.кнопка) для
вызова меню
- скрытие ненужных кнопок (настройка в run-time)
- стили отображения (сейчас стандарт Win9x, Flat) - добавляю как в WinXP
- мастер создания панели в DesignTime в лазаре
змеченые глюки
- не всегда коректно востанавливается при ширина кнопок
+ Начата реализация (полностью своя) TToolPanel - аналог RxToolbar
по функциональности похоже на стандартный ToolBar - точно
также работает через Actions (для добавления кнопок использовать метод Items)
полностью моя перерисовка кнопок - нормальный внешний вид.
работает:
+ кустомизация расположения кнопок и внешнего вида в run-time
+ сохранение во внешний конфигурационный файл через propstorage
будут реализованы:
- DropDownMenu - в зависимости от стиля кнопки либо выпадает
при нажатии на кнопку, либо будет отдельнная облясть кнопки (суб.кнопка) для
вызова меню
- скрытие ненужных кнопок (настройка в run-time)
- стили отображения (сейчас стандарт Win9x, Flat) - добавляю как в WinXP
- мастер создания панели в DesignTime в лазаре
змеченые глюки
- не всегда коректно востанавливается при ширина кнопок
принимаю заявки на функциональность и ошибки
принимаю заявки на функциональность и ошибки
30.10.2005
+ перенёс
+ перенёс RxDice, RxSwith, TRxDBComboBox
+ Разбил на 2 закладки - RX и RX DBAware
- исправил баг с начальным размером у TRxDBLookupCombo
+ перенёс
+ перенёс RxDice, RxSwith, TRxDBComboBox
+ Разбил на 2 закладки - RX и RX DBAware
- исправил баг с начальным размером у TRxDBLookupCombo
28.10.2005
+ практически работает Currency edit (не проверил под линухом)
- из-за ошибки в функиции FormatFloat из FCL нельзя использовать в строке
форматирования одинарные или двойные кавычки - повесится
+ практически работает Currency edit (не проверил под линухом)
- из-за ошибки в функиции FormatFloat из FCL нельзя использовать в строке
форматирования одинарные или двойные кавычки - повесится
19.10.2005
+ TRxMemoryData - работает почти полностью - нет поддержки blob - надо разбирать
+ начал перенос Currency edit
+ правил ошибки
- ещё не всё проверил в линуксе - теоретически должно собраться и работать
+ TRxMemoryData - работает почти полностью - нет поддержки blob - надо разбирать
+ начал перенос Currency edit
+ правил ошибки
- ещё не всё проверил в линуксе - теоретически должно собраться и работать
05.10.2005
+ Добавлен TRxDBGrid - написан по "мотивам оригинального, ещё есть что переносить
самое главное, почему его начал переносить - захотелось сделать сортировку
наборов данных как в DBGridEh из EhLib. Я вышел с предложением на
Jesus Reyes (автор DBGrid-а о добавлении функциональности) - он сказал, что нефиг
превращать стандартный компонент в новогоднюю ёлку. Поэтому стал сам доделывать
наследника.
Сейчас работает многострочные заголовки, подерживается нажатие на заголовок
как на кнопку с опциональным отображением символа сортировки (соответсвующее событие)
+ Добавлен TRxDBGrid - написан по "мотивам оригинального, ещё есть что переносить
самое главное, почему его начал переносить - захотелось сделать сортировку
наборов данных как в DBGridEh из EhLib. Я вышел с предложением на
Jesus Reyes (автор DBGrid-а о добавлении функциональности) - он сказал, что нефиг
превращать стандартный компонент в новогоднюю ёлку. Поэтому стал сам доделывать
наследника.
Сейчас работает многострочные заголовки, подерживается нажатие на заголовок
как на кнопку с опциональным отображением символа сортировки (соответсвующее событие)
также добавил механизм автосортировки см. файл exSortFB.pas - тут наиболее лаконично
всё. Кратко - для необходимых типов источноков данных
пишется обёртка (наследник от TExDBGridSortEngine) который умеет в этом
источнике данных переупорядочивать записи. Мой TFBDataSet (работаю с FireBird)
умеет сам в локальном кэше сортировать запис - поэтому там всё просто.
exsortmds.pas - этот модуль для сортировки данных в стандартном MemDS
немного кривовато написано - практически нет механизмов добраться до внутреннего
буфера данных (кстати в MemDS есть баг позиционирования курсора на 1-ю запись)
также добавил механизм автосортировки см. файл exSortFB.pas - тут наиболее лаконично
всё. Кратко - для необходимых типов источноков данных
пишется обёртка (наследник от TExDBGridSortEngine) который умеет в этом
источнике данных переупорядочивать записи. Мой TFBDataSet (работаю с FireBird)
умеет сам в локальном кэше сортировать запис - поэтому там всё просто.
exsortmds.pas - этот модуль для сортировки данных в стандартном MemDS
немного кривовато написано - практически нет механизмов добраться до внутреннего
буфера данных (кстати в MemDS есть баг позиционирования курсора на 1-ю запись)
- TRxMemoryData - вроде всё скомпилировалось практически без правки - но чтото при
добавлении записи - ошибка (подозреваю не совместимость DataSet-а из дельфей и Лазаря)
надо разобраться. Стандартный MemDS ограничен - нет блоб и прочего.
- TRxMemoryData - вроде всё скомпилировалось практически без правки - но чтото при
добавлении записи - ошибка (подозреваю не совместимость DataSet-а из дельфей и Лазаря)
надо разобраться. Стандартный MemDS ограничен - нет блоб и прочего.
31.09.2005
+ Add component TFolderLister - это моя разработка - на основе неё добавлю
ещё компонент для построения меню, содержащее отчёты для LazReport-a
(аналог у меня в дельфях моей также разработки)
+ Add component TFolderLister - это моя разработка - на основе неё добавлю
ещё компонент для построения меню, содержащее отчёты для LazReport-a
(аналог у меня в дельфях моей также разработки)
07.01.2005
i'm port next RX components:
TDBDateEdit - не даёт вводить значения руками - наследство от оригинального
TDBDateEdit - не даёт вводить значения руками - наследство от оригинального
TDateEdit
TRxDBCalcEdit
TRXLookupEdit,
TRxDBLookupCombo - тут баг - при кидании на форму не коректно устанавливаются
размеры, приходится руками ресайзить - когда нить доделаю - или кто сможет -
помогайте.
TRxDBLookupCombo - тут баг - при кидании на форму не коректно устанавливаются
размеры, приходится руками ресайзить - когда нить доделаю - или кто сможет -
помогайте.
and next modules:
@ -355,8 +356,8 @@
RXStrutils.pas
VCLUtils.pas
жду замечаний и предложений
Лагунов Алексей (alexs)
жду замечаний и предложений
Лагунов Алексей (alexs)
ALEXS75-на-YANDEX-точка-RU
ALEXS75-на-YANDEX-точка-RU

View File

@ -1,2 +1,2 @@
Замеченные проблемы:
Замеченные проблемы:

View File

@ -1,6 +1,6 @@
1.
Q. Почему в выподающем списке TRxCustomDBLookupCombo клавишы
HOME и END не позиционируют в начало/конец списка
A. Для отображения списка используется объект TRxDBGrid
(прямой наследник TDBGrid) - в нём для позиционирования в
начало/конец списка клавиши Ctrl+Home/Ctrl+End
1.
Q. Почему в выподающем списке TRxCustomDBLookupCombo клавишы
HOME и END не позиционируют в начало/конец списка
A. Для отображения списка используется объект TRxDBGrid
(прямой наследник TDBGrid) - в нём для позиционирования в
начало/конец списка клавиши Ctrl+Home/Ctrl+End

View File

@ -1,51 +1,51 @@
1. Для использовании в RxDbGrid списка изображений ImageList
необходимо указать в свойстве KeyList правило выбора изображения
в формате "Значение поля"="Код изображения"
т.е. если поле принимает значения 1,2,3 а для этих значений необходимы
рисунки с номерами 2,5,1 то список необходимо заполнить следующим
образом:
1. Для использовании в RxDbGrid списка изображений ImageList
необходимо указать в свойстве KeyList правило выбора изображения
в формате "Значение поля"="Код изображения"
т.е. если поле принимает значения 1,2,3 а для этих значений необходимы
рисунки с номерами 2,5,1 то список необходимо заполнить следующим
образом:
1=2
2=5
3=1
2. TPageManager предназначен для построения мастеров
умеет отображать в заголовке формы (если установлена соответсвующая опция)
текст, который сформатирует из строк информациия (пропускается через функцию Format)
строка информации может содержать в себе два целочисленных параметра (%d)
первый - текущий шаг
второй - всего шагов
пример:
'Мастер приёма. Шаг %d из %d.'
2. TPageManager предназначен для построения мастеров
умеет отображать в заголовке формы (если установлена соответсвующая опция)
текст, который сформатирует из строк информациия (пропускается через функцию Format)
строка информации может содержать в себе два целочисленных параметра (%d)
первый - текущий шаг
второй - всего шагов
пример:
'Мастер приёма. Шаг %d из %d.'
StatusControl - если установлен то в заголовке также отображается эта же
информация.
StatusControl - если установлен то в заголовке также отображается эта же
информация.
событие OnCheckPageEnabled служит для указания, что конкретная страница
запрещена при нажатии на кнопки Next и Prior эта страница пропускается
событие OnCheckPageEnabled служит для указания, что конкретная страница
запрещена при нажатии на кнопки Next и Prior эта страница пропускается
3. RxAppIcon - для выбора иконки приложения в режиме разработки нажмите
правой кнопкой мышки по компоненте и выберите "Load Icon"
3. RxAppIcon - для выбора иконки приложения в режиме разработки нажмите
правой кнопкой мышки по компоненте и выберите "Load Icon"
В ран-тайме тот-же эффект достигается кодом:
В ран-тайме тот-же эффект достигается кодом:
RxAppIcon1.LoadFromFile('full-2.ico');
RxAppIcon1.ApplyIcon;
^^^^^^^^^^^ - путь к иконке
^^^^^^^^^^^ - путь к иконке
4. Для нормальной работы используйте последнюю версию Lazarus
сборкой не ниже 0.9.19 (10151) - появилась в SVN 01.11.2006
4. Для нормальной работы используйте последнюю версию Lazarus
сборкой не ниже 0.9.19 (10151) - появилась в SVN 01.11.2006
5. Замечание о RXDBGRID_OPTIONS_WO_CANCEL_ON_EXIT и флаге dgCancelOnExit в
5. Замечание о RXDBGRID_OPTIONS_WO_CANCEL_ON_EXIT и флаге dgCancelOnExit в
TRxDbGrid.Options
в случае использования следующей схемы под линуксом:
В форму ложим список TRxDbGrid с открытым набором данных и отдельную кнопку (TSpeedButton) на
добавление новой записи в набор данных с вызовом другой модальной формы для редактирования
добовляемых значение
при открытии формы редактирования набор данных, связанный с TRxDbGrid переходит в состояние
редактирования
это поведени наблюдается только по Linux
в случае использования следующей схемы под линуксом:
В форму ложим список TRxDbGrid с открытым набором данных и отдельную кнопку (TSpeedButton) на
добавление новой записи в набор данных с вызовом другой модальной формы для редактирования
добовляемых значение
при открытии формы редактирования набор данных, связанный с TRxDbGrid переходит в состояние
редактирования
это поведени наблюдается только по Linux
объяснение заключается в том что при потере фокуса TDbGrid и его наследниеи вызывают
метод Cancel
объяснение заключается в том что при потере фокуса TDbGrid и его наследниеи вызывают
метод Cancel
6. Вопросы задавать мылом или на форуме FreePascal.ru (предпочтительней)
6. Вопросы задавать мылом или на форуме FreePascal.ru (предпочтительней)

View File

@ -1,9 +1,9 @@
1.
в TPageManager необходимо обработать ситуация прямого изменения
закладки в PageControl-е
1.
в TPageManager необходимо обработать ситуация прямого изменения
закладки в PageControl-е
2. В RxDBGrid
- планирую сделать объеденение заголовков в один групирующий:
2. В RxDBGrid
- планирую сделать объеденение заголовков в один групирующий:
|-----------------|
| |
|-----------------|

View File

@ -27,8 +27,8 @@ type
TOptionRx = (rdgAllowColumnsForm,
rdgAllowDialogFind,
rdgHighlightFocusCol, //TODO: необходимо реализовать подсветку выбранного столбца
rdgHighlightFocusRow, //TODO: необходимо реализовать подсветку выбранной строки
rdgHighlightFocusCol, //TODO:
rdgHighlightFocusRow, //TODO:
rdgDblClickOptimizeColWidth,
rdgFooterRows,
rdgXORColSizing,

191
components/rx/rxhistory.pas Normal file
View File

@ -0,0 +1,191 @@
unit RXHistory;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,
rxtoolbar;
type
TToolbarButtonStyleCntrl = (tbrcNotChange, tbrcDropDown, tbrcDropDownExtra);
PNavigateRec = ^TNavigateRec;
TNavigateRec = packed record
Name:string;
Cond:string;
Next:PNavigateRec;
end;
TOnNavigateEvent = procedure(Sender:TObject; const EventName, EventMacro:string) of object;
{ TRXHistory }
TRXHistory = class(TComponent)
private
FButtonNext: string;
FButtonPrior: string;
FButtonStyle: TToolbarButtonStyleCntrl;
FNextButton: TToolbarItem;
FNextButtonName: string;
FOnNavigateEvent: TOnNavigateEvent;
FPriorButton: TToolbarItem;
FPriorButtonName: string;
FToolPanel: TToolPanel;
function GetNextButtonName: string;
function GetPriorButtonName: string;
procedure SetButtonStyle(const AValue: TToolbarButtonStyleCntrl);
procedure SetNextButtonName(const AValue: string);
procedure SetPriorButtonName(const AValue: string);
procedure SetToolPanel(const AValue: TToolPanel);
function SetBtn(const ABtnName: string;var Button:TToolbarItem):boolean;
protected
procedure Loaded; override;
public
constructor Create(AOwner: TComponent); override;
property PriorButton:TToolbarItem read FPriorButton;
property NextButton:TToolbarItem read FNextButton;
published
property ToolPanel:TToolPanel read FToolPanel write SetToolPanel;
property PriorButtonName:string read GetPriorButtonName write SetPriorButtonName;
property NextButtonName:string read GetNextButtonName write SetNextButtonName;
property ButtonStyle:TToolbarButtonStyleCntrl read FButtonStyle write SetButtonStyle default tbrcNotChange;
property OnNavigateEvent:TOnNavigateEvent read FOnNavigateEvent write FOnNavigateEvent;
end;
procedure Register;
implementation
uses PropEdits, Componenteditors, TypInfo;
type
{ TTRXHistoryBtnNameProperty }
TTRXHistoryBtnNameProperty = class(TStringPropertyEditor)
public
function GetAttributes: TPropertyAttributes; override;
procedure GetValues(Proc: TGetStrProc); override;
end;
{ TTRXHistoryBtnNameProperty }
function TTRXHistoryBtnNameProperty.GetAttributes: TPropertyAttributes;
begin
Result:=inherited GetAttributes;
Result:=Result + [paValueList, paSortList, paMultiSelect];
end;
procedure TTRXHistoryBtnNameProperty.GetValues(Proc: TGetStrProc);
var
ToolPanel:TToolPanel;
i:integer;
begin
ToolPanel := GetObjectProp(GetComponent(0), 'ToolPanel') as TToolPanel;
if Assigned(ToolPanel) then
for I := 0 to ToolPanel.Items.Count - 1 do
begin
if Assigned(ToolPanel.Items[i].Action) then
Proc(ToolPanel.Items[i].Action.Name);
end;
end;
procedure Register;
begin
RegisterComponents('RX',[TRXHistory]);
RegisterPropertyEditor(TypeInfo(string), TRXHistory, 'PriorButtonName', TTRXHistoryBtnNameProperty);
RegisterPropertyEditor(TypeInfo(string), TRXHistory, 'NextButtonName', TTRXHistoryBtnNameProperty);
end;
{ TRXHistory }
procedure TRXHistory.SetToolPanel(const AValue: TToolPanel);
begin
if FToolPanel=AValue then exit;
FToolPanel:=AValue;
end;
function TRXHistory.SetBtn(const ABtnName: string;var Button:TToolbarItem):boolean;
var
i:integer;
begin
Result:=false;
if not Assigned(FToolPanel) then exit;
Button:=FToolPanel.Items.ByActionName[ABtnName];
Result:=Assigned(Button);
if Result then
begin
case FButtonStyle of
tbrcDropDown:Button.ButtonStyle:=tbrDropDown;
tbrcDropDownExtra:Button.ButtonStyle:=tbrDropDownExtra;
end;
end;
end;
procedure TRXHistory.Loaded;
begin
inherited Loaded;
if not SetBtn(FNextButtonName, FNextButton) then
FNextButtonName:='';
if not SetBtn(FPriorButtonName, FPriorButton) then
FPriorButtonName:='';
end;
constructor TRXHistory.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FButtonStyle:=tbrcNotChange;
end;
procedure TRXHistory.SetNextButtonName(const AValue: string);
begin
if FNextButtonName=AValue then exit;
if csLoading in ComponentState then
FNextButtonName:=AValue
else
begin
if SetBtn(AValue, FNextButton) then
FNextButtonName:=AValue
else
FNextButtonName:='';
end;
end;
procedure TRXHistory.SetButtonStyle(const AValue: TToolbarButtonStyleCntrl);
begin
if FButtonStyle=AValue then exit;
FButtonStyle:=AValue;
end;
function TRXHistory.GetNextButtonName: string;
begin
if Assigned(NextButton) and Assigned(NextButton.Action) then
Result:=NextButton.Action.Name
else
Result:='';
end;
function TRXHistory.GetPriorButtonName: string;
begin
if Assigned(PriorButton) and Assigned(PriorButton.Action) then
Result:=PriorButton.Action.Name
else
Result:='';
end;
procedure TRXHistory.SetPriorButtonName(const AValue: string);
begin
if FPriorButtonName=AValue then exit;
if csLoading in ComponentState then
FPriorButtonName:=AValue
else
begin
if SetBtn(AValue, FPriorButton) then
FPriorButtonName:=AValue
else
FPriorButtonName:='';
end;
end;
end.

View File

@ -946,8 +946,11 @@ begin
if FValue <> Value then
begin
FValue := Value;
FLocateObject.Locate(FLookupField, FValue, true, false);
KeyValueChanged;
if Assigned(FLookupDataLink.DataSet) and (FLookupDataLink.DataSet.Active) then
begin
FLocateObject.Locate(FLookupField, FValue, true, false);
KeyValueChanged;
end;
end;
end;