Последняя версия DataExpress 3 beta от 27 мая 2018 года. Скачать. Энциклопедия DX. Форум на Develop-Soft

Скрипты. Приоритет вызова функций.

Справочная информация, руководства, видеоматериалы от пользователей DataExpress.
jurist23rus
Эксперт
Сообщения: 2165
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп

Скрипты. Приоритет вызова функций.

Сообщение jurist23rus » Сб мар 10, 2018 12:44 pm

Важная штука, которая отняла много часов моего времени на поиск ошибки в коде.

Пользовательская функция, то есть та функция, которая написана вами, имеет высший приоритет при вызове перед штатной функцией скриптового языка. Например, если в вашем коде вы описали функцию, например с именем RenameFile.

Код: Выделить всё

function RenameFile (a, b: string): boolean;
begin
.....
end;

и при этом забыли или не знали, что в самом движке скриптового языка уже существует аналогичная функция с аналогичными параметрами, то вызвана будет именно ваша функция, а не штатная. При этом компилятор никак не реагирует на совпадение имён, то есть никакой ошибки не будет. Вы будете очень удивлены, обнаружив, что программа, при казалось бы идеальном коде, делает не, то что требуется, при этом компилятор всего лишь пользуется не той функцией.
Destiny is a very convenient word for those who never take decisions.

drts
Интересующийся
Сообщения: 238
Зарегистрирован: Сб окт 29, 2016 11:35 pm
Откуда: Новороссийск

Re: Скрипты. Приоритет вызова функций.

Сообщение drts » Сб мар 10, 2018 1:35 pm

Вы имели в виду вот это?

jurist23rus
Эксперт
Сообщения: 2165
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп

Re: Скрипты. Приоритет вызова функций.

Сообщение jurist23rus » Сб мар 10, 2018 2:00 pm

Да, очень похоже. Только в моём случае параметры функции совпали полностью, поэтому никакой ошибки компилятора не было. И я долго и фактически наугад искал ошибку.
Destiny is a very convenient word for those who never take decisions.


Вернуться в «Справочная»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость