Показать сообщение отдельно
  #26  
Старый 20.07.2020, 22:12
Аватар для Guaho
Guaho Guaho вне форума
Начинающий
 
Регистрация: 27.08.2017
Сообщения: 173
Версия Delphi: Delphi7
Репутация: 10
По умолчанию

Код:
          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.
Ответить с цитированием