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
This commit is contained in:
alexs75
2023-09-25 09:27:37 +00:00
parent a46d1d3f3c
commit a8a5cfe8eb

View File

@ -1050,22 +1050,28 @@ var
RecBuf: PChar; RecBuf: PChar;
begin begin
Result := True; Result := True;
if Assigned(OnFilterRecord) then if Assigned(OnFilterRecord) or (Filter<>'') then
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
RecordToBuffer(Records[FRecordPos], TempBuffer); if Assigned(OnFilterRecord) then
OnFilterRecord(Self, Result); begin
except try
CustomApplication.HandleException(Self); RecordToBuffer(Records[FRecordPos], TempBuffer);
OnFilterRecord(Self, Result);
except
CustomApplication.HandleException(Self);
end;
end; end;
if Result and (Length(Filter) > 0) then if Result and (Length(Filter) > 0) then
begin begin
if GetActiveRecBuf(RecBuf) then { if GetActiveRecBuf(RecBuf) then
Result := Boolean((FParser.ExtractFromBuffer(RecBuf))^); Result := Boolean((FParser.ExtractFromBuffer(RecBuf))^);}
RecordToBuffer(Records[FRecordPos], TempBuffer);
Result := Boolean((FParser.ExtractFromBuffer(TempBuffer))^);
end; end;
RestoreState(SaveState); RestoreState(SaveState);