Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ReadOnly для переменной [D7, WinXP]


Страницы:   1 2 3

DukeArtem ©   (2007-11-21 10:58:00) 

Здравствуйте.
Вопрос такой, есть ли в Дельфях способ выставлять переменной  доступ(чтение/запись): тоесть, есть переменная i в неё и программа заносит данные, и пользователь заносит данные, но так что бы когда пользователь пытался бы занести данные, программа отвечали, что-то в духе ReadOnly(или как угодно, но не давала записать в неё). Сразу же говорю, программа не несёт практического применения, так что альтернативные решения типа не давать пользователю textbox и др. не подходят.
Спасибо, подумавшим.


DukeArtem   (2007-11-22 00:11:00) [41]

Спасибо за подкинутые мысли, что-нибудь соображу. На вопрос "зачем" - ответ прост, такое задание получил в инсте.


homm   (2007-11-21 22:37:00) [42]

> [16] TUser ©   (21.11.07 19:39)
> Можно сделать readonly-свойство у объектов некоторого класса.

Да о чем может быть речь, если в сабже «пользователь заносит в переменную данные»?


TUser   (2007-11-21 19:39:00) [43]

Можно сделать readonly-свойство у объектов некоторого класса.


Leonid Troyanovsky   (2007-11-21 18:00:00) [44]


> {RASkov}   (21.11.07 17:44) [14]

> Хотя и это наверняка имеет место быть)

Пуркуа бы не па.
Например, как в том анекдоте про чукчу.
Возможно, что читается некое другое свойство.

IMHO, в подобных случаях чаще ограничиваются
сеттерами и геттерами без самого свойства.

--
Regards, LVT.


{RASkov}   (2007-11-21 17:44:00) [45]

> [13] {RASkov}   (21.11.07 17:40)

ЗЫ Так же свойство может быть только для записи но не чтения.... Вот это вот уже, по моему, бред :)
Хотя и это наверняка имеет место быть)


{RASkov}   (2007-11-21 17:40:00) [46]

Человек спросил - ему ответили...
Если вопрос бред - то есть 2 варианта:
либо промолчи
либо обоснуй сей бред....
Я в вопросе увидел некую схожесть со свойствами.....
если бы были только переменные и константы и ничего лишнего, то зачем readonly свойства?
:о) ладно..... почти шутка.)


homm   (2007-11-21 17:37:00) [47]

> [3] Reindeer Moss Eater ©   (21.11.07 11:21)
> Пользователь не может заносить данные в переменную
> Еще как может :)

Как?


TIF   (2007-11-21 16:59:00) [48]

мне интересно, зачем такой идиотизм нужен????!!! есть константы, есть переменные - третий лишний!


Jeer   (2007-11-21 14:11:00) [49]


> DukeArtem ©   (21.11.07 10:58)


"Вот это бред, всем бредам - бред"


Amoeba   (2007-11-21 13:24:00) [50]

Удивительно, как этот вопрос попал в "Основную", когда ему с самого начала место в "Потрепаться" или, с огромной натяжкой, в "Начинающих".


Германн   (2007-11-21 12:43:00) [51]


> Правильный_Вася   (21.11.07 11:52) [4]
>
> есть еще константные переменные, если мне не изменяет память
>

Типизированные константы. Так это называется.
Но все равно это врядли ответ на сей бредовый сабж.


Правильный_Вася   (2007-11-21 12:08:00) [52]


> {RASkov}   (21.11.07 12:00) [5]

не, я имел ввиду
const
 cCurConfig: String = '1';

с дальнейшей возможностью присваивания
но действительноне в тему


DVM   (2007-11-21 12:02:00) [53]

Отнять у пользователя клавиатуру и мышь, тогда он точно не занесет ничего никуда.


> DukeArtem ©

Чудной вопрос однако. Если под переменной подразумевать некоторую область памяти, то занести туды значение нужное можно в любом случае и неважно как программа при этом устроена. Нельзя лишь если память только для чтения на аппаратном уровне.


{RASkov}   (2007-11-21 12:00:00) [54]

> [4] Правильный_Вася   (21.11.07 11:52)

наверное правильнее "переменные константы" :)
var N: Integer = 5;
но имхо, не в тему...


Правильный_Вася   (2007-11-21 11:52:00) [55]

есть еще константные переменные, если мне не изменяет память


Reindeer Moss Eater   (2007-11-21 11:21:00) [56]

Пользователь не может заносить данные в переменную
Еще как может :)


{RASkov}   (2007-11-21 11:17:00) [57]

Добавлю к [1]... Можно и вот такой способ реализовать:

 function MyReadOnlyText: String;

implementation

var FMyReadOnlyText: String;
fuction MyReadOnlyText: String;
begin
 Result:=FMyReadOnlyText;
end;

Далее в модуле меняем FMyReadOnlyText, а доступ к ней при помощи функции.....
В итоге получается не совсем переменная, но.... Printer аналогично реализован :)


palva   (2007-11-21 11:07:00) [58]

Пользователь не может заносить данные в переменную. Он может занести данные в поле ввода и т. д.
Ограничения на запись в переменную (из программы) могут быть введены. Могу вспомнить, что параметр подпрограммы, объявленный с параметром const, не может быть изменен внутри подпрограммы. Других случаев не знаю. В классах могут использоваться свойства. Обычно это что-то вроде внутренних переменных объекта. У свойств можно ввести произвольные ограничения на чтение или запись.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо