Hola ecfecia
Primero que todo, agradezco tu colaboración.
El ejemplo quedo muy claro, pero mi problema es el siguiente
El filtro esta insertado en la columna del advStrinGrid, estilo excel. Cuando le doy click sobre el filtro, el lo carga con las opciones que se han definido en un .txt. Hasta ahí muy bien.
Una vez escojo la opcion, ya sea M o F, se llama al procedimiento siguiente
Código Delphi
[-]
procedure TFrmGrilla4505.AdvStgGrid4505FilterSelect(Sender: TObject;
Column, ItemIndex: Integer; FriendlyName: String;
var FilterCondition: String);
begin
if (FilterCondition = 'Clear') or (FilterCondition = '') then begin
FilterCondition := '';
AdvStgGrid4505.Colors[Column,0] := clNone;
end
else AdvStgGrid4505.Colors[Column,0] := clGreen;
end;
Cuando sale de la linea
Código Delphi
[-]AdvStgGrid4505.Colors[Column,0] := clGreen;
empieza a operar en la unit AdvGrid; que es propia del delphi; la parte del filtrado, es ahí donde se realiza el filtrado, por lo cual no he podio obtener el número de registros filtrados.
No se si estoy usando mal el procedimiento FilterSelect propio del advstringrid.
Hice una prueba creando un botón y luego de filtar le doy click
Código Delphi
[-]
ShowMessage(Format('Total:%d, Filtrados:%d, Ocultos:%d',
[FpTemporal.RecordCount, AdvStgGrid4505.RowCount-1,
FpTemporal.RecordCount-(AdvStgGrid4505.RowCount-1)]));
y me arroja los datos como son, pero la idea no es usar un botón para mostrar el total de filas filtradas, sino que cuando le de click en el icono del filtro, al terminar el filtrado me muestre en una etiqueta el valor que necesito sin necesidad de dar otro click.
No se si he sido claro o me he hecho entender.
O se me acaba de ocurrir, que cuando se ejecuta la linea
Código Delphi
[-]AdvStgGrid4505.Colors[Column,0] := clGreen;
se marque un check de manera automatica, para que me muestre lo que deseo. El lío es en que momento luego de salir de procedure TFrmGrilla4505.AdvStgGrid4505FilterSelect hago la verificación del check.