![]() |
|
![]() ![]() ![]() |
|
budg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.12.2005 Репутация: нет Всего: нет |
Есть следующий код:
Так вот, при запуске получаю сообщение об ошибке: [Error] diff.pas(55): Undeclared identifier: 'ADOStoredProc1' Ругается на ADOStoredProc1... ![]() Если тот же вызов делать не в функции, а в процедуре (TForm1.Button1Click) - все работает нормально. Возникает немой вопрос - разве компонента в функции не работает? Или ей нужно специфическое описание? Хелп плиииз.. |
|||
|
||||
Vit |
|
||||||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Конечно нет, компоНента - это же поле класса формы, откуда о нём знает функция? В классе формы (не переменной а типе формы!) описан компонент, а для функции это просто описание типа, а не переменной. Чтобы обратится к компоеннту из-вне надо указать переменную - экземпляр формы, а потом компонент.
Надо примерно так:
Поясню подробнее. Ты описал форму: Type TForm1 = class(Tform) ... Ты описал её поля, методы и т.п.:
Теперь когда ты пишешь метод формы, типа такого:
то это описание метода класса! а не экземпляра класса. Фокус в том что я могу класс TForm1 создать несколько раз, например сделать 10 одинаковых форм. Реально у тебя при этом будет 10 объектов ADOCommand1, которые будут относится к разным экземплярам форм. Метод TForm1.MyProc будет относится именно к тому экземпляру с которым ты его вызываешь, а вот для функции вовсе не очевидно с каким экземпляром компонента работать... PS. Вообще-то использование такой функции как ты привёл является дурным тоном, оно чревато многочисленными проблемами... Лучше эту функцию переделать в метод класса:
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
||||||||
|
|||||||||
budg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.12.2005 Репутация: нет Всего: нет |
Спасибо огромное!
![]() Буду разбираться. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |