Всё равно, кажется это формула косячит. Учи матчасть.
Program rulon;
Var
id1, id2, id3: integer;
d1, d2, l, h, n:real;
cmdNext, cmdExit, key: command;
Procedure Cls;
begin
ClearForm; SetFormTitle('Калькулятор рулонов 1.0.0');
cmdNext := CreateCommand('Считать', CM_OK, 1); AddCommand(cmdNext);
cmdExit := CreateCommand('Выход', CM_EXIT, 1); AddCommand(cmdExit);
end;
Begin
ShowForm;
repeat
Cls;
id1:=FormAddTextField('Диаметр рулона, (мм):', '', 5, TF_NUMERIC);
id2:=FormAddTextField('Толщина материала, (мкм):', '', 5, TF_NUMERIC);
id3:=FormAddTextField('Диаметр держателя, (мм):', '', 5, TF_NUMERIC);
repeat Delay(20); key:=GetClickedCommand; until key <> EmptyCommand;
if key=cmdExit then break;
d1:=StringToInteger(FormGetText(id1)); d1:=d1/1000;
h:=StringToInteger(FormGetText(id2)); h:=h/1000000;
d2:=StringToInteger(FormGetText(id3)); d2:=d2/1000;
n:=(d1-d2)/(2*h); l:=n*4.71238898*(d1-d2)/2;
Cls; n:=FormAddString('Длина: '+l);
repeat Delay(20); key:=GetClickedCommand; until key <> EmptyCommand;
if key=cmdExit then break;
until false;
End.