Все написанное ниже полностью совместимо с предыдущими версиями. Оно лишь добавляет новые ствойства и события, никак не мешая старым. Грандиозное упрощение алгоритмов!
В Edit добавил свойство
IgnoreFirstEvent=Если True, то игнорировать одно первое событие onChange, которое происходит автоматически при старте приложения.|4|0|False,True
Это - чтобы при старте программы не создавалось событие, которое никто не вызывал. Которое, в свою очередь, приведет к записи значения и затиранию пустой строкой переменной в ресстре.
И событие
doText2=Уcтaнaвливaeт текст в поле ввода, но не генерирует событие onChange|1
Аналогично - чтобы можно было задать значение поле, избежав автозаписи. Крайне бесит беспричинные события, из-за которых нужно вещать счетчики собыйти, чтобы определять реальные действия юзера по значению счетчика на кол-во срабатываний событий. Такие свойство и события, в принципе, нужны у всех элементов интерфейса.
-------------
LedKey расширил свойствами
doNumLock=переключает режим клавиши NumLock|1
doCapsLock=переключает режим клавиши CapsLock|1
doScrollLock=переключает режим клавиши ScrollLock|1
doReset=выключает все 3 клавиши с диодами|1
doOn=включает все 3 клавиши с диодами|1
doNumLockOn=включает режим клавиши NumLock|1
doCapsLockOn=включает режим клавиши CapsLock|1
doScrollLockOn=включает режим клавиши ScrollLock|1
doNumLockOff=выключает режим клавиши NumLock|1
doCapsLockOff=выключает режим клавиши CapsLock|1
doScrollLockOff=выключает режим клавиши ScrollLock|1
---------------
Registry, новое свойство
NotEmpty=При True: генерировать событие onRead только если прочитано из реестра не нулевое число или не пустая строка. Если False (по-умолчанию) - событие генерится в любом случае.|4|0|False,True
Т.о. нет необходимости проверять, был ли в реестре ранее создан такой ключ и не пустой ли он.
----------------
Timer, новое свойство
AutoStop=Таймер автоматически отключится через указанное число срабатываний. Если равно 0, то это поле игнорируется и таймер будеь работать постоянно. При запуске таймера счетчик устанавливается заново. Например, при значении 1, таймер сработает лишь один раз.|1|0
Методы:
doStop=выключение таймера|1
doAutoStop=устанавливает значение AutoStop|1
Событие:
onStop=событие происходит один раз сразу после остановки таймера|2
Это тоже резко сокращает кол-во ненужных конструкций.
-------------
Коллосальное избавление от маразматических обвесок на элементарных операциях посмотрите на примере простой программы, состоящей из окошка, аналогичного "ПУСК-ВЫПОЛНИТЬ". Там есть поле для ввода пути или кнопки "..." для поиска имени программы. Кнопка "Выполнить" для запуска. И значение поля автоматически сохраняется в реестр при его измении. При запуске окошка в поле грузится ранее сохраненное значение.
Было так:
http://php.spb.ru/1/hiasm/hiasm1.jpg
http://php.spb.ru/1/hiasm/execute_programm.sha
После внесения моих измений стало так:
http://php.spb.ru/1/hiasm/hiasm2.jpg
http://php.spb.ru/1/hiasm/execute_programm_NEW.sha
Из комбинации "таймер-реестр-поле ввода" удалено 13 лишних объектов! Остались только таймер для автозагрузки реестра, сам реестр и поле ввода.
Внешний вид примера:
http://php.spb.ru/1/hiasm/hiasm3.jpg
Скачать эти 4 обновленных компонента для последней версии hiasm: http://php.spb.ru/1/hiasm/new.rar
Я конечно понимаю, что до размера Си Билдера или Дельфи раздувать кол-во свойств и событий нельзя, иначе чайники утонут в их численном перевесе, но некий минимум должен быть.
Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Не буду комментировать то, с чем полностью согласен.
LedKey расширил свойствами
Многие компоненты не содержат столь расширенного формата св-тв потому, что это не очень красиво выглядит в редакторе, поэтому необходимость в столь многогранной функциональность одного и того же св-ва сомнительна. Конечно есть некоторые соображения как этого избежать, так что ваши добавления не повредят(см. ниже). Коллосальное избавление от маразматических обвесок на элементарных операциях
Вы так выражаетесь, будто я специально это делаю . HiAsm - это прежде всего инструмент решающий конкретные задачи. Не возможно предвидеть все ситуации и расширение компонент как раз и происходит благодаря их возникновению. Так до версии 3.0 HiAsm был только тем, что было нужно мне и что позволяло успешно решать мои задачи. Сейчас же он уже содержит уйму всего, что предложили его пользователи, когда решали СВОИ задачи. Вот и все! Я конечно понимаю, что до размера Си Билдера или Дельфи раздувать кол-во свойств и событий нельзя, иначе чайники утонут в их численном перевесе, но некий минимум должен быть.
К этому минимому и стремимся! Не все сразу. Тем более, что этот минимум может быть достаточно большим при сохранение небольшого числа точек. И кстате не надо чайниками так бросаться! К примеру есть люди, которые уверяли меня, что HiAsm истересен только ламерам. И такие мнения есть как видите, т.ч. делайте выводы... В целом рад, что вы не только все грамотно прокомментировали, но и снабдили сообщение рисунками(кстате для их снятия есть специальная комбинация Ctrl+Q), а так же самостоятельно исправили файлы. Все будет внесено в следующую версию пакета, правда с небольшими изменениями. Теперь о том, как избавиться о нагромождение точек скажем в компоненте LedKey: нужно всего лишь дать пользователю возможность самому выбирать какие точки ему нужны, а изначально оставить только самые необходимые. Таким образом пользователь не запутается в огромном кол-ве точек, а познакомившись с программой лучше, сможит использовать и все дополнительные точки компонента. Это не я придумал, и поэтому этого не было в HiAsm изначально. В новой версии это уже будет. |
|||
карма: 27 |
|
2