Большое спасибо за ответы.
Приведу полный код :

program x2;
var
d: real;
id_1, id_2, i: integer;
ok, next, clicked: command;
begin
ShowForm;
repeat
ok := CreateCommand(' %', CM_BACK, 1);
next := CreateCommand('Далi', CM_SCREEN, 1);
d := 0;
repeat
ClearForm;
i := FormAddString('Час: ' + trunc(d / 100) + '.' + trunc(frac(d / 100) *100) + ' хв. ');
id_1 := FormAddTextField('Кiлькiсть, шт.', '', 10, 5);
id_2 := FormAddTextField('Норма, хв.', '', 10, 5);
AddCommand(ok);
AddCommand(next);
repeat clicked := GetClickedCommand;
delay(100);
until clicked <> EmptyCommand;
if (FormGetText(id_1) <> '') and (FormGetText(id_2) <> '') then
d := d + StringToReal(FormGetText(id_1), 10) * StringToReal(FormGetText(id_2), 10);
until clicked = ok;
repeat
ClearForm;
id_2 := FormAddTextField('Продуктивний час, хв.', '470', 10, 5);
AddCommand(OK);
while GetClickedCommand <> OK do delay(100);
until FormGetText(id_2) <> '';
d := d / StringToReal(FormGetText(id_2), 10);
ClearForm;
i := FormAddString('Ваш результат: ' + trunc(d) + '.' + trunc(frac(d) * 100) + '%');
ok := CreateCommand('Повтор', CM_BACK, 1);
next := CreateCommand('Вихiд', CM_SCREEN, 1);
AddCommand(ok);
AddCommand(next);
repeat clicked := GetClickedCommand;
delay(100);
until clicked <> EmptyCommand;
until clicked = next;
end.
На эмуляторе идет нормально, но на телефоне виснет в процессе выполнения. (siemens c65)
MIDlet type = Classic MIDlet
MIDP version = MIDP1.0
Как приучить телефон к мидлету?