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

Проверка имен функций и процедур

Вопросы, касающиеся языка, синтаксиса.
Аватара пользователя
YurAnt
Эксперт
Сообщения: 3361
Зарегистрирован: Чт апр 13, 2017 8:57 am
Контактная информация:

Проверка имен функций и процедур

Сообщение YurAnt » Ср авг 23, 2017 11:37 pm

Долго бился абасвальт, пытаясь понять, какие же "неверные параметры" задал в выделенной строке...
Изображение
Изображение
...пока не допетрил, что функция пересекается с названием процедуры (выше).
Возможно как-то подобную проверку проверку сделать корректной, с правильным указателем строк?
Изображение

Аватара пользователя
admin
Разработчик
Сообщения: 3826
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская

Re: Проверка имен функций и процедур

Сообщение admin » Чт авг 24, 2017 8:15 am

Компилятор Вам пытался упорно объяснить, что количество параметров неверно. Что надо исправить? Вашу невнимательность? Есть определение функции и есть использование функции. Почему это компилятор должен указывать именно на определение функции? Вы задали некоторые правила (определили функцию), компилятор их соблюдает (ругается на неверное количество параметров). А Вы говорите "исправьте".

P.S. Старайтесь давать обработчикам событий такие имена, чтобы можно было понять, какое событие обрабатывается. Пример можно взять из среды Lazarus, когда обработчику дается имя вида: ComponentNameEventName - Button1Click и т. д.

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3361
Зарегистрирован: Чт апр 13, 2017 8:57 am
Контактная информация:

Re: Проверка имен функций и процедур

Сообщение YurAnt » Чт авг 24, 2017 9:07 am

admin писал(а):Компилятор Вам пытался упорно объяснить, что количество параметров неверно.

Так ведь в точке, на которую он указывает - количество параметров верное.
admin писал(а):Что надо исправить? Вашу невнимательность?
А разве это не предназначение окна сообщений компилятора - исправлять "нашу невнимательность"? :shock:
Почему он тогда не выдал предупреждение на стадии:

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

procedure Insert(Sender: TObject);...

Ведь имя моей процедуры уже совпадало с предопределенной процедурой...
admin писал(а):P.S. Старайтесь давать обработчикам событий понятные имена, чтобы можно было понять, какое событие обрабатывается. Пример можно взять из среды Lazarus, когда обработчику дается имя вида: ComponentNameEventName - Button1Click и т. д.
А это причем..? Вообще это было для примера (процедура вставки текста в поле с именем "insert"...)
Изображение

Аватара пользователя
admin
Разработчик
Сообщения: 3826
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская

Re: Проверка имен функций и процедур

Сообщение admin » Чт авг 24, 2017 9:29 am

У Вас в модуле есть пользовательская функция Insert, которая перекрывает встроенную. Компилятор руководствуется новым определением функции. Не используйте имена процедур и функций, которые совпадают с имена встроенных или с зарезервированными словами.

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3361
Зарегистрирован: Чт апр 13, 2017 8:57 am
Контактная информация:

Re: Проверка имен функций и процедур

Сообщение YurAnt » Чт авг 24, 2017 9:48 am

У Вас в модуле есть пользовательская функция Insert, которая перекрывает встроенную. Компилятор руководствуется новым определением функции.

Ответ понятен. Компилятор нельзя заставить указывать на "причину причины ошибки".
admin писал(а):Не используйте имена процедур и функций, которые совпадают с имена встроенных или с зарезервированными словами.

От этого никто из начинающих не застрахован. Создал процедуру - компилятор молчит. Поехал дальше - компилятор начал ругань с указанием в последующий участок. Просто, насколько я знаю - проверка производится по коду сверху-вниз и стало непонятно - почему указатель ошибки "не там"... (Источник выявил только после сравнения с идентичной процедурой и до сих пор не могу врубиться - почему свободно "проскочила" строка procedure insert(...)
Изображение

neitri
Мастер скриптов
Сообщения: 537
Зарегистрирован: Пн фев 13, 2017 5:42 pm

Re: Проверка имен функций и процедур

Сообщение neitri » Чт авг 24, 2017 11:02 am

В данной ситуации варнинг бы не помешал.
Лазарус на объявление такой процедуры ругается unit1.pas(32,11) Error: Found declaration: Insert(TObject);
Помогли Тебе. Помоги проекту.
Реквизиты помощи Вы можете найти в окне "О программе"

Аватара пользователя
admin
Разработчик
Сообщения: 3826
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская

Re: Проверка имен функций и процедур

Сообщение admin » Чт авг 24, 2017 11:27 am

Исходники PascalScript изучать надо.

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3361
Зарегистрирован: Чт апр 13, 2017 8:57 am
Контактная информация:

Re: Проверка имен функций и процедур

Сообщение YurAnt » Чт авг 24, 2017 11:27 am

:!: У меня молчит... Странно.
Изображение
admin писал(а):Исходники PascalScript изучать надо.

Т.е. - теоретически возможно..? А говорили что я такой-сякой тупезнь... :lol:
Изображение

neitri
Мастер скриптов
Сообщения: 537
Зарегистрирован: Пн фев 13, 2017 5:42 pm

Re: Проверка имен функций и процедур

Сообщение neitri » Чт авг 24, 2017 11:38 am

А так ругается.
Вложения
123.PNG
123.PNG (50.92 КБ) 950 просмотров
Помогли Тебе. Помоги проекту.
Реквизиты помощи Вы можете найти в окне "О программе"

Аватара пользователя
admin
Разработчик
Сообщения: 3826
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская

Re: Проверка имен функций и процедур

Сообщение admin » Чт авг 24, 2017 11:41 am

YurAnt писал(а):Т.е. - теоретически возможно..? А говорили что я такой-сякой тупезнь...

Возможно все. Вот только так не хочется туда лезть. Я хотел сказать о том, что никакие проверки от невнимательности в итоге не спасут. Иногда просто нужно знать некоторые особенности.


Вернуться в «Язык программирования RemObject Pascal Script.»