Предлагаю здесь выкладывать свои моды стандартных компонентов, с необходимой аргументацией причины модификации. Если она покажется разработчикам убедительной, то (после тестирования) возможна замена ими стандартных и включения в пакет. Критика приветствуется.
Итак, могу предложить следующие модификации под пакет Windows:
1. Grapher - добавлены 2 точки для установки минимального и максимального значения графика по оси Y.
Причина: необходимость динамически менять диапазон графика чтобы вписывать текущие значения.
Глюки: Пока не замечено.
2. PlotMarker - добавлена скрытая точка для установки произвольного текста.
Причина: необходимость динамически менять отображаемый текст.
Глюки: К сожалению, на практике обнаружились - при накладывании более чем 1-го графика на Plotter, последнее изменение текста присваивается всем графикам. Пришлось откатиться к исходному элементу. Dilma, если не сложно добавьте подобную функциональность, а то сам не скоро соображу..
Также обнаружен "родной" глюк у самого Plotter-a - если изменить зум или положение графика колесиком мыши, то график перестает автоматически сдвигаться по оси Х, вернее он движется, но его новые значения оказываются за пределами окна обзора.
http://forum.hiasm.com//getfile/25054 - Вторая версия.
10.2.2019 - Отладчик схем: http://forum.hiasm.com/getfile/38599
http://forum.hiasm.com/post/301104
Редактировалось 3 раз(а), последний 2019-02-10 13:05:23
Этот топик читают: Гость
Ответов: 1291
Рейтинг: 47
|
|||
карма: 3 |
| ||
файлы: 2 | grapher_mod1.rar [2.8KB] [758], plotmarker_mod1.rar [2.4KB] [697] |
Ответов: 4630
Рейтинг: 749
|
|||
Если модификации существенные, то такой компонент обычно выкладывается отдельно. Но раз уж на то пошло...
Модификация компонента WinExec Добавлено свойство и точка Action, позволяющие указать действие, которое должно выполниться методом doShellExec. В штатном компоненте выполняется только "open", но иногда нужны другие действия (в зависимости от типа файлов). Добавлена точка ExitCode, которая возвращает код завершения процесса при Mode=Wait Добавлена точка ProcessID Добавлено свойство и точка WorkingDir Помещено на SVN |
|||
карма: 26 |
|
Ответов: 5227
Рейтинг: 587
|
|||
DataToFile к свойству Type добавлена точка по имени свойства, хотя скорей всего нужно было по индексуhttp://zalil.ru/31624791
|
|||
карма: 4 |
|
Разработчик
Ответов: 26158
Рейтинг: 2127
|
|||
andrestudio писал(а): DataToFile к свойству Type добавлена точка по имени свойстваА зачем |
|||
карма: 22 |
|
Ответов: 5227
Рейтинг: 587
|
|||
nesco писал(а): А зачем |
|||
карма: 4 |
|
Ответов: 1291
Рейтинг: 47
|
|||
Может у кого-то получится довести до ума этот мод.. Нужно чтобы отображались разные значения по таймеру. Пытался и так и сяк - не вышло. Видно эта переменная Text общая для всех. Копать надо где-то тут:
SelectObject(Handle, GFont.Handle); SetTextColor(Handle, GFont.Color); SetBkMode(Handle, TRANSPARENT); if Text2<>' then Text :=Text2; //Added by Aziz 29.8.11 Windows.DrawText(Handle, PChar(Text), Length(Text), r, 0); Я так понял SelectObject(Handle, GFont.Handle); выбирает этот самый бокс куда надо вывести текст. Но видимо у всех текстов одинаковый GFont.Handle а как его изменить не знаю.. В архиве тестовая схема и вторая версия мода. Первая не позволяла читать из поля Text даже при неподключенной внешней точке doText. Спасибо за помощь.. |
|||
карма: 3 |
| ||
файлы: 1 | plotmarker_mod2.rar [3.5KB] [1323] |
Ответов: 5446
Рейтинг: 323
|
|||
Aziz, SelectObject выбирает не бокс, а шрифт. Следующая строка выбирает цвет текста.
|
|||
карма: 1 |
|
Ответов: 1291
Рейтинг: 47
|
|||
Я думал об этом, но тогда не понял, откуда же Windows.DrawText(Handle, PChar(Text), Length(Text), r, 0); берет нужный Handle ? Вот собственно именно эта строка и ответственна за вывод текста в конкретное место. А как узнать какой хендл у конкретного бокса? Пока темный лес..)
|
|||
карма: 3 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Aziz, этот Handle есть свойство текущего класса.
|
|||
карма: 1 |
|
Ответов: 1291
Рейтинг: 47
|
|||
Спасибо, iarspider.. Мда.. Скорее всего не получится ничего улучшить - надо быть автором чтобы понять что там к чему.. Проще свой с нуля.. Ну или методом тыка.)) Почему же тогда текст рассылается всем классам боксов если уже выбран хендл текущего?
|
|||
карма: 3 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Aziz, полностью изменённый код выложи (pas+ini), тогда можно будет судить. А так у тебя процентов 80 кода осталось "за кадром".
|
|||
карма: 1 |
|
Ответов: 1291
Рейтинг: 47
|
|||
iarspider, так я уже выложил, 2 постами выше.. http://forum.hiasm.com//getfile/25054
Больше нигде не менял. Там компонент с иконкой и схема в архиве. |
|||
карма: 3 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Aziz, всё ясно - справку по созданию компонентов не читал.
Наводящий вопрос: Откуда возьмутся данные для переменной Text2? |
|||
карма: 1 |
|
Ответов: 1291
Рейтинг: 47
|
|||
Из потока со вх. точки doText. А точка скрытая (@) ее в свойствах Text включать надо.)) Это уже отлажено, проверял с помощью ShowMessage (Text2) - все робит. Да и в примере видно что информация туда поступает. И объявил ее глобально - для всех функций. Что еще там нужно? Знаю: бАльшой МОСК...
|
|||
карма: 3 |
|
Ответов: 1291
Рейтинг: 47
|
|||
Мод FileStream - добавлена точка OnError и свойство ShowErrors - для возможности отключать внутренние сообщения об ошибках, типа "файл не найден". Не хочу озадачивать пользователей программы техническими деталями, лучше иметь возможность обработать ошибку бесшумно
|
|||
карма: 3 |
| ||
файлы: 1 | hifilestream_mod1.rar [2.8KB] [695] | ||
Голосовали: | Konst |