![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить обратиться к полю класса (private) из регулярной... [D7, WinXP]
The One © (2005-11-20 11:54:00)... процедуры, описанной в том же модуле что и класс.
Сабж.
Fay (2005-11-21 03:36:00) [1]2 Карелин Артем © (20.11.05 13:05) [2]
Да?! А мужики-то не знают! Надо срочно сообщить в Borland.
begin...end (2005-11-20 15:15:00) [2]> Карелин Артем © (20.11.05 13:05) [2]
> Неверно!
Вы попробуйте, попробуйте.
Плохиш (2005-11-20 15:12:00) [3]
> The One © (20.11.05 14:28) [6]
> Ок работает, но снова возникает проблемма:
> Т.е. обратиться к защищенному сво-ву класса. Таким вот образом
> компилятор пишет, что Property'CurrProc' inaccessible here
Правильно пишет, потому что при вызове класс-функции объекта может не существовать, о каких свойствах тогда может идти речь.
PS. Перет тем как давить кнопки рекомендую изучить теорию и понять, что же ты в конце концов сделать хочешь.
The One (2005-11-20 14:28:00) [4]Ок работает, но снова возникает проблемма:
type
TMyClass = class
private
FB:integer;
protected
property B:integer read FB write FB;
class function MyFunc (A:integer):integer;
end;
Как теперь здесь:
class function MyFunc (A:integer):integer;
begin
result:=A+B//вот так вот сделать?
end;
Т.е. обратиться к защищенному сво-ву класса. Таким вот образом компилятор пишет, что Property 'CurrProc' inaccessible here
Defunct (2005-11-20 13:21:00) [5]The One © (20.11.05 13:12) [3]
> Как быть?
TMyClass = class
..
public
classfunction MyFunc (A:integer):integer;
..
Anton_K (2005-11-20 13:14:00) [6]
> Процедура должна быть членом класса, а не просто
> лежать в том же модуле.
Не должна.
The One (2005-11-20 13:12:00) [7]Немного уйду от полей в сторону методов класса.
type
TMyClass = class
public
function MyFunc (A:integer):integer;
end;
В том же модуле существует регулярная процедура:
function AnotherFunc(A:integer):integer;
begin
TMyClass.MyFunc(A);//так примерно хочется сделать мне
end;
Возникает ошибка: This form of method call only allowed for class methods
Как быть?
Карелин Артем (2005-11-20 13:05:00) [8]
> begin...end © (20.11.05 12:29) [1]
Неверно! Процедура должна быть членом класса, а не просто лежать в том же модуле.
begin...end (2005-11-20 12:29:00) [9]Если процедура находится в том же модуле, что и описание класса, то проблем, как раз-таки, быть не должно. Обюращаться можно обычным образом.