БОЛЬШОЙ FAQ ПО DELPHI



Классовые и статические переменные общего доступа

Здесь кроется небольшая хитрость: получение эквивалентной функциональности с помощью классового метода. Просто объявите NodeCount как регулярную типизированную константу в секции implementation вашего файла.


 type
   TNode = class
   public
     NodeCount: Integer = 0; {ЭТО НЕ ДОПУСКАЕТСЯ}
     constructor Create;
     class function GetNodeCount: word;
     {
     другой необходимый код
     }
   end;
 
 implementation
 
 const
   NodeCount: word = 0;
   TNode.Create;
 begin
   inherited Create;
   Inc(NodeCount);
 end;
 
 function TNode.GetNodeCount: word;
 begin
   result := NodeCount;
 end;
 

Итак, теперь ваш код может выглядеть так, как вы хотели:


 SampleNode := TNode.Create;
 x := SampleNode.GetNodeCount;
 

следующая строка также корректна:


 x := TNode.GetNodeCount;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Видеокурс ВЗЛОМ