Вниз
Скачать: 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
7-1077001550
Фикус
2004-02-17 10:05
2004.04.18
NT и HDD


1-1080341683
ceval
2004-03-27 01:54
2004.04.18
Подскажите как программно в RadioGroup написать название


1-1081066809
DADUD
2004-04-04 12:20
2004.04.18
Показать картинки в TWebBrowser


14-1080400629
KhazModan
2004-03-27 18:17
2004.04.18
Рисование разделителя


1-1080657596
новичок_из_сыктывкара
2004-03-30 18:39
2004.04.18
Проверить пустая ли строка???




   Наверх