RxFPC: Rename TDBDateEdit to TRxDBDateEdit. Warning - this version of RxFPC ONLY for Lazarus 1.3 and later

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3869 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2015-01-06 06:09:20 +00:00
parent 218ee092dd
commit 408e81b6ea
11 changed files with 41 additions and 657 deletions

View File

@ -41,12 +41,8 @@ uses
type
{ TDBDateEdit }
{$IFDEF DBDateEdit_OLD}
TDBDateEdit = class(TDateEdit)
{$ELSE}
TDBDateEdit = class(TRxDateEdit)
{$ENDIF}
{ TRxDBDateEdit }
TRxDBDateEdit = class(TRxDateEdit)
private
FDataLink:TFieldDataLink;
FDefaultToday: Boolean;
@ -66,13 +62,8 @@ type
procedure LMCut(var Message: TLMessage); message LM_CUT;
procedure LMPaste(var Message: TLMessage); message LM_PASTE;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
{$IFDEF OLD_EDITBUTTON}
procedure Change; override;
procedure DoButtonClick (Sender: TObject); override;
{$ELSE}
procedure ButtonClick; override;
procedure EditChange; override;
{$ENDIF}
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure EditingDone; override;
Procedure RunDialog; virtual;
@ -109,11 +100,7 @@ type
procedure LMCut(var Message: TLMessage); message LM_CUT;
procedure LMPaste(var Message: TLMessage); message LM_PASTE;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
{$IFDEF OLD_EDITBUTTON}
procedure Change; override;
{$ELSE}
procedure EditChange; override;
{$ENDIF}
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure EditingDone; override;
Procedure RunDialog; override;
@ -129,29 +116,29 @@ type
implementation
uses DateUtil;
{ TDBDateEdit }
{ TRxDBDateEdit }
procedure TDBDateEdit.DoCheckEnable;
procedure TRxDBDateEdit.DoCheckEnable;
begin
Enabled:=FDataLink.Active and (FDataLink.Field<>nil) and (not FDataLink.Field.ReadOnly);
end;
function TDBDateEdit.GetDataField: string;
function TRxDBDateEdit.GetDataField: string;
begin
Result:=FDataLink.FieldName;
end;
function TDBDateEdit.GetDataSource: TDataSource;
function TRxDBDateEdit.GetDataSource: TDataSource;
begin
Result:=FDataLink.DataSource;
end;
function TDBDateEdit.GetReadOnly: Boolean;
function TRxDBDateEdit.GetReadOnly: Boolean;
begin
Result:=FDataLink.ReadOnly;
end;
procedure TDBDateEdit.SetDataField(const AValue: string);
procedure TRxDBDateEdit.SetDataField(const AValue: string);
begin
try
FDataLink.FieldName:=AValue;
@ -160,19 +147,19 @@ begin
end;
end;
procedure TDBDateEdit.SetDataSource(const AValue: TDataSource);
procedure TRxDBDateEdit.SetDataSource(const AValue: TDataSource);
begin
FDataLink.DataSource:=AValue;
DoCheckEnable;
end;
procedure TDBDateEdit.SetReadOnly(const AValue: Boolean);
procedure TRxDBDateEdit.SetReadOnly(const AValue: Boolean);
begin
inherited ReadOnly:=AValue;
FDataLink.ReadOnly:=AValue;
end;
procedure TDBDateEdit.CMExit(var Message: TLMessage);
procedure TRxDBDateEdit.CMExit(var Message: TLMessage);
begin
try
FDataLink.UpdateRecord;
@ -184,19 +171,19 @@ begin
inherited;
end;
procedure TDBDateEdit.LMCut(var Message: TLMessage);
procedure TRxDBDateEdit.LMCut(var Message: TLMessage);
begin
FDataLink.Edit;
inherited;
end;
procedure TDBDateEdit.LMPaste(var Message: TLMessage);
procedure TRxDBDateEdit.LMPaste(var Message: TLMessage);
begin
FDataLink.Edit;
inherited;
end;
procedure TDBDateEdit.KeyDown(var Key: Word; Shift: TShiftState);
procedure TRxDBDateEdit.KeyDown(var Key: Word; Shift: TShiftState);
begin
inherited KeyDown(Key, Shift);
if Key=VK_ESCAPE then
@ -216,22 +203,14 @@ begin
end;
end;
{$IFDEF OLD_EDITBUTTON}
procedure TDBDateEdit.Change;
{$ELSE}
procedure TDBDateEdit.EditChange;
{$ENDIF}
procedure TRxDBDateEdit.EditChange;
begin
if Assigned(FDataLink) then
FDataLink.Modified;
{$IFDEF OLD_EDITBUTTON}
inherited Change;
{$ELSE}
inherited EditChange;
{$ENDIF}
end;
procedure TDBDateEdit.Notification(AComponent: TComponent; Operation: TOperation
procedure TRxDBDateEdit.Notification(AComponent: TComponent; Operation: TOperation
);
begin
inherited Notification(AComponent, Operation);
@ -245,39 +224,31 @@ begin
end;
end;
procedure TDBDateEdit.EditingDone;
procedure TRxDBDateEdit.EditingDone;
begin
inherited EditingDone;
if FDataLink.CanModify then
FDataLink.UpdateRecord;
end;
procedure TDBDateEdit.RunDialog;
procedure TRxDBDateEdit.RunDialog;
begin
if FDataLink.CanModify then
FDataLink.UpdateRecord;
end;
{$IFDEF OLD_EDITBUTTON}
procedure TDBDateEdit.DoButtonClick(Sender: TObject);
{$ELSE}
procedure TDBDateEdit.ButtonClick;
{$ENDIF}
procedure TRxDBDateEdit.ButtonClick;
begin
{$IFDEF OLD_EDITBUTTON}
inherited DoButtonClick(Sender);
{$ELSE}
inherited ButtonClick;
{$ENDIF}
RunDialog;
end;
procedure TDBDateEdit.ActiveChange(Sender: TObject);
procedure TRxDBDateEdit.ActiveChange(Sender: TObject);
begin
DoCheckEnable;
end;
procedure TDBDateEdit.DataChange(Sender: TObject);
procedure TRxDBDateEdit.DataChange(Sender: TObject);
begin
if Assigned(FDataLink.Field) and
(FDataLink.Field is TDateTimeField) then
@ -290,7 +261,7 @@ begin
else Text:='';
end;
procedure TDBDateEdit.EditingChange(Sender: TObject);
procedure TRxDBDateEdit.EditingChange(Sender: TObject);
begin
inherited ReadOnly := not FDataLink.Editing;
if FDataLink.Editing and DefaultToday and (FDataLink.Field <> nil) and
@ -298,7 +269,7 @@ begin
FDataLink.Field.AsDateTime := SysUtils.Now;
end;
procedure TDBDateEdit.UpdateData(Sender: TObject);
procedure TRxDBDateEdit.UpdateData(Sender: TObject);
var
D: TDateTime;
begin
@ -312,7 +283,7 @@ begin
end;
end;
constructor TDBDateEdit.Create(AOwner: TComponent);
constructor TRxDBDateEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FDataLink:=TFieldDataLink.Create;
@ -324,7 +295,7 @@ begin
//UpdateMask;
end;
destructor TDBDateEdit.Destroy;
destructor TRxDBDateEdit.Destroy;
begin
FreeAndNil(FDataLink);
inherited Destroy;
@ -454,18 +425,10 @@ begin
end;
end;
{$IFDEF OLD_EDITBUTTON}
procedure TRxDBCalcEdit.Change;
{$ELSE}
procedure TRxDBCalcEdit.EditChange;
{$ENDIF}
begin
FDataLink.Modified;
{$IFDEF OLD_EDITBUTTON}
inherited Change;
{$ELSE}
inherited EditChange;
{$ENDIF}
end;
procedure TRxDBCalcEdit.Notification(AComponent: TComponent;

View File

@ -1,88 +1,7 @@
+ Keys PgUp/PgDn correctly go through previous/next month in TRxCalendarGrid and TRxDateEdit
+ if try edit closed TRxMemoryData in error message display TRxMemoryData.Name
+ fix create resource from XPM image
+ draw shadow on button image in TToolPanel
- Fix error in TDBComboBox.EditingDone if DataSet = nil
- new code for align button on TToolPanel
+ property OnUTF8KeyPress now published
+ New value for ToolPanel.ToolBarStyle - tbsNative - for draw buttons used standart theme from OS
+ fix options dialog for TToolPanel
+ In TRxDateEdit add new property - ValidDate. Check valid input.
+ add 2 component from original RX: TRxSpinButton � TRxSpinEdit (Edward Ivanov)
- fix images for TRxClock, TRxDateEdit, TAutoPanel (Edward Ivanov)
- fix error in TRxDatePicker (Edward Ivanov)
+ Add new components: TRxDBSpinEdit, TRxTimeEdit, TRxDBTimeEdit
+ TRxLoginDialo now work.
+ Rewrite code for draw vertical text in titles RXDBGrid. Code from TAChart
+ published BorderSpacing in TRxLabel
+ add demo application for AutoSort in RxDBGrid
- fix sort order in TRxMemDataSet
- fix draw buttons in ToolPanel with use system themes
- fix error in TRxDBComboBox
+ New mode - Quick search data in grid (code from Aleksey Kozlov with minor fix)
- fix error in sort data for Postgres (grigoreo)
22.05.2008 - version 2.0.0.136 (svn revision 100)
+ In TRxCustomDBLookupCombo add check for CircularDataLink
+ in TRxCustomDBLookupCombo accelerated drawing data
- In TRxCustomDBLookupCombo fix select first record if DataField is emty
+ In RxDBGrid are published missing events from DBGrid
+ New component TRxCalendarGrid - simple calendar without heading.
- fix error compile module rxappicon.pas in Windows for GTK2 (thx ViruZ)
+ add new module rxiconv.pas (original module iconv.pas from A.Voito)
+ minor fix in drawing button caption in setup form TToolbar
+ fix draw disables state for TRxCustomDBLookupCombo
- fix compile rxctrls in fpc 2.2
+ TPopUpColumnTitle used define NEW_STYLE_TITLE_ALIGNMENT_RXDBGRID
+ in RxDBGrid images of markers moved to rxdbgrids.lrs (Petr Smolik)
+ add module for autosort in RxDBGrid exsortzeos.pas for ZeosDB (Petr Smolik)
- In TCurrencyEdit property BorderSpacing now published
+ New procedure StrToStrings in module rxstrutils - fill List:TStrings
procedure StrToStrings(const S:string; const List:TStrings; const Delims:Char);
+ New editor for TField object with Lookup source in TRxDBGrid - base on class TRxDBLookupCombo
+ In TRxDBLookupCombo work property AutoSize
+ After change property Font in TRxDBLookupCombo dropdown list used this font
+ In RxDBGrid create lookup editor for TField
- Fix error in TRxLookupEdit
+ In RxDBGrid published new property from DBGrid
+ Cosmetic fix in paint TRxCustomDBLookupCombo
+ Dropdown list in TRxCustomDBLookupCombo show after clikc on component
+ minor fix in RxDBGrid paint sort marker and column title
+ New component - TRxDateEdit
+ In RxDBGrid create editor for field with type ftDate, ftDateTime - based on TRxDateEdit
(see Demos/RxDBGrid)
- minor fix in filter combobox in RxDBGrid for GTK and GTK2
+ TRxSpeedButton and TRxClock
+ new procedure in module dbutils - FillValueForField
+ editor for property TRxColumnFooter.FieldName
+ TDBDateEdit inherited from TRxDateEdit, for old style use DBDateEdit_OLD compiller directive
(see rx.inc).
+ In RxDBGrid property FixedHotColor now published
- fix error with empty sring in TRxDateEdit.
+ 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
+ In PopUpFormOptions add editor for property Collumns[x].FieldName
29.08.2007 - version 1.1.5.98 (svn revision 39)
+ In RxDBgrid - after close dataset list of SelectedRows is cleared
+ fix resaizing find form for RxDbGrd
+ compile in latest Lazarus
+ in TToolbarButton stile tbrSeparator and tbrDivider as Delphi
tbrSeparator - separator with line
tbrDivider - empty separator
+ in TToolbarButton new style tbrDropDownExtra - button with dropdown menu.
12.08.2007 - version 1.1.4.93
+ in TRxDBComboBox publishe any property
+ in TRxDBLookupCombo add event OnGetGridCellProps
+ in rx.inc new define
RXDBGRID_OPTIONS_WO_CANCEL_ON_EXIT
- in RxDBGrid fix error lose focuse after close filte list
+ in demo for RxDBGrid add demos �for visual filtring data
+ add new component - TAutoPanel ( Dmitry V. Bolshakov) -
doc ifn folder auto_panel_doc
+ in property OptionsRX add new flag - rdgMrOkOnDblClik
+ rename TDBDateEdit to TRxDBDateEdit.
!!!!Warning - this version of RxFPC ONLY for Lazarus 1.3 and later
06.01.2015 - version 2.2 for Lazarus 1.2
- create version in folder "version/v2.2_laz_1.2"
Lagunov Aleksey (alexs)
ALEXS75-at-YANDEX-dot-RU

View File

@ -1,443 +1,8 @@
+ Клавиши PgUp/PgDn корректно пролистывают предыдущий/следующий месяц в TRxCalendarGrid и TRxDateEdit
+ При попытке редактирования закрытого набора данных TRxMemoryData в сообщении об ошибке выдаётся наименование набора данных
+ Исправлено создание ресурсов из XPM файлов
+ Доработана отрисовка тени у кнопки на TToolPanel
- Исправлена ошибка в TDBComboBox.EditingDone; если не присвоен DataSet
- Переработан код выравнивания кнопок на TToolPanel
+ Опубликовано свойство OnUTF8KeyPress;
+ Свойство ToolPanel.ToolBarStyle теперь может принимать значение tbsNative - для отрисовки кнопок используется
текущая тема
+ Доработано окно настройки панели инструментов
+ У компоненты TRxDateEdit добавлено свойствой - ValidDate. Определяет коректность введённой даты.
+ Добавлена два исходных компонента: TRxSpinButton и TRxSpinEdit (автор порта - Edward Ivanov)
- исправлены глифы у TRxClock, TRxDateEdit, TAutoPanel (Edward Ivanov)
- Исправления в TRxDatePicker (Edward Ivanov)
+ Добавлены компоненты TRxDBSpinEdit, TRxTimeEdit, TRxDBTimeEdit
+ TRxLoginDialo теперь работает. По сравнению с оригинальным функционал сильно расширен.
Изменён дизайн формы
+ Улучшена отрисовка вертикальных заголовков в гриде. Код из TAChart
+ Опубликова BorderSpacing в TRxLabel
+ Добавлен пример для использования автоматической сортировки в RxDBGrid
- Исправлена сортировка при использовании TRxMemDataSet
- Исправлена отрисова кнопки в ToolPanel при отрисовке с использованием текущей темы
+ Реализована возможность объединения ячеек в заголовке таблицы
(смотрите в демке на RxDBGrid)
- Исправлена ошибка установки значения для TRxDBComboBox
+ Реализовн режим быстрого поиска (код от Алексея Козлова с небольшими доработками) - подробнее смотри пункт 6 в
файле readmy.txt
- Исправлена ошибка при работе сортировки с рускими полями под Postgres (grigoreo)
+ В опциях FBDataSet добавлен флаг poNotSetDefaultParams - не устанавливать форматы полей при открытии БД
- Исправлена ошибка переключения стиля RxDateEdit с диалога на popup
+ Улучшена отрисовка текста кнопки в ToolBar
+ Свойство TCustomRxDateEdit.YearDigits теперь работает
+ Большой патч от Rene Herranz Daniel (rhdaniel74.(at).gmail.com) - доработки по сортировке данных,
меню правого верхнего угла, фильтрация данных
+ Начато написание документации в формета LazDoc
- Исправлено изменение цвета конца недели в RxDateEdit
+ Добавлена демка для RxDBLookup
+ У объекта TRxDBLookupCombo опубликовано свойство Text - установка значения для него вызывает поиск по лукап-листу
+ Локальная фильтрация в RxDBGrid-е использует значения Field.DisplayText, а не Field.AsString
+ В форме настроек колонок RxDBGrid работает перемещение столбцов
+ При сохранении состояния RxDBGrid сохраняется также положение столбцов
- Исправлена ошибка в RxDBGrid при сохранении состояния Visible колонок
+ В RxDBGrid в функции поиска колонки по её наименованию TRxDBGrid.ColumnByCaption
не учитывается регистр символов
+ В RxDBGrid сохраняется между сеансами порядок сортировки
+ В RxDBGrid при автоматическом подборе ширины колонки учитывается ширина заголовка
+ модуль
+ В объекте TRxMemoryData переключил фильтрацию на стандартный механизм из модуля DB - раньше был код
для обхода ошибок. В дальнейшем событие OnFilterRecordEx будет полностью исключено из компонента
+ Новый модуль rxFileUtils - набор дополнительных функций для работы с файлами:
GetFileOwnerUser - возвращает имя пользователя-владельца файла (пока только windows)
GetFileOwnerData - возвращает информацию о владельце файла (пока только windows)
NormalizeDirectoryName - приводит все разделитили каталогов в имени файла к тому виду, как принятов данной ОС.
+ У TRxColumnFooter доступно свойство NumericValue - содержит числовое представление значения
итогов по столбцу. Имеет смысл только для ValueType = fvtSum, fvtAvg, fvtMax, fvtMin
+ Новая компонента TRxVersionInfo - обёртка над вызовами функция чтения ресурсов файла
- Исправлено рисование изображение в колонках RxDBGrid-а если выключен индикатор или заголовок
- Исправлено рисование колонок с объединёнными заголовками
- Введдена обработка ситуации востановления состояния RxDBGrid-а, если количество колонок во время востановления меньше,
чем было в момент сохранения
+ Новая компонента TRxAboutDialog - окно для отображения информации о программе (пример смотреть в демке по RxDBGrid-у)
+ Добавлена поддержка компиляции под WinCE
- Исправлена ошибка автоподбора ширины колонки при двойном щелчке по заголвку колонки
+ При подсчёте итоговой строки не вызываются лишние просчёты по данным (если нет агрегатных функций)
+ Для RXDbGrid-а реализована система назначения функциональных клавиш на вызов функций (сортировка, фильтрация и т.д.)
добавлено новое свойство KeyStrokes
+ Добавлен новый компонент RxCurredit
+ Добавлен новый компонент- TRxViewsPanel
+ у компоненты TRxMemoryData убрана зависимость от модуля Forms
+ Улучшено отображение редактора полей типа TDateTime/TDate в RxDBGrid
+ У TRxCollumn компоненты TRxDBGrid для стиля cbsPickList добавлено свойство DirectInput.
Если оно установлено в false - значения поля можно выбрать только из выпадающего списка
+ Добавлены 2 комопненты - TRxRadioGroup и TRxDBRadioGroup. В отличии от стнадартных позволяют выборочно запрещать некоторые RadioButton-ы на
компоненте через свойство ItemEnabled.
+ Новая компонента - TRxCloseFormValidator. Предназначена для размещения на диалоговых модальных окнах, при закрытии такого окна
проверяет на обязательную заполненность списка полей ввода, перечисленных в свойстве Items.
+ В модуле rxStrUtils большая часть функция помечена как устаревшая - они дублируют функционал из модуля StrUtils. В дальнешем они
будут удалены в целях уменьшения кол-ва кода.
+ У RxDBGrid-а при вводе даты подставляется маска ввода
22.05.2008 - версия 2.0.0.136 (svn revision 100)
+ У объекта 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
- Исправлена ошибка TRxDBLookupCombo при LookupSourse.Active=false и установке значения для поля DataField
+ В свойстве PopUpFormOptions компоненты TRxDBLookupCombo для элемента из списка Collumns добавлен редктор на FieldName
+ компонент TDBDateEdit переименован в TRxDBDateEdit. Необходимо для того, чтобы избежать конфликта имён со штатным комопонентом Lazarus-а.
!!!!ВНИМАНИЕ - эта версия RxFPC ТОЛЬКО ДЛЯ Lazarus 1.3 и более поздних
06.01.2015 - Версия 2.2 для Lazarus 1.2
- создана версия в папке "version/v2.2_laz_1.2"
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 ввёл новую дерективу компиляции
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 не работает коректно пока агрегатные функции
(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 - здесь перечисляется список полей через точку с запятой (";")
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
градусов)
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)
10.10.2005
- Исправлена ошибка при рисовании изображения в RxDbGrid из ImageList,
также операция немного ускорена
- исправлена ошибка при изменении ширины колонки (деление на 0)
+ начата работа над сохранением состояния колонок RxDbGrid через FormStorage
- Небольшой багофикс при работе с изображениями в TToolPanel
+ Добавил компонент TPageManager
+ Написал новый компонент TRxAppIcon - это для тех кто не хочет возиться с
ресурсами - в момент запуска приложению будет сопоставлена указанная иконка.
т.к. она хранится не в стандартном виндовом ресурсе - поэтому проводник
будет показывать на приложении обычную иконку - но в момент запуска
появится указанная. Работает только под Windows - если кто знает как это
делается в других системах - допишите.
Когда в лазаре доделают нормальную работу с иконками - компоненту надо
переписать - а может лазарь научится создавать стандартный ресурс виндовый
для программы - тогда в этой компоненте надобность вобще отпадёт
08.10.2005
+ Окно настройки теперь вегда сверху
+ Для более тонкой настройки отображения кнопок добави в опциях тулбара
два дополнительных флага - tpGlyphPopup, tpCaptionPopup
- небольшие багофиксы
+ реализована работа с изображениями в RxDbGrid через ImageList (см. readmy.txt)
+ Добавлен компонент TRXXPManifest - работает только под Windows -
поддержка XP манифеста
05.10.2005
+ убрал свойстов Flat, TransparentBtn
+ Добавил свойство Options, включающее tpFlatBtns, tpTransparentBtns
+ Добавил включение окна настройки подвойному клику на панели
правой кнопкой мышки с зажатым Ctrl
- исправл баг множественного открытия окна настройки панели
+ у TToolbarItem добавил свойство Tag
04.10.2005
+ в TToolPanel пофиксил баг не верного начального размера кнопки
+ Добавлена возможность прорисовки кнопок в стиле WindowsXP
+ При в стиле Flat и WindowsXP при наведении курсора на кнопку
она приподнимается для лучшего визуализации
- т.к. TImageList.Draw не умеет рисовать запроещённое состояние
изоражения при задисабливании Action не дисаблится картинка
также из-за этого нет возможности сделать изображение с тенью
- вылазиет баг в лазаре если в дизайнере удалить напрямую с панели
кнопку (не через Items) - ещё не знаю как в лазаре в дизайнере
для некоторых элементов запретить удаление
+ Добавил демку для TToolPanel
03.10.2005
+ перевёл все имена файлов к нижнему регистру
+ в TToolPanel пофиксил некторые баги
+ работает окно настройки панели
+ Поддерживается DropDownMenu в стиле полного нажатия кнопки
+ скрытие не нужных кнопок (настройка в run-time)
02.10.2005 (beta)
+ Начата реализация (полностью своя) 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
28.10.2005
+ практически работает Currency edit (не проверил под линухом)
- из-за ошибки в функиции FormatFloat из FCL нельзя использовать в строке
форматирования одинарные или двойные кавычки - повесится
19.10.2005
+ TRxMemoryData - работает почти полностью - нет поддержки blob - надо разбирать
+ начал перенос Currency edit
+ правил ошибки
- ещё не всё проверил в линуксе - теоретически должно собраться и работать
05.10.2005
+ Добавлен TRxDBGrid - написан по "мотивам оригинального, ещё есть что переносить
самое главное, почему его начал переносить - захотелось сделать сортировку
наборов данных как в DBGridEh из EhLib. Я вышел с предложением на
Jesus Reyes (автор DBGrid-а о добавлении функциональности) - он сказал, что нефиг
превращать стандартный компонент в новогоднюю ёлку. Поэтому стал сам доделывать
наследника.
Сейчас работает многострочные заголовки, подерживается нажатие на заголовок
как на кнопку с опциональным отображением символа сортировки (соответсвующее событие)
также добавил механизм автосортировки см. файл exSortFB.pas - тут наиболее лаконично
всё. Кратко - для необходимых типов источноков данных
пишется обёртка (наследник от TExDBGridSortEngine) который умеет в этом
источнике данных переупорядочивать записи. Мой TFBDataSet (работаю с FireBird)
умеет сам в локальном кэше сортировать запис - поэтому там всё просто.
exsortmds.pas - этот модуль для сортировки данных в стандартном MemDS
немного кривовато написано - практически нет механизмов добраться до внутреннего
буфера данных (кстати в MemDS есть баг позиционирования курсора на 1-ю запись)
- TRxMemoryData - вроде всё скомпилировалось практически без правки - но чтото при
добавлении записи - ошибка (подозреваю не совместимость DataSet-а из дельфей и Лазаря)
надо разобраться. Стандартный MemDS ограничен - нет блоб и прочего.
31.09.2005
+ Add component TFolderLister - это моя разработка - на основе неё добавлю
ещё компонент для построения меню, содержащее отчёты для LazReport-a
(аналог у меня в дельфях моей также разработки)
07.01.2005
i'm port next RX components:
TDBDateEdit - не даёт вводить значения руками - наследство от оригинального
TDateEdit
TRxDBCalcEdit
TRXLookupEdit,
TRxDBLookupCombo - тут баг - при кидании на форму не коректно устанавливаются
размеры, приходится руками ресайзить - когда нить доделаю - или кто сможет -
помогайте.
and next modules:
DateUtil.pas
DbUtils.pas
rxdconst.pas
RXStrutils.pas
VCLUtils.pas
жду замечаний и предложений
Лагунов Алексей (alexs)

View File

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

View File

@ -125,7 +125,7 @@ end;
procedure RegisterUnitDBDateEdit;
begin
RegisterComponents('RX DBAware',[TDBDateEdit, TRxDBCalcEdit, TRxDBCurrEdit]);
RegisterComponents('RX DBAware',[TRxDBDateEdit, TRxDBCalcEdit, TRxDBCurrEdit]);
end;
procedure RegisterRXLookup;

View File

@ -49,22 +49,11 @@
{.$DEFINE USE_DEPRECATES}
//
{.$DEFINE DBDateEdit_OLD}
{.$DEFINE OLD_EDITBUTTON}
{$if FPC_FULLVERSION<20701}
{$DEFINE NoAutomatedBookmark}
{$DEFINE RX_USE_LCL_DEVEL}
{$endif}
{$IFDEF OLD_EDITBUTTON}
{$if FPC_FULLVERSION<20701}
{$DEFINE RX_USE_LAZARUS_RESOURCE}
{$ENDIF}
{$ENDIF}
{$IFDEF NoAutomatedBookmark}
{$ELSE}
{$ENDIF}

View File

@ -992,11 +992,7 @@ type
FGrid: TRxDBGrid;
FCol, FRow: integer;
protected
{$IFDEF OLD_EDITBUTTON}
procedure Change; override;
{$ELSE}
procedure EditChange; override;
{$ENDIF}
procedure KeyDown(var Key: word; Shift: TShiftState); override;
procedure WndProc(var TheMessage: TLMessage); override;
@ -1403,19 +1399,11 @@ end;
{ TRxDBGridDateEditor }
{$IFDEF OLD_EDITBUTTON}
procedure TRxDBGridDateEditor.Change;
{$ELSE}
procedure TRxDBGridDateEditor.EditChange;
{$ENDIF}
var
D:TDateTime;
begin
{$IFDEF OLD_EDITBUTTON}
inherited Change;
{$ELSE}
inherited EditChange;
{$ENDIF}
if Assigned(FGrid) and FGrid.DatalinkActive and not FGrid.EditorIsReadOnly then
begin
if not (FGrid.DataSource.DataSet.State in dsEditModes) then

View File

@ -112,11 +112,7 @@ type
procedure UpdateKeyValue;
protected
property PopUpFormOptions:TPopUpFormOptions read FPopUpFormOptions write SetPopUpFormOptions;
{$IFDEF OLD_EDITBUTTON}
procedure DoButtonClick (Sender: TObject); override;
{$ELSE}
procedure ButtonClick; override;
{$ENDIF}
function GetDefaultGlyphName: String; override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure InternalClosePopup(AResult:boolean);virtual;
@ -539,17 +535,9 @@ begin
Text:=FLookupDataLink.DataSet.FieldByName(S).AsString;
end;
{$IFDEF OLD_EDITBUTTON}
procedure TRxCustomDBLookupEdit.DoButtonClick (Sender: TObject);
{$ELSE}
procedure TRxCustomDBLookupEdit.ButtonClick;
{$ENDIF}
begin
{$IFDEF OLD_EDITBUTTON}
inherited DoButtonClick(Sender);
{$ELSE}
inherited ButtonClick;
{$ENDIF}
if PopupVisible then
HideList
else
@ -1149,7 +1137,7 @@ end;
procedure TRxCustomDBLookupCombo.NeedUpdateData;
begin
if FLookupDataLink.Active and Assigned(FDataField) then
if FLookupDataLink.Active and Assigned(FDataField) and Assigned(FKeyField) then
begin
if FKeyField.IsNull then FDataField.Clear
else FDataField.AsString:=FKeyField.AsString;

View File

@ -1,4 +1,4 @@
{ Free DB Manager
{ Rx lib
Copyright (C) 2005-2012 Lagunov Aleksey alexs75 at hotbox.ru
@ -80,6 +80,8 @@ type
property MainPanel:TRxMDIPanel read FMainPanel write FMainPanel;
published
property Align;
property ShowHint;
property ParentShowHint;
end;
{ TRxMDICloseButton }
@ -138,6 +140,8 @@ type
property Align;
property BevelInner;
property BevelOuter;
property ShowHint;
property ParentShowHint;
end;
implementation

View File

@ -55,7 +55,6 @@ implementation
uses rxmemds;
type
THackRxMemoryData = class(TRxMemoryData);
THackRxColumnFooter = class(TRxColumnFooter);
THackDataLink = class(TDataLink);
THackDataSet = class(TDataSet);

View File

@ -106,21 +106,13 @@ type
procedure HidePopup; virtual;
procedure ShowPopup(AOrigin: TPoint); virtual;
procedure ApplyDate(Value: TDateTime); virtual;
{$IFDEF OLD_EDITBUTTON}
procedure Change; override;
{$ELSE}
procedure EditChange; override;
{$ENDIF}
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: Char); override;
{$IFDEF OLD_EDITBUTTON}
procedure DoButtonClick (Sender: TObject); override;
{$ELSE}
procedure ButtonClick; override;
procedure EditKeyDown(var Key: word; Shift: TShiftState); override;
procedure EditKeyPress( var Key: char); override;
{$ENDIF}
function GetDefaultGlyphName: String; override;
function CreatePopupForm:TPopupCalendar;
@ -548,11 +540,7 @@ procedure TCustomRxDateEdit.AcceptValue(const AValue: TDateTime);
begin
SetDate(AValue);
if Modified then
{$IFDEF OLD_EDITBUTTON}
inherited Change;
{$ELSE}
inherited EditChange;
{$ENDIF}
end;
procedure TCustomRxDateEdit.UpdateFormat;
@ -721,18 +709,10 @@ begin
SelectAll;
end;
{$IFDEF OLD_EDITBUTTON}
procedure TCustomRxDateEdit.Change;
{$ELSE}
procedure TCustomRxDateEdit.EditChange;
{$ENDIF}
begin
if not FFormatting then
{$IFDEF OLD_EDITBUTTON}
inherited Change;
{$ELSE}
inherited EditChange;
{$ENDIF}
end;
procedure TCustomRxDateEdit.KeyDown(var Key: Word; Shift: TShiftState);
@ -788,7 +768,6 @@ begin
inherited KeyPress(Key);
end;
{$IFNDEF OLD_EDITBUTTON}
procedure TCustomRxDateEdit.EditKeyDown(var Key: word; Shift: TShiftState);
begin
if (Key in [VK_PRIOR, VK_NEXT, VK_LEFT, VK_UP, VK_RIGHT, VK_DOWN,
@ -840,22 +819,13 @@ begin
end;
inherited EditKeyPress(Key);
end;
{$ENDIF}
{$IFDEF OLD_EDITBUTTON}
procedure TCustomRxDateEdit.DoButtonClick(Sender: TObject);
{$ELSE}
procedure TCustomRxDateEdit.ButtonClick;
{$ENDIF}
var
D: TDateTime;
A: Boolean;
begin
{$IFDEF OLD_EDITBUTTON}
inherited DoButtonClick(Sender);
{$ELSE}
inherited ButtonClick;
{$ENDIF}
if CalendarStyle <> csDialog then
PopupDropDown(True)
else