У старших версіях Delphi введені дві корисні функції: TryStrToInt і TryStrToFloat. Ці функції в якості аргументів використовують рядок, яку потрібно конвертувати в ціле або дійсне значення і змінну, куди буде записаний результат в разі успішного перетворення. Якщо перетворення неуспішно - функція повертає false.
function TryStrToInt (const S: string; out Value: Integer): Boolean;
function TryStrToFloat (const S: string; out Value: Double): Boolean; overload;
Фрагмент коду з використанням функції TryStrToFloat наведено нижче. Слід зауважити, що в ...
Як аргумент функція приймає дійсне число з десятковим роздільником, встановленим в даній операційній системі.
if (TryStrToFloat (EditMu.Text, Mu) = false) then
ShowMessage ( 'Правильно введіть параметр Mu.');
2.5. Кнопки для запуску / зупинки розрахунку
Часто програмісти при розробці розрахункових програм блокують поля введення від зміни користувачем значень в них на час проведення розрахунку. Для цього при запуску розрахунку поля роблять недоступними (Edit1.Enabled: = false;) або встановлюють для них властивість ReadOnly (Edit1.ReadOnly: = true;). Ми залишаємо цей момент на розгляд розробника. Це можлива, але не обов'язкова міра, оскільки, поки програма вважає, вона не перевіряє поля введення. А ось на роботу кнопок управління обов'язково потрібно звернути увагу. Якщо розрахунок методом Монте-Карло досить добре забезпечений, тобто проводиться з великою статистикою, програма може вважати кілька секунд. В цьому випадку розробник повинен передбачити наявність кнопки, що дозволяє перервати розрахунок. Закономірно припустити, що перед запуском програми на розрахунок кнопка СТАРТ активна, а кнопка СТОП недоступна для використання. Коли йде розрахунок, кнопку СТАРТ роблять недоступною, а кнопку СТОП доступною до використання. Після закінчення розрахунку або в разі, коли розрахунок був перерваний, кнопки повертаються в первинний стан. Один з варіантів роботи з кнопками наведено у вигляді фрагмента коду нижче. У цьому випадку використовується одна кнопка, яка перейменовується в залежності від дій програми.
if Button1.Caption = 'Старт' then begin
ProcRun; // Запуск розрахунку, перевірка не натиснули Ви кнопку СТОП
else if Button1.Caption = 'Стоп' then begin
ProcStop; // Зупинка розрахунку, запам'ятовування статистики