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