documentation, filter in RxMemDataSet
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1152 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
parent
3d1414df44
commit
2b71476e7d
@ -44,6 +44,13 @@
|
|||||||
не учитывается регистр символов
|
не учитывается регистр символов
|
||||||
+ В RxDBGrid сохраняется между сеансами порядок сортировки
|
+ В RxDBGrid сохраняется между сеансами порядок сортировки
|
||||||
+ В RxDBGrid при автоматическом подборе ширины колонки учитывается ширина заголовка
|
+ В RxDBGrid при автоматическом подборе ширины колонки учитывается ширина заголовка
|
||||||
|
+ модуль
|
||||||
|
+ В объекте TRxMemoryData переключил фильтрацию на стандартный механизм из модуля DB - раньше был код
|
||||||
|
для обхода ошибок. В дальнейшем событие OnFilterRecordEx будет полностью исключено из компонента
|
||||||
|
+ Новый модуль rxFileUtils - набор дополнительных функций для работы с файлами:
|
||||||
|
GetFileOwnerUser - возвращает имя пользователя-владельца файла (пока только windows)
|
||||||
|
GetFileOwnerData - возвращает информацию о владельце файла (пока только windows)
|
||||||
|
NormalizeDirectoryName - приводит все разделитили каталогов в имени файла к тому виду, как принятов данной ОС.
|
||||||
22.05.2008 - версия 2.0.0.136 (svn revision 100)
|
22.05.2008 - версия 2.0.0.136 (svn revision 100)
|
||||||
+ У объекта TRxCustomDBLookupCombo введён контроль на CircularDataLink
|
+ У объекта TRxCustomDBLookupCombo введён контроль на CircularDataLink
|
||||||
+ У объекта TRxCustomDBLookupCombo ускорена отрисовка данных
|
+ У объекта TRxCustomDBLookupCombo ускорена отрисовка данных
|
||||||
|
@ -523,6 +523,7 @@ TRxDBCalcEdit является наследником TDBCalcEdit и имеет
|
|||||||
Кол-во элементов данного массива находится в свойстве
|
Кол-во элементов данного массива находится в свойстве
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<b>Count</b>
|
<b>Count</b>
|
||||||
</descr>
|
</descr>
|
||||||
<seealso>
|
<seealso>
|
||||||
@ -545,6 +546,7 @@ TRxDBCalcEdit является наследником TDBCalcEdit и имеет
|
|||||||
Свойство FileFolder определяет каталог с файлами, который будет сканироваться при вызове метода
|
Свойство FileFolder определяет каталог с файлами, который будет сканироваться при вызове метода
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<b>Execute</b> и по содержимому которого будет произведено заполнение массива Files</descr>
|
<b>Execute</b> и по содержимому которого будет произведено заполнение массива Files</descr>
|
||||||
<seealso>
|
<seealso>
|
||||||
<link id="TFolderLister.Execute"/>
|
<link id="TFolderLister.Execute"/>
|
||||||
@ -811,6 +813,9 @@ Description
|
|||||||
<short>property Interval: Word;</short>
|
<short>property Interval: Word;</short>
|
||||||
<descr>Свойство определяет временной интервал (в милисекундах), с которым происходит смена изображений в компоненте.
|
<descr>Свойство определяет временной интервал (в милисекундах), с которым происходит смена изображений в компоненте.
|
||||||
при Rotate = True это частота смены битовых изображений.</descr>
|
при Rotate = True это частота смены битовых изображений.</descr>
|
||||||
|
<seealso>
|
||||||
|
<link id="TRxDice.Rotate"/>
|
||||||
|
</seealso>
|
||||||
</element>
|
</element>
|
||||||
<element name="TRxDice.ParentColor"/>
|
<element name="TRxDice.ParentColor"/>
|
||||||
<element name="TRxDice.ParentShowHint"/>
|
<element name="TRxDice.ParentShowHint"/>
|
||||||
@ -1575,5 +1580,54 @@ Description
|
|||||||
<short>Возвращает формат даты по умолчанию</short>
|
<short>Возвращает формат даты по умолчанию</short>
|
||||||
</element>
|
</element>
|
||||||
</module>
|
</module>
|
||||||
|
<module name="rxFileUtils">
|
||||||
|
<topic name="GetFileOwnerUser"/>
|
||||||
|
<element name="GetFileOwnerUser">
|
||||||
|
<short>Возвращает имя владельца файла</short>
|
||||||
|
<descr>
|
||||||
|
<p>function <b>GetFileOwnerUser</b>(const SearchDomain, FileName:<b>String</b>):<b>String</b>;
|
||||||
|
</p>
|
||||||
|
<p>Функция возвращает имя пользователя операционной системы владельца указанного файла. </p>
|
||||||
|
<p>Входные параметры:
|
||||||
|
SearchDomain - Домен, в котором будет производится поиск оператора (пустой для текущего домена оператора).
|
||||||
|
FileName - Полное имя файла.
|
||||||
|
</p>
|
||||||
|
<remark>В данный момент функция реализована только для windows.</remark>
|
||||||
|
</descr>
|
||||||
|
<seealso>
|
||||||
|
<link id="GetFileOwnerData"/>
|
||||||
|
</seealso>
|
||||||
|
</element>
|
||||||
|
<element name="GetFileOwnerData">
|
||||||
|
<short>Возвращает данные владельца файла</short>
|
||||||
|
<descr>
|
||||||
|
<p>procedure GetFileOwnerData(const SearchDomain, FileName:<b>String</b>;out UserName, DomainName:<b>String</b>);
|
||||||
|
</p>
|
||||||
|
<p>Процедура возвращает имя и домен пользователя операционной системы владельца указанного файла. </p>
|
||||||
|
<p>Входные параметры:
|
||||||
|
SearchDomain - Домен, в котором будет производится поиск оператора (пустой для текущего домена оператора).
|
||||||
|
FileName - Полное имя файла.
|
||||||
|
Выходные параметры:
|
||||||
|
UserName - Имя пльзователя.
|
||||||
|
DomainName - Домен, в котором найден данный пользователь.
|
||||||
|
</p>
|
||||||
|
<remark>В данный момент функция реализована только для windows.</remark>
|
||||||
|
</descr>
|
||||||
|
<seealso>
|
||||||
|
<link id="GetFileOwnerData"/>
|
||||||
|
</seealso>
|
||||||
|
</element>
|
||||||
|
<element name="NormalizeDirectoryName">
|
||||||
|
<short>Функция приводит к принятому в данной ОС виду все разделители каталогов.</short>
|
||||||
|
<descr>
|
||||||
|
<p>
|
||||||
|
<b>function</b> NormalizeDirectoryName(
|
||||||
|
<b>const</b> DirName:
|
||||||
|
<b>string</b>):
|
||||||
|
<b>string</b>;</p>
|
||||||
|
Функция проверяет все разделители каталогов в указанном имени файла/каталога и, если нужно, меняет их на значение константы
|
||||||
|
<b>DirectorySeparator</b>.</descr>
|
||||||
|
</element>
|
||||||
|
</module>
|
||||||
</package>
|
</package>
|
||||||
</fpdoc-descriptions>
|
</fpdoc-descriptions>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
{.$DEFINE RXDBGRID_OPTIONS_WO_CANCEL_ON_EXIT}
|
{.$DEFINE RXDBGRID_OPTIONS_WO_CANCEL_ON_EXIT}
|
||||||
{.$DEFINE USED_BiDi}
|
{.$DEFINE USED_BiDi}
|
||||||
{$DEFINE DEFAULT_POPUP_CALENDAR}
|
{$DEFINE DEFAULT_POPUP_CALENDAR}
|
||||||
|
{.$DEFINE FIX_TRxMemoryData_Filter}
|
||||||
{.$DEFINE FIX_BUG_FieldNo}
|
{.$DEFINE FIX_BUG_FieldNo}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -28,7 +28,9 @@ type
|
|||||||
|
|
||||||
TRxMemoryData = class(TDataSet)
|
TRxMemoryData = class(TDataSet)
|
||||||
private
|
private
|
||||||
|
{$IFDEF FIX_TRxMemoryData_Filter}
|
||||||
FOnFilterRecordEx: TFilterRecordEvent;
|
FOnFilterRecordEx: TFilterRecordEvent;
|
||||||
|
{$ENDIF}
|
||||||
FRecordPos: Integer;
|
FRecordPos: Integer;
|
||||||
FRecordSize: Integer;
|
FRecordSize: Integer;
|
||||||
FBookmarkOfs: Integer;
|
FBookmarkOfs: Integer;
|
||||||
@ -43,11 +45,13 @@ type
|
|||||||
FCaseInsensitiveSort: Boolean;
|
FCaseInsensitiveSort: Boolean;
|
||||||
FDescendingSort: Boolean;
|
FDescendingSort: Boolean;
|
||||||
function AddRecord: TMemoryRecord;
|
function AddRecord: TMemoryRecord;
|
||||||
|
function GetOnFilterRecordEx: TFilterRecordEvent;
|
||||||
function InsertRecord(Index: Integer): TMemoryRecord;
|
function InsertRecord(Index: Integer): TMemoryRecord;
|
||||||
function FindRecordID(ID: Integer): TMemoryRecord;
|
function FindRecordID(ID: Integer): TMemoryRecord;
|
||||||
procedure CreateIndexList(const FieldNames: string);
|
procedure CreateIndexList(const FieldNames: string);
|
||||||
procedure FreeIndexList;
|
procedure FreeIndexList;
|
||||||
procedure QuickSort(L, R: Integer; Compare: TCompareRecords);
|
procedure QuickSort(L, R: Integer; Compare: TCompareRecords);
|
||||||
|
procedure SetOnFilterRecordEx(const AValue: TFilterRecordEvent);
|
||||||
procedure Sort;
|
procedure Sort;
|
||||||
function CalcRecordSize: Integer;
|
function CalcRecordSize: Integer;
|
||||||
function FindFieldData(Buffer: Pointer; Field: TField): Pointer;
|
function FindFieldData(Buffer: Pointer; Field: TField): Pointer;
|
||||||
@ -151,7 +155,7 @@ type
|
|||||||
property OnDeleteError;
|
property OnDeleteError;
|
||||||
property OnEditError;
|
property OnEditError;
|
||||||
property OnFilterRecord;
|
property OnFilterRecord;
|
||||||
property OnFilterRecordEx: TFilterRecordEvent read FOnFilterRecordEx write FOnFilterRecordEx;
|
property OnFilterRecordEx: TFilterRecordEvent read GetOnFilterRecordEx write SetOnFilterRecordEx;
|
||||||
property OnNewRecord;
|
property OnNewRecord;
|
||||||
property OnPostError;
|
property OnPostError;
|
||||||
end;
|
end;
|
||||||
@ -462,6 +466,15 @@ begin
|
|||||||
Result := TMemoryRecord.Create(Self);
|
Result := TMemoryRecord.Create(Self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TRxMemoryData.GetOnFilterRecordEx: TFilterRecordEvent;
|
||||||
|
begin
|
||||||
|
{$IFDEF FIX_TRxMemoryData_Filter}
|
||||||
|
Result:=FOnFilterRecordEx;
|
||||||
|
{$ELSE}
|
||||||
|
Result:=OnFilterRecord;
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
function TRxMemoryData.FindRecordID(ID: Integer): TMemoryRecord;
|
function TRxMemoryData.FindRecordID(ID: Integer): TMemoryRecord;
|
||||||
var
|
var
|
||||||
I: Integer;
|
I: Integer;
|
||||||
@ -882,20 +895,29 @@ var
|
|||||||
SaveState: TDataSetState;
|
SaveState: TDataSetState;
|
||||||
begin
|
begin
|
||||||
Result := True;
|
Result := True;
|
||||||
|
{$IFDEF FIX_TRxMemoryData_Filter}
|
||||||
if Assigned(OnFilterRecordEx) then
|
if Assigned(OnFilterRecordEx) then
|
||||||
|
{$ELSE}
|
||||||
|
if Assigned(OnFilterRecord) then
|
||||||
|
{$ENDIF}
|
||||||
begin
|
begin
|
||||||
if (FRecordPos >= 0) and (FRecordPos < RecordCount) then
|
if (FRecordPos >= 0) and (FRecordPos < RecordCount) then
|
||||||
begin
|
begin
|
||||||
SaveState := SetTempState(dsFilter);
|
SaveState := SetTempState(dsFilter);
|
||||||
try
|
try
|
||||||
RecordToBuffer(Records[FRecordPos], TempBuffer);
|
RecordToBuffer(Records[FRecordPos], TempBuffer);
|
||||||
|
{$IFDEF FIX_TRxMemoryData_Filter}
|
||||||
OnFilterRecordEx(Self, Result);
|
OnFilterRecordEx(Self, Result);
|
||||||
|
{$ELSE}
|
||||||
|
OnFilterRecord(Self, Result);
|
||||||
|
{$ENDIF}
|
||||||
except
|
except
|
||||||
Application.HandleException(Self);
|
Application.HandleException(Self);
|
||||||
end;
|
end;
|
||||||
RestoreState(SaveState);
|
RestoreState(SaveState);
|
||||||
end
|
end
|
||||||
else Result := False;
|
else
|
||||||
|
Result := False;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1418,6 +1440,16 @@ begin
|
|||||||
until I >= R;
|
until I >= R;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TRxMemoryData.SetOnFilterRecordEx(const AValue: TFilterRecordEvent);
|
||||||
|
begin
|
||||||
|
{$IFDEF FIX_TRxMemoryData_Filter}
|
||||||
|
CheckBiDirectional;
|
||||||
|
FOnFilterRecordEx:=AValue;
|
||||||
|
{$ELSE}
|
||||||
|
OnFilterRecord:=AValue;
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
function TRxMemoryData.CompareRecords(Item1, Item2: TMemoryRecord): Integer;
|
function TRxMemoryData.CompareRecords(Item1, Item2: TMemoryRecord): Integer;
|
||||||
var
|
var
|
||||||
Data1, Data2: PChar;
|
Data1, Data2: PChar;
|
||||||
|
Loading…
Reference in New Issue
Block a user