В общем есть процедура поиска ищу в 1 гриде, вывожу итог во 2.
Мне надо реализовать поиск в диапазоне 10% по столбцу с индексом 3, но я абсолютно не представляю как это сделать, может кто помочь.
т.е. к примеру, в искомом столбце числа, записано к примеру 52, а надо вывести по запросу 52, результат в диапазоне от 46.8 до 57.2
П.С. задание дали в колледже, сразу прошу с советами типа купи или прочее, пройти мимо.
Программировать только только начинаю, так что прошу, не напоминать про интерфейсы типа ADO и прочие, я еще не понимаю, у меня все просто, есть пару сгридов и кнопочек, все примитивно.
Пока, поиск осуществляется без перевода строки из цифр в числа.
Код:
procedure TForm1.Button1Click(Sender: TObject); //поиск
var i,j,k:integer; {номер строки данных в таблице}
findstr:integer;
begin
if Edit1.Text='' then begin showmessage('Введите строку для поиска');
exit;
end;
k:=0;
for i:=0 to stringgrid2.RowCount-1 do
for j:=1 to stringgrid2.ColCount-1 do
stringgrid2.Cells[i,j]:='';
for i:=1 to n do
begin
if RadioButton4.Checked then findstr:=0;
if RadioButton2.Checked then findstr:=2;
if RadioButton3.Checked then findstr:=3;// ЕСЛИ АКТИВВЕН РАДИОБУТТОН 1 ТО ВЫПОЛНИТСЯ УСЛОВИЕ НИЖЕ
if StringGrid1.Cells[findstr,i]=Edit1.Text
then
begin
k:=k+1;
stringgrid2.Cells[0,k]:=stringgrid1.Cells[0,i];
stringgrid2.Cells[1,k]:=stringgrid1.Cells[1,i];
stringgrid2.Cells[2,k]:=stringgrid1.Cells[2,i];
stringgrid2.Cells[3,k]:=stringgrid1.Cells[3,i];
stringgrid2.Cells[4,k]:=stringgrid1.Cells[4,i];
combobox1.ItemIndex:=i-1;
end;
end;
if stringgrid2.Cells[0,1]='' then Showmessage('Ничего не найдено');
end;
Хоть толкните, может быть так ?
if (искомое число>=([искомое число*0,1]-искомое число)) and (искомое число<=([искомое число*0,1]+искомое число))