Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Проверка существования / 7 сообщений из 7, страница 1 из 1
05.12.2007, 16:19
    #34988829
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования
допустим по Action.Execute из ActionList вызывается некий метод, в котором пишем XObject.Run();
если бы этот метод вызывался из произвольного места, то нет никакой гарантии, что XObject существует
но при смене ссылки на XObject происходит проверка на его существование Action.Enabled:=not (XObject=nil)
то есть если нет, то и дейстиви нет
вопрос при вызове все равно надо проверять
if not(XObject=nil) then
XObject.Run(); или нет?
...
Рейтинг: 0 / 0
06.12.2007, 20:54
    #34992693
LordMAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования
Nafдопустим по Action.Execute из ActionList вызывается некий метод, в котором пишем XObject.Run();
если бы этот метод вызывался из произвольного места, то нет никакой гарантии, что XObject существует
но при смене ссылки на XObject происходит проверка на его существование Action.Enabled:=not (XObject=nil)
то есть если нет, то и дейстиви нет
вопрос при вызове все равно надо проверять
if not(XObject=nil) then
XObject.Run(); или нет?
Вообще написан бред, потому что "допустим по Action.Execute из ActionList вызывается некий метод" может означать все что угодно!
Но если ты хотел узнать сработает ли OnExecute при вызове Execute для Action, у которого Enabled = False, то ответ: нет, не будет вызван, если Action - наследник от TCustomAction.
...
Рейтинг: 0 / 0
07.12.2007, 08:37
    #34993085
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования
LordMAD Nafдопустим по Action.Execute из ActionList вызывается некий метод, в котором пишем XObject.Run();
если бы этот метод вызывался из произвольного места, то нет никакой гарантии, что XObject существует
но при смене ссылки на XObject происходит проверка на его существование Action.Enabled:=not (XObject=nil)
то есть если нет, то и дейстиви нет
вопрос при вызове все равно надо проверять
if not(XObject=nil) then
XObject.Run(); или нет?
Вообще написан бред, потому что "допустим по Action.Execute из ActionList вызывается некий метод" может означать все что угодно!
Но если ты хотел узнать сработает ли OnExecute при вызове Execute для Action, у которого Enabled = False, то ответ: нет, не будет вызван, если Action - наследник от TCustomAction.

я знаю, что он не сработает. вопрос вообще не об этом. :-)
...
Рейтинг: 0 / 0
07.12.2007, 10:04
    #34993227
LordMAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования
Nafвопрос вообще не об этом. :-)Тогда учись задавать вопросы. :)
...
Рейтинг: 0 / 0
07.12.2007, 10:25
    #34993287
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования
Учел замечание. Переформулирую вопрос.

Используется концепция Модель-контроллер-представление. При отсутствии в модели некоего объекта контроллер закрывает возможность действия с ним в представлении (ставит Enabled:=false). Таким образом обеспечиваем возможность работы с этим объектом модели визуально, только при его наличии.
Нужно ли при этом в контроллере все же проверять наличие объекта? ну как правило хорошего тона что-ли
...
Рейтинг: 0 / 0
08.12.2007, 01:43
    #34995585
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования
моё имхо. Это зависит. Есть-ли вероятность, что с этим объектом будут работать программно? если есть - проверка обязательна, если - возможно будет, то тоже стоит её сделать, если - точно нет: на фиг тогда она нужна?
тот код, который приведён в вопросе, предусматривает программную работу с объектом
...
Рейтинг: 0 / 0
08.12.2007, 12:25
    #34995750
LordMAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования
NafИспользуется концепция Модель-контроллер-представление. При отсутствии в модели некоего объекта контроллер закрывает возможность действия с ним в представлении (ставит Enabled:=false). Таким образом обеспечиваем возможность работы с этим объектом модели визуально, только при его наличии.
Нужно ли при этом в контроллере все же проверять наличие объекта? ну как правило хорошего тона что-лиПри такой формулировке вопроса - да должен. Другой вопрос как именно - if или assert - это зависит от логики работы программы.
Возвращаясь к тому, что уже было написано ранее - action не может в данном случае выступать представлением. В первоначальной формулироке вопроса присутсвует следующая схема: модель-контроллер-(модель-контроллер-представление), что во многих случаях можно понимать как ошибку проектирования, приводящую к неоправданным тормозам и неоправданной сложности сопровождения кода.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Проверка существования / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]