From a8a5cfe8eb82ebc833afdf05dd0ec8e6024449b7 Mon Sep 17 00:00:00 2001 From: alexs75 Date: Mon, 25 Sep 2023 09:27:37 +0000 Subject: [PATCH] RxFPC:fix filter without grid in TRxMemoryData git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8927 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/rx/trunk/rxdb/rxmemds.pas | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/components/rx/trunk/rxdb/rxmemds.pas b/components/rx/trunk/rxdb/rxmemds.pas index 99a7fdb12..a474d0958 100644 --- a/components/rx/trunk/rxdb/rxmemds.pas +++ b/components/rx/trunk/rxdb/rxmemds.pas @@ -1050,22 +1050,28 @@ var RecBuf: PChar; begin Result := True; - if Assigned(OnFilterRecord) then + if Assigned(OnFilterRecord) or (Filter<>'') then begin if (FRecordPos >= 0) and (FRecordPos < RecordCount) then begin SaveState := SetTempState(dsFilter); - try - RecordToBuffer(Records[FRecordPos], TempBuffer); - OnFilterRecord(Self, Result); - except - CustomApplication.HandleException(Self); + + if Assigned(OnFilterRecord) then + begin + try + RecordToBuffer(Records[FRecordPos], TempBuffer); + OnFilterRecord(Self, Result); + except + CustomApplication.HandleException(Self); + end; end; if Result and (Length(Filter) > 0) then begin - if GetActiveRecBuf(RecBuf) then - Result := Boolean((FParser.ExtractFromBuffer(RecBuf))^); +{ if GetActiveRecBuf(RecBuf) then + Result := Boolean((FParser.ExtractFromBuffer(RecBuf))^);} + RecordToBuffer(Records[FRecordPos], TempBuffer); + Result := Boolean((FParser.ExtractFromBuffer(TempBuffer))^); end; RestoreState(SaveState);