Вниз
Скачать: 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.021 c
3-1079988659
Алексей
2004-03-22 23:50
2004.04.18
БД "Склад"


1-1080811748
KapitanSerg
2004-04-01 13:29
2004.04.18
Конвертация RTF => TXT


14-1079599373
Pitt
2004-03-18 11:42
2004.04.18
Помогите ламеру загрузить БД!


4-1076160216
kentavr
2004-02-07 16:23
2004.04.18
Помоги с Handle


1-1080707445
sapsi
2004-03-31 08:30
2004.04.18
Rx clock




   Наверх