Вниз
Скачать: CL | DM;

Как получить обратиться к полю класса (private) из регулярной...   Найти похожие ветки 

← →
The One ©   (2005-11-20 11:54) [0]

... процедуры, описанной в том же модуле что и класс.
Сабж.


← →
begin...end ©   (2005-11-20 12:29) [1]

Если процедура находится в том же модуле, что и описание класса, то проблем, как раз-таки, быть не должно. Обюращаться можно обычным образом.


← →
Карелин Артем ©   (2005-11-20 13:05) [2]


> begin...end ©   (20.11.05 12:29) [1]

Неверно! Процедура должна быть членом класса, а не просто лежать в том же модуле.


← →
The One ©   (2005-11-20 13:12) [3]

Немного уйду от полей в сторону методов класса.

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
Как быть?


← →
Anton_K ©   (2005-11-20 13:14) [4]


> Процедура должна быть членом класса, а не просто
> лежать в том же модуле.

Не должна.


← →
Defunct ©   (2005-11-20 13:21) [5]

The One ©   (20.11.05 13:12) [3]
> Как быть?

TMyClass = class
..
  public
     class function MyFunc (A:integer):integer;
..


← →
The One ©   (2005-11-20 14:28) [6]

Ок работает, но снова возникает проблемма:
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


← →
Плохиш ©   (2005-11-20 15:12) [7]


> The One ©   (20.11.05 14:28) [6]
> Ок работает, но снова возникает проблемма:
> Т.е. обратиться к защищенному сво-ву класса. Таким вот образом
> компилятор пишет, что Property "CurrProc" inaccessible here

Правильно пишет, потому что при вызове класс-функции объекта может не существовать, о каких свойствах тогда может идти речь.

PS. Перет тем как давить кнопки рекомендую изучить теорию и понять, что же ты в конце концов сделать хочешь.


← →
begin...end ©   (2005-11-20 15:15) [8]

> Карелин Артем ©   (20.11.05 13:05) [2]
> Неверно!

Вы попробуйте, попробуйте.


← →
Fay ©   (2005-11-21 03:36) [9]

2 Карелин Артем ©   (20.11.05 13:05) [2]
Да?! А мужики-то не знают! Надо срочно сообщить в Borland.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.029 c
1-1131694544
Deka
2005-11-11 10:35
2005.12.11
Оптимизация под конкретный процессор в Дельфи...


2-1132683001
DillerXX
2005-11-22 21:10
2005.12.11
RegQueryValueEx


2-1132334155
boble
2005-11-18 20:15
2005.12.11
FILTER по LOOKUP полям


4-1128586197
Duncan
2005-10-06 12:09
2005.12.11
Вызов процедуры в сервисе


14-1131827082
Джонсон
2005-11-12 23:24
2005.12.11
Microsoft проиграл конкурентам




   Наверх