koala написав:А від мене - фокус на кілька сотень рядків.
У вас там є повторюваний (з точністю до змінних) фрагмент
і тепер робимо
14..20: begin
           for idx0 := 4 to 8 do
             ComboBox16.Items.Add(UNITS_M_U[idx0]);
           for idx1 := 15 to 21 do
             ComboBox16.Items.Add(UNITS_P_С2[idx1]);
           BitBtn1.Top := 642;
           BitBtn2.Top := 642;
           CheckBox3.Visible := True;
           Options[2] := True;
           CheckBox3.Caption := NumberedString('s%s - Від''ємне переміщення',ComboBox10.ItemIndex-14);
          end;
Було 80 рядків, стало 11. І таких місць кілька.
 Пане Koala де ви були коли я процедуру procedure TForm1.Converter_in_CI; (конвертора) писав? Дякую!!!
Я спробую її використати для цього коду
case ComboBox9.ItemIndex of
 0   :  begin
         if Pos('=',Edit1.Text)<>0 then
         begin
          case ComboBox15.ItemIndex of
          4: RichEdit1.Lines.Add('t = t1');
          5: RichEdit1.Lines.Add('t = t2');
          6: RichEdit1.Lines.Add('t = t3');
          7: RichEdit1.Lines.Add('t = t4');
          8: RichEdit1.Lines.Add('t = t5');
          9: RichEdit1.Lines.Add('t = t6');
          end;
         end
         else
         begin
          Variables[1,0] := StrToFloat(Edit1.Text);
          if CheckBox1.Checked then
          begin
           Bring_to_Power1;
           Variables[1,0] := Variables[1,0]*st1;
          end;
          case ComboBox15.ItemIndex of
          1: begin
              RichEdit1.Lines.Add('t = ' + Edit1.Text + '*60');
              Minute_multiply(Variables[1,0]);
             end;
          2: begin
              RichEdit1.Lines.Add('t = ' + Edit1.Text + '*3600');
              Hour_multiply(Variables[1,0]);
             end;
          end;
          RichEdit1.Lines.Add(ComboBox9.Text + '  ' + '=  ' + FloatToStr(Variables[1,0]) + '  ' + 'Секунд');
         end;
        end;
 1   :  begin
         if Pos('=',Edit1.Text)<>0 then
         begin
          case ComboBox15.ItemIndex of
          3: RichEdit1.Lines.Add('t1 = t');
          5: RichEdit1.Lines.Add('t1 = t2');
          6: RichEdit1.Lines.Add('t1 = t3');
          7: RichEdit1.Lines.Add('t1 = t4');
          8: RichEdit1.Lines.Add('t1 = t5');
          9: RichEdit1.Lines.Add('t1 = t6');
          end;
         end
         else
         begin
          Variables[1,1] := StrToFloat(Edit1.Text);
          if CheckBox1.Checked then
          begin
           Bring_to_Power1;
           Variables[1,1] := Variables[1,1]*st1;
          end;
          case ComboBox15.ItemIndex of
          1: begin
              RichEdit1.Lines.Add('t1 = ' + Edit1.Text + '*60');
              Minute_multiply(Variables[1,1]);
             end;
          2: begin
              RichEdit1.Lines.Add('t1 = ' + Edit1.Text + '*3600');
              Hour_multiply(Variables[1,1]);
             end;
          end;
          RichEdit1.Lines.Add(ComboBox9.Text + '  ' + '=  ' + FloatToStr(Variables[1,1]) + '  ' + 'Секунд');
         end;
        end;
 2   :  begin
         if Pos('=',Edit1.Text)<>0 then
         begin
          case ComboBox15.ItemIndex of
          3: RichEdit1.Lines.Add('t2 = t');
          4: RichEdit1.Lines.Add('t2 = t1');
          6: RichEdit1.Lines.Add('t2 = t3');
          7: RichEdit1.Lines.Add('t2 = t4');
          8: RichEdit1.Lines.Add('t2 = t5');
          9: RichEdit1.Lines.Add('t2 = t6');
          end;
         end
         else
         begin
          Variables[1,2] := StrToFloat(Edit1.Text);
          if CheckBox1.Checked then
          begin
           Bring_to_Power1;
           Variables[1,2] := Variables[1,2]*st1;
          end;
          case ComboBox15.ItemIndex of
          1: begin
              RichEdit1.Lines.Add('t2 = ' + Edit1.Text + '*60');
              Minute_multiply(Variables[1,2]);
             end;
          2: begin
              RichEdit1.Lines.Add('t2 = ' + Edit1.Text + '*3600');
              Hour_multiply(Variables[1,2]);
             end;
          end;
          RichEdit1.Lines.Add(ComboBox9.Text + '  ' + '=  ' + FloatToStr(Variables[1,2]) + '  ' + 'Секунд');
         end;
        end;
 3   :  begin
         if Pos('=',Edit1.Text)<>0 then
         begin
          case ComboBox15.ItemIndex of
          3: RichEdit1.Lines.Add('t3 = t');
          4: RichEdit1.Lines.Add('t3 = t1');
          5: RichEdit1.Lines.Add('t3 = t2');
          7: RichEdit1.Lines.Add('t3 = t4');
          8: RichEdit1.Lines.Add('t3 = t5');
          9: RichEdit1.Lines.Add('t3 = t6');
          end;
         end
         else
         begin
          Variables[1,3] := StrToFloat(Edit1.Text);
          if CheckBox1.Checked then
          begin
           Bring_to_Power1;
           Variables[1,3] := Variables[1,3]*st1;
          end;
          case ComboBox15.ItemIndex of
          1: begin
              RichEdit1.Lines.Add('t3 = ' + Edit1.Text + '*60');
              Minute_multiply(Variables[1,3]);
             end;
          2: begin
              RichEdit1.Lines.Add('t3 = ' + Edit1.Text + '*3600');
              Hour_multiply(Variables[1,3]);
             end;
          end;
          RichEdit1.Lines.Add(ComboBox9.Text + '  ' + '=  ' + FloatToStr(Variables[1,3]) + '  ' + 'Секунд');
         end;
        end;
 4   :  begin
         if Pos('=',Edit1.Text)<>0 then
         begin
          case ComboBox15.ItemIndex of
          3: RichEdit1.Lines.Add('t4 = t');
          4: RichEdit1.Lines.Add('t4 = t1');
          5: RichEdit1.Lines.Add('t4 = t2');
          6: RichEdit1.Lines.Add('t4 = t3');
          8: RichEdit1.Lines.Add('t4 = t5');
          9: RichEdit1.Lines.Add('t4 = t6');
          end;
         end
         else
         begin
          Variables[1,4] := StrToFloat(Edit1.Text);
          if CheckBox1.Checked then
          begin
           Bring_to_Power1;
           Variables[1,4] := Variables[1,4]*st1;
          end;
          case ComboBox15.ItemIndex of
          1: begin
              RichEdit1.Lines.Add('t4 = ' + Edit1.Text + '*60');
              Minute_multiply(Variables[1,4]);
             end;
          2: begin
              RichEdit1.Lines.Add('t4 = ' + Edit1.Text + '*3600');
              Hour_multiply(Variables[1,4]);
             end;
          end;
          RichEdit1.Lines.Add(ComboBox9.Text + '  ' + '=  ' + FloatToStr(Variables[1,4]) + '  ' + 'Секунд');
         end;
        end;
 5   :  begin
         if Pos('=',Edit1.Text)<>0 then
         begin
          case ComboBox15.ItemIndex of
          3: RichEdit1.Lines.Add('t5 = t');
          4: RichEdit1.Lines.Add('t5 = t1');
          5: RichEdit1.Lines.Add('t5 = t2');
          6: RichEdit1.Lines.Add('t5 = t3');
          7: RichEdit1.Lines.Add('t5 = t4');
          9: RichEdit1.Lines.Add('t5 = t6');
          end;
         end
         else
         begin
          Variables[1,5] := StrToFloat(Edit1.Text);
          if CheckBox1.Checked then
          begin
           Bring_to_Power1;
           Variables[1,5] := Variables[1,5]*st1;
          end;
          case ComboBox15.ItemIndex of
          1: begin
              RichEdit1.Lines.Add('t5 = ' + Edit1.Text + '*60');
              Minute_multiply(Variables[1,5]);
             end;
          2: begin
              RichEdit1.Lines.Add('t5 = ' + Edit1.Text + '*3600');
              Hour_multiply(Variables[1,5]);
             end;
          end;
          RichEdit1.Lines.Add(ComboBox9.Text + '  ' + '=  ' + FloatToStr(Variables[1,5]) + '  ' + 'Секунд');
         end;
        end;
 6   :  begin
         if Pos('=',Edit1.Text)<>0 then
         begin
          case ComboBox15.ItemIndex of
          3: RichEdit1.Lines.Add('t6 = t');
          4: RichEdit1.Lines.Add('t6 = t1');
          5: RichEdit1.Lines.Add('t6 = t2');
          6: RichEdit1.Lines.Add('t6 = t3');
          7: RichEdit1.Lines.Add('t6 = t4');
          8: RichEdit1.Lines.Add('t6 = t5');
          end;
         end
         else
         begin
          Variables[1,6] := StrToFloat(Edit1.Text);
          if CheckBox1.Checked then
          begin
           Bring_to_Power1;
           Variables[1,6] := Variables[1,6]*st1;
          end;
          case ComboBox15.ItemIndex of
          1: begin
              RichEdit1.Lines.Add('t6 = ' + Edit1.Text + '*60');
              Minute_multiply(Variables[1,6]);
             end;
          2: begin
              RichEdit1.Lines.Add('t6 = ' + Edit1.Text + '*3600');
              Hour_multiply(Variables[1,6]);
             end;
          end;
          RichEdit1.Lines.Add(ComboBox9.Text + '  ' + '=  ' + FloatToStr(Variables[1,6]) + '  ' + 'Секунд');
         end;
        end;