RxFPC:TRxMemoryData - Three additional methods for changing order of records. id-0032253

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6068 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75 2017-11-13 11:29:26 +00:00
parent a99e83b444
commit bedcbe46bc

View File

@ -171,6 +171,9 @@ type
Mode: TLoadMode): Integer;
function SaveToDataSet(Dest: TDataSet; ARecordCount: Integer): Integer;
procedure AppendRecord(const Values: array of const);
procedure MoveUp;
procedure MoveDown;
procedure ExchangeRec(ARecNo1, ARecNo2: Integer);
procedure SetDatasetPacket(AReader : TRxDataPacketReader);
procedure GetDatasetPacket(AWriter : TRxDataPacketReader);
@ -1672,6 +1675,30 @@ begin
Post;
end;
procedure TRxMemoryData.MoveUp;
begin
if (FRecords.Count > 1) and (FRecordPos > 0) then
ExchangeRec(FRecordPos, FRecordPos + 1);
end;
procedure TRxMemoryData.MoveDown;
begin
if (FRecords.Count > 1) and (FRecordPos < FRecords.Count - 1) then
ExchangeRec(FRecordPos + 1, FRecordPos + 2);
end;
procedure TRxMemoryData.ExchangeRec(ARecNo1, ARecNo2: Integer);
begin
CheckActive;
CheckBrowseMode;
if (ARecNo1 <> ARecNo2) and (ARecNo1 > 0) and (ARecNo2 > 0)
and (ARecNo1 <= FRecords.Count) and (ARecNo2 <= FRecords.Count) then
begin
FRecords.Exchange(ARecNo1 - 1, ARecNo2 - 1);
Resync([]);
end;
end;
{ Index Related }
procedure TRxMemoryData.SortOnFields(const FieldNames: string;