Вверх ↑
Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
#1: 2004-07-20 03:34:57 ЛС | профиль | цитата
Все написанное ниже полностью совместимо с предыдущими версиями. Оно лишь добавляет новые ствойства и события, никак не мешая старым. Грандиозное упрощение алгоритмов!

В 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
Я конечно понимаю, что до размера Си Билдера или Дельфи раздувать кол-во свойств и событий нельзя, иначе чайники утонут в их численном перевесе, но некий минимум должен быть.
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2004-07-25 19:57:34 ЛС | профиль | цитата
Не буду комментировать то, с чем полностью согласен.

LedKey расширил свойствами

Многие компоненты не содержат столь расширенного формата св-тв потому, что это не очень красиво выглядит в редакторе, поэтому необходимость в столь многогранной функциональность одного и того же св-ва сомнительна. Конечно есть некоторые соображения как этого избежать, так что ваши добавления не повредят(см. ниже).

Коллосальное избавление от маразматических обвесок на элементарных операциях

Вы так выражаетесь, будто я специально это делаю . HiAsm - это прежде всего инструмент решающий конкретные задачи. Не возможно предвидеть все ситуации и расширение компонент как раз и происходит благодаря их возникновению. Так до версии 3.0 HiAsm был только тем, что было нужно мне и что позволяло успешно решать мои задачи. Сейчас же он уже содержит уйму всего, что предложили его пользователи, когда решали СВОИ задачи. Вот и все!

Я конечно понимаю, что до размера Си Билдера или Дельфи раздувать кол-во свойств и событий нельзя, иначе чайники утонут в их численном перевесе, но некий минимум должен быть.

К этому минимому и стремимся! Не все сразу. Тем более, что этот минимум может быть достаточно большим при сохранение небольшого числа точек. И кстате не надо чайниками так бросаться! К примеру есть люди, которые уверяли меня, что HiAsm истересен только ламерам. И такие мнения есть как видите, т.ч. делайте выводы...

В целом рад, что вы не только все грамотно прокомментировали, но и снабдили сообщение рисунками(кстате для их снятия есть специальная комбинация Ctrl+Q), а так же самостоятельно исправили файлы. Все будет внесено в следующую версию пакета, правда с небольшими изменениями.

Теперь о том, как избавиться о нагромождение точек скажем в компоненте LedKey: нужно всего лишь дать пользователю возможность самому выбирать какие точки ему нужны, а изначально оставить только самые необходимые. Таким образом пользователь не запутается в огромном кол-ве точек, а познакомившись с программой лучше, сможит использовать и все дополнительные точки компонента. Это не я придумал, и поэтому этого не было в HiAsm изначально. В новой версии это уже будет.
карма: 27
0
2
Сообщение
...
Прикрепленные файлы
(файлы не залиты)