Код:
try
InputLambda1 := StrToFloat(eLambda1.Text);
InputLambda2 := StrToFloat(eLambda2.Text);
except
ShowMessae('Введены нечисловые данные!');
end;
SLam1 := FloatToStr(InputLambda1);
SLam1 := StringReplace(SLam1, ',', '.', []);
SLam2 := FloatToStr(InputLambda2);
SLam2 := StringReplace(SLam2, ',', '.', []);
MyTable.Filter := '(lambda > ' + SLam1 + ') AND (lambda < ' + SLam2 + ')';
MyTable.Filtered := True;
Этот код надо повесть на обработчики OnChange Edit-ов eLambda1 и 2, в которые пользователь вводит границы диапазона.
Здесь сначала введённые числа преобразуются во Float, это необходимо для проверки правильности ввода. Затем - обратно в String, причём возможная запятая в числах заменяется на точку. А далее - фильтрация датасета. В результате получите набор данных, в котором lambda попадает в заданный диапазон.
Ну а далее -
Код:
if MyTable.RecordCount > 0 then
begin
MyTable.First;
for i := 1 to MyTable.RecordCount do
MyResult := MyTable.FieldByName('lambda').AsFloat;
... тут далее анализ числа в MyResult, интерполяция и любые другие действия, что пожелаете.
MyTable.Next;
end;
Всё. Ничего сложного. Да, и не забудьте, что поле lambda
обязательно должно быть типа Float.