botsik
|
|||||||||||
1 | |||||||||||
Ошибка: Undeclared identifier: 'speedbutton1'04.09.2016, 10:44. Показов 1671. Ответов 5
Метки нет (Все метки)
При разработке приложения столкнулся с проблемой. В нужно выполнить действия в разных местах. Решил создать процедуру и залить туда весь нужный мне код. При компилировании жалуется на имена компонентов. Что-то типа такого:
Код
[Error] un_main.pas(292): Undeclared identifier: 'speedbutton1'
Код
[Error] un_main.pas(314): Undeclared identifier: 'ComponentCount' [Error] un_main.pas(316): Undeclared identifier: 'Components' [Error] un_main.pas(355): Operator not applicable to this operand type ...
0
|
04.09.2016, 10:44 | |
Ответы с готовыми решениями:
5
Ошибка: Undeclared identifier Ошибка Undeclared identifier Ошибка: Undeclared identifier Ошибка Undeclared Identifier |
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|||||||||||
04.09.2016, 10:59 | 2 | ||||||||||
Сообщение было отмечено cfbogd как решение
Решение
Объявите процедуры в разделе interface
примерно так.
Если объявлять в разделе implementation, то так.
1
|
botsik
|
||||||
04.09.2016, 12:36 [ТС] | 3 | |||||
Вы меня неправильно поняли... я не хочу дублировать код на каждую кнопку, а сделать процедуру и вызвать ее одной строчкой кода.
Например:
записал в interface, процедуру прочитало, но стоит на строке, которую я указал выше. то что в скобках я удалил Добавлено через 1 минуту Все, запустилось Благодарю за помощь!
0
|
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
04.09.2016, 12:53 | 4 |
1
|
botsik
|
|||||||||||
06.09.2016, 19:03 [ТС] | 5 | ||||||||||
продолжаю тему, ибо без ошибки у меня не обошлось.
Я хочу сделать что то типа такого (пример) :
Заранее спасибо за ответ.
0
|
Модератор
|
||||||||||||||||||||||||||
07.09.2016, 07:12 | 6 | |||||||||||||||||||||||||
Сообщение было отмечено cfbogd как решение
Решение
cfbogd, Вам бы следовало для начала ознакомиться с базовыми концепциями ООП. Тема обширная, в двух словах на форуме не рассказать, поэтому придется книжку прочесть. А конкретно по Вашему вопросу в двух словах скажу:
Есть у Вас форма, на этой форме находятся различные компоненты. Все это объекты, описанные в различных классах. Но если класс формы описан непосредственно в Вашем модуле, то классы остальных компонентов описаны в других файлах. Чтобы получить доступ к описанию этих объектов, мы подключаем к своему проекту эти самые другие файлы. Для этого и используется секция uses Каждый объект может реагировать на определенные системные события: список этих событий можно посмотреть в инспекторе объектов на закладке Events. Реакция объекта на событие описывается в специальной процедуре и называется методом класса. Все компоненты, лежащие на форме, принадлежат этой самой форме и являются по отношению к ней дочерними объектами. Сама же форма является родительским объектом для всех объектов расположенных на ней. Иными словами, все конкретные объекты, их свойства и методы - все это включено в класс формы. Внутри класса все объекты могут "видеть" друг друга, обращаться к свойствам и методам других компонентов. Теперь о Вашей проблеме: когда Вы пишите свою процедуру/функцию - она находится за пределами класса формы. Это означает, что все объекты, описанные в классе, для этой процедуры не доступны: она их просто не "видит", объекты "в домике" Есть два пути решения: 1. Обратиться к "родителю", чтобы тот "дал разрешение пообщаться" с дочерним объектом: т.е. вместо прямого обращения
Не по теме: Все как в армии: стоит твой непосредственный командир и левый дядя, старше по званию. И вот чтобы пообщаться со своим, так тебе необходимым в данный момент лейтенантом, ты обращаешься к этому нафиг тебе не нужному майору: 2. Сделать свою процедуру методом класса. включив свою процедуру в класс, мы добьемся того, что все объекты класса, их свойства и методы станут доступны для обращения: процедура становится "своей", а своим позволено гораздо больше, чем чужим Как это реализовать: 1. Поместить описание процедуры в раздел private или public класса формы
Не по теме: Не знаю, зачем все это пишу, если Puporev все это показал еще во 2-м посте
1
|
07.09.2016, 07:12 | |
07.09.2016, 07:12 | |
Помогаю со студенческими работами здесь
6
Ошибка: Undeclared identifier 'i' Ошибка: Undeclared identifier: 'this' Ошибка undeclared identifier Ошибка: Undeclared identifier Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |