![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ReadOnly для переменной [D7, WinXP]
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, не может быть изменен внутри подпрограммы. Других случаев не знаю. В классах могут использоваться свойства. Обычно это что-то вроде внутренних переменных объекта. У свойств можно ввести произвольные ограничения на чтение или запись.