Как лучше сделать modSystemInformation

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...

Как лучше организовать обработку?

Нужно рейзить ошибку
3
27%
Не делать ничего, ибо раз возможности нет, то нет проблемы
0
Ответы отсутствуют.
Дайте мне проперть WindowsVersion, я сам буду её вызывать, чтобы определить, какие функции доступны
2
18%
Пусть будет module-level параметр, определяющий - рейзить ошибку или нет
6
55%
 
Всего голосов : 11

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Как лучше сделать modSystemInformation

Сообщение GSerg » 23.04.2005 (Сб) 7:08

Есть у меня такой модуль, в котором в качестве пропертей скомбинированы все возможности SystemParametersInfo, GetSystemMetrics и всякой такой фигни :)

Проблема в том, что некоторые опции той же SystemParametersInfo доступны не на всех виндах. Вот я и хочу спросить ваше мнение, как лучше организовать обработку ситуации, когда вызывается проперть, не поддерживаемая на текущей винде.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 23.04.2005 (Сб) 15:44

"Пусть будет module-level параметр, определяющий - рейзить ошибку или нет". Мне кажется, так будет красивее всего.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 23.04.2005 (Сб) 15:44

Код: Выделить всё
Public Event ErrorsEncountered(byval ErrorNumber as long, optional byref NextError as boolean = False)

А если юзеру на это будет начхать, так он просто обработчик писать не будет.

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 23.04.2005 (Сб) 17:48

Поддерживаю.
ОС проверять в модуле, при не совместимости версий гененировать событие с кодом/описанием ошибки и не выполнять код.
Юзер сам решит - будет он отрабатывать ошибочные ситуации или нет.

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.04.2005 (Вс) 4:19

Фиг вам, а не событие в модуле :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 24.04.2005 (Вс) 10:39

Т.е. сделать их модуля класс для тебя уже неразрешимая задача? :?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.04.2005 (Вс) 12:28

Во-первых, я не хочу делать из модуля класс ввиду того, что несколько инстансов оного ни к чему :)
Во-вторых, так избегаются многие проблемы с публичными типами, ибо в противном случае их придётся объявить опять-таки в модуле.
В-третьих, концептуально неверно рейзить событие в синхронном коде :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 24.04.2005 (Вс) 12:44

Согласен, согласен. Тогда... Можно сделать как в ADO: коллекция Errors, перезаполняемая при каждом обращении к объекту.

Но только не Err.Raise, я тебя умоляю! :) Так задалбывает писать эти монстроидальные select case в обработчиках...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.04.2005 (Вс) 12:50

Such a monstrous solution! :o
А всё так просто начиналось :)

ЗЫ: Не чудовищный Select Case, а On Error Goto ИндивидуальныйОбработчик перед каждым вызовом :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 69

    TopList