Hola.
Lo que lleva rato diciendo
oscarac 
y ahora ratifica
JoseAntonio lo dice todo: El algorítmo es correcto, pero no es aplicable a este caso...
Se me escapó el carácter ordinal de los nombres de los meses que no es precisamente el alfabético...
Una idea que se me ocurre (y no es la mejor por que ensucias la tabla), es agregar un campo 'NroMes' de tipo numérico que se
corresponda con el mes del registro.
En el DBGrid deberías agregar todas las columnas menos la correspondiente a ese campo, luego podrías hacer:
Código Delphi
[-]
...
function MesANro(Mes: string): Integer;
const
Nombre: array[1..12] of string=('ENERO','FEBRERO','MARZO','ABRIL','MAYO',
'JUNIO','JULIO','AGOSTO','SEPTIEMBRE','OCTUBRE','NOVIEMBRE','DICIEMBRE');
var
i: Byte;
begin
i:= 1;
while Nombre[i] <> UpperCase(Mes) do Inc(i);
Result:= i;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
with DBGrid1.DataSource do
begin
DataSet.Filtered:= False;
DataSet.Filter:= 'NroMes >= '+
QuotedStr(IntToStr(MesANro(ComboBox1.Items[ComboBox1.ItemIndex])))+
' AND NroMes <= '+
QuotedStr(IntToStr(MesANro(ComboBox2.Items[ComboBox2.ItemIndex])));
DataSet.Filtered:= True;
end;
end;
No es "la" solución, pero no se me ocurre otra cosa usando filtros.
Un saludo.