в дополнение к вопросу:
http://otvety.google.ru/otvety/thread?tid=5d8c3e003c9232b9&table=%2Fotvety%2Fuser%3Fuserid%3D09534681371397432576
сделал процедурку для проги, в делфе на ней оно выдаёт ошибку, при нажатии на кнопку:
Debugger Exception Notification
Projecj Projecj1.exe raisednexception class EInalidOp eith message 'Invalid floating point operation'. Process stopped. Use Step or Run to continue.
но прогу компилит, и при запуске проги через *.ехе выдает ошибку:
Project1
Invalid floating point operation.
Примечание:
процедурка* - точнее функция, вот:
function crspx(x1,y1,x2,y2,x3,y3,x4,y4:integer):string;
var x,y:Real;
begin
x:=((x1*y2-x2*y1)*(x4-x3)-(x3*y4-x4*y3)*(x2-x1))/((y1-y2)*(x4-x3)-(y3-y4)*(x2-x1));
y:=((y3-y4)*x-(x3*y4-x4*y3))/(x4-x3);
x:=-1;
if (((x1<=x)and(x2>=x)and(x3<=x)and(x4>=x))or((y1<=y)and(y2>=y)and(y3<=y)and(y4>=y))) then
result:='('+FloatToStr(x)+','+FloatToStr(y)+')'
else
result:='0';
end;
Примечание:
вызываю так:
Memo1.Lines.Add(crspx(157,396,156,413,200,255,204,259));
Memo1.Lines.Add(crspx(200,255,204,259,204,259,204,263));
Примечание:
с делением на 0 понятно, такие загвоздки походу можно найти в каждом коде с делением
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.