powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Проверка существования
7 сообщений из 7, страница 1 из 1
Проверка существования
    #34988829
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
допустим по Action.Execute из ActionList вызывается некий метод, в котором пишем XObject.Run();
если бы этот метод вызывался из произвольного места, то нет никакой гарантии, что XObject существует
но при смене ссылки на XObject происходит проверка на его существование Action.Enabled:=not (XObject=nil)
то есть если нет, то и дейстиви нет
вопрос при вызове все равно надо проверять
if not(XObject=nil) then
XObject.Run(); или нет?
...
Рейтинг: 0 / 0
Проверка существования
    #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
Проверка существования
    #34993085
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
Проверка существования
    #34993227
LordMAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nafвопрос вообще не об этом. :-)Тогда учись задавать вопросы. :)
...
Рейтинг: 0 / 0
Проверка существования
    #34993287
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учел замечание. Переформулирую вопрос.

Используется концепция Модель-контроллер-представление. При отсутствии в модели некоего объекта контроллер закрывает возможность действия с ним в представлении (ставит Enabled:=false). Таким образом обеспечиваем возможность работы с этим объектом модели визуально, только при его наличии.
Нужно ли при этом в контроллере все же проверять наличие объекта? ну как правило хорошего тона что-ли
...
Рейтинг: 0 / 0
Проверка существования
    #34995585
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
моё имхо. Это зависит. Есть-ли вероятность, что с этим объектом будут работать программно? если есть - проверка обязательна, если - возможно будет, то тоже стоит её сделать, если - точно нет: на фиг тогда она нужна?
тот код, который приведён в вопросе, предусматривает программную работу с объектом
...
Рейтинг: 0 / 0
Проверка существования
    #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]