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;