![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Странный глюк с видимостью переменной
NickMan © (2005-07-30 09:03:00)Почему я не могу обратится к компонентам ADOTable в теле функции а в теле обработчика нажатия кнопки?
Если обращатся в теле функции то пишет что к примеру переменная ADOTable не определена.
Anatoly Podgoretsky (2005-07-30 13:51:00) [1]NickMan (30.07.05 12:33) [3]
Сказано же у тебя в программе ошибка, чего еще говорить.
sniknik (2005-07-30 13:43:00) [2]> А что не так?
к примеру ты решиш использовать эту функцию в onCreate другой формы, а форма это создается раньше той из которой взят в функции ADOTable1, получиш AV... переменная еще не создана. (и это не единственные вариант)
а возможно у тебя это единственная форма, и/или вызываеш ты функцию только из ее же обработчиков, тогда тем более глупо (хотя на ошибку и не нарвешся)... адресоватся от корня уже находясь внутри. проше(и правильнее) тогда функцию внутри класса описать, и адресоватся нормально.
а вообше найди чтонибудь про про ООП (обьектно ориентированное программирование) почитать.
> Но автор хочет, и мы не вправе ему запретить :)
скорее, автор сам не знает чего он хочет. ;о))
Leonid Troyanovsky (2005-07-30 13:20:00) [3]
> NickMan (30.07.05 13:00) [10]
> > Даже пробывать не надо, бо дурной тон
> Согласен на 100%. Но автор хочет, и мы не вправе ему запретить
> :)
> А что не так? With?
Использование FormX, как следствие bad design.
Необходимо рефлекторно избегать использования глобальных
переменных. Допустимый набор таких переменных д.б. минимален,
в идеале - Application.
--
Regards, LVT.
Leonid Troyanovsky (2005-07-30 13:00:00) [4]
> DrPass © (30.07.05 12:53) [8]
> > Даже пробывать не надо, бо дурной тон
> Согласен на 100%. Но автор хочет, и мы не вправе ему запретить
> :)
Наше дело - предупредить.
--
Regards, LVT.
NickMan (2005-07-30 13:00:00) [5]> Даже пробывать не надо, бо дурной тон
Согласен на 100%. Но автор хочет, и мы не вправе ему запретить :)
А что не так? With?
DrPass (2005-07-30 12:53:00) [6]
> Даже пробывать не надо, бо дурной тон
Согласен на 100%. Но автор хочет, и мы не вправе ему запретить :)
Leonid Troyanovsky (2005-07-30 12:39:00) [7]
> DrPass © (30.07.05 12:35) [4]
> А писать не просто ADOTable1, а Form1.ADOTable1 пробовал?
Даже пробывать не надо, бо дурной тон.
--
Regards, LVT.
NickMan (2005-07-30 12:37:00) [8]Спасибо.
DrPass (2005-07-30 12:35:00) [9]А писать не просто ADOTable1, а Form1.ADOTable1 пробовал?
Ольга (2005-07-30 12:35:00) [10]Имя процедуры-обработчика, если вы обратили внимание, начинается так TForm1.тра-ля-ля
Сделайте свою функцию, принадлежащей форме, либо обращайтесь к ADOTable с полным именем TForm1.ADOTable
NickMan (2005-07-30 12:33:00) [11]В Uses вроде бы все есть. (у меня один модуль)
В обработчике кнопки все работает. Я вставил свою функцию в обработчик - заработало. Но все равно странно...
Anatoly Podgoretsky (2005-07-30 12:10:00) [12]Ну наверно у тебя ошибка, а в обработчике будет тоже самое, это по сути тоже функция/процедура
AlexWlad (2005-07-30 11:08:00) [13]uses ...
Как вариант передавай в параметре ф-ции
function Foo(MyDS : TCustomADODataSet);