В целях разнообразия я придумал простенький механизм для вывода в строку состояния различных крылатых фраз во время ожидания пользователем реакции программы. Это позволяет разрядить напряженную рабочую обстановку, что в конечном счете приводит к повышению эффективности труда (во как загнул).
Для хранения выражений служит справочник «Фразы ». Структура его очень проста: пятизначный цифровой код , наименование отсутствует и реквизит «Содержание », типа «Строка » длиной 70 .
В глобальном модуле добавлена одна переменная и три маленьких процедуры:
//Генерирование случайных чисел взято по примеру Кайгородова Андрея aka mszsuz
Перем СлучайныйФактор ;
//________________________________________________________ //инициализация случайной переменной для использования в дальнейшем Процедура ПосеятьЧисло () Перем ч ,м ,с ; ТекущееВремя(ч ,м ,с ); СлучайныйФактор =ч *24 +м *60 +с ; КонецПроцедуры
//________________________________________________________ //функция получения случаного числа от 1 до заданного значения Функция СлучайноеЧисло (Максимум ) Экспорт СлучайныйФактор =(13 *СлучайныйФактор +13849 )%65536 ; Возврат ((СлучайныйФактор %Максимум )+1 ); КонецФункции
//________________________________________________________ //Эта процедура получает случайное число от 1 до максимального кода справочника //а потом показывает в строке состояние строку содержания из элемента с таким кодом. Процедура глСостояние () Экспорт Перем Спр , Колво ; Спр =СоздатьОбъект("Справочник.Фразы" ); Спр .ПорядокКодов (); Спр .ОбратныйПорядок (1 ); Колво =0 ; ТекФраза ="Тяжела и неказиста жизнь простого программиста!" ; Если Спр .ВыбратьЭлементы ()=1 Тогда Если Спр .получитьЭлемент ()=1 Тогда Колво =Число(Спр .Код ); КонецЕсли; КонецЕсли; Если Колво >0 Тогда ТекНомер =Макс(СлучайноеЧисло (КолВо ),1 ); Если Спр .НайтиПоКоду (ТекНомер )=1 Тогда ТекФраза =Спр .Содержание ; КонецЕсли; КонецЕсли; Состояние(ТекФраза ); КонецПроцедуры
Для правильно работы со случайными числами следует вызов процедуры инициализации случайного значения делать при начале работы системы:
Процедура ПриНачалеРаботыСистемы () ПосеятьЧисло (); КонецПроцедуры
Теперь остается вставить перед каждым длительным процессом вызов глобальной процедуры глСостояние (); и готово.
Избранные фразы можно посмотреть здесь. Я специально отбирал не слишком специфические (чтобы некомпьютерщикам было понятно), и чтобы были покороче (иначе они просто не поместятся в строку соcтояния).
Перепечатка, воспроизведение в любой форме, распространение, в том числе в переводе, любых материалов с сайта www.softpoint.ru возможны только с письменного разрешения компании "СофтПоинт". Это правило действует для всех без исключения случаев, кроме тех, когда в материале прямо указано разрешение на копирование (основание: Закон Российской Федерации "Об авторском праве и смежных правах").
|