Я использую этот кодПочему я могу получить доступ к переменным частного класса вне класса и как его предотвратить?
type
TSomeClass = class(TOBject)
private
class var InstanceCount : integer;
class var TotalInstanceCount : integer;
public
class function instances: integer;
class function totalInstances: integer;
constructor Create;
destructor Destroy;
end;
constructor TSomeClass.Create;
begin
inherited Create;
Inc(InstanceCount);
Inc(TotalInstanceCount);
end;
destructor TSomeClass.Destroy;
begin
Dec(InstanceCount);
inherited;
end;
class function TSomeClass.instances;
begin
Result := InstanceCount;
end;
class function TSomeClass.totalInstances;
begin
Result := TotalInstanceCount;
end;
Я хочу, чтобы счетчик экземпляра и я установить некоторые переменные класса как частные. Вопрос очень легко, просто посмотрите на этой картине:
Как вы можете видеть в красной коробке, есть классовые переменные, которые я объявляемый как частные. Я не хочу, чтобы они появлялись. Я хочу, чтобы функции публичного класса могли показывать счетчики. Что я могу сделать?
Этот класс определен в том же подразделении, что и эта форма? –
Да. Должен ли я помещать этот класс в другое подразделение? а затем в главном блоке, где у меня есть форма: «Использует unitwithclass» –
Не обязательно, это только подтверждает мое подозрение. Классы в одном и том же подразделении могут обращаться к частным членам друг друга. Если я не ошибаюсь, я считаю, что «строгий частный» должен сделать трюк для вас. –