2015-07-31 3 views
-3

Я получаю сообщение об ошибке «недопустимая операция с плавающей точкой» при создании новой формы, как показано ниже:«Недопустимая операция с плавающей точкой» при создании новой формы

procedure TfrmForm1.actMyProcedureExecute(Sender: TObject); 
var 
    MyForm2 : TfrmForm2; 
begin 
    MyForm2 := TfrmForm2.Create(Self); //Getting error while executing this statement. I put a breakpoint on Create event of TForm2 form, but before that I am getting this error and breakpoint never comes on OnCreate event of TForm2 form. 

end; 
+1

Ответ найден в реализации TfrmForm2, pas и dfm. Только вы можете это видеть. –

+0

Мой комментарий в коде: Я поставил точку останова на Create event формы TForm2, но до этого я получаю эту ошибку, и точка прерывания никогда не появляется в событии OnCreate формы TForm2. –

+3

Хорошо, если вы не хотите расширять вопрос, я дал ответ на том же уровне детализации, что и вопрос. Вам предстоит сделать оставшуюся часть расследования. –

ответ

1

Ошибка возникает во время выполнения конструктора TfrmForm2. Ошибка возникает до того, как будет выполнено событие OnCreate.

Наиболее вероятным объяснением является то, что исключение возникает во время создания и установки свойств элементов управления, указанных в файле dfm.

Другая возможность, я полагаю, заключается в том, что вы добавили конструктор для класса и код, вызывающий исключение. То, что я подозреваю, менее вероятно.

Отладить это, включив отладочные DCU, а затем посмотрев на стек вызовов, когда возникает исключение. Это должно указывать указатель на то, какая часть конструкции терпит неудачу. Как только вы определили точку отказа, вы можете попытаться решить проблему.

И, наконец, при отсутствии MCVE в вопросе, это тот тип ответа, который вы можете ожидать. Широкий и общий.

Смежные вопросы