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

Можно ли создать защищенную переменную?   Найти похожие ветки 

← →
Aleksandr ©   (2004-04-02 13:46) [0]

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


interface

var
 ProtectedVariable : integer read GetProtectedVariable write SetProtected Variable;

implementation
 
var
 FProtectedVariable;

function GetProtectedVariable : integer;
begin
 Result:=FProtectedVariable
end;

procedure SetProtectedVariable(Value : integer);
begin
 FProtectedVariable:=Value
end;



Чисто для удобства интерфейса?


← →
Anatoly Podgoretsky ©   (2004-04-02 13:48) [1]

OVERLOAD для функции с именем ProtectedVariable


← →
Defunct ©   (2004-04-02 14:16) [2]

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

Низя

>> не в традиционном способе вызовом их
> OVERLOAD для функции с именем ProtectedVariable

Боюсь это не то.
Все равно конструкция вида:
ProtectedVariable := <bla bla bla>;
будет невозможна.


← →
Anatoly Podgoretsky ©   (2004-04-02 14:21) [3]

Вообще то да, но что делать, ну нет такого для переменных, пока только для полей класса, через свойство. И врядли будет Борланд это реализовывать.


← →
Aleksandr ©   (2004-04-02 14:39) [4]

Мда... спасибо.

>>но что делать, ну нет такого для переменных, пока только для полей класса, через свойство. И врядли будет Борланд это реализовывать.

А жаль. Очень удобно - и текст читабельнее, и подставить код дополнительный можно без глобальных поисков/замен.


← →
Anatoly Podgoretsky ©   (2004-04-02 14:43) [5]

Aleksandr ©   (02.04.04 14:39) [4]
Только что читабельнее, но в результате получаешь

ProtectedVariable := 10; -> SetProtected(10);
A := ProtectedVariable; -> GetProtectedVariable;

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



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

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



Память: 0.46 MB
Время: 0.034 c
1-1080470536
TGrey
2004-03-28 14:42
2004.04.18
К какому языку принадлежит текст


3-1079938024
Лысый
2004-03-22 09:47
2004.04.18
Вопрос по Distinct


14-1080169387
dr Tr0jan
2004-03-25 02:03
2004.04.18
Почему Муз-ТV вещает в PAL, а MAXIMUM закрыли?


1-1080291841
KSergey
2004-03-26 12:04
2004.04.18
Надо созда 2000 объектов TShape. Как ускорить?


3-1079686617
_Andy_
2004-03-19 11:56
2004.04.18
Datamodule




   Наверх