Вверх ↑
Этот топик читают: Гость
Ответов: 849
Рейтинг: 34
#1: 2011-08-29 23:48:08 ЛС | профиль | цитата
Предлагаю здесь выкладывать свои моды стандартных компонентов, с необходимой аргументацией причины модификации. Если она покажется разработчикам убедительной, то (после тестирования) возможна замена ими стандартных и включения в пакет. Критика приветствуется.

Итак, могу предложить следующие модификации под пакет 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
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
файлы: 2grapher_mod1.rar [2.8KB] [184], plotmarker_mod1.rar [2.4KB] [159]
vip
#1.1контекстная реклама от партнеров
Ответов: 3787
Рейтинг: 620
#2: 2011-08-30 11:37:50 ЛС | профиль | цитата
Если модификации существенные, то такой компонент обычно выкладывается отдельно. Но раз уж на то пошло...

Модификация компонента WinExec
Добавлено свойство и точка Action, позволяющие указать действие, которое должно выполниться методом doShellExec. В штатном компоненте выполняется только "open", но иногда нужны другие действия (в зависимости от типа файлов).
Добавлена точка ExitCode, которая возвращает код завершения процесса при Mode=Wait
Добавлена точка ProcessID
Добавлено свойство и точка WorkingDir

Помещено на SVN
карма: 17

0
Ответов: 4274
Рейтинг: 465
#3: 2011-08-30 16:15:47 ЛС | профиль | цитата
DataToFile к свойству Type добавлена точка по имени свойства, хотя скорей всего нужно было по индексуhttp://zalil.ru/31624791
карма: 5

0
Разработчик
Ответов: 25261
Рейтинг: 2070
#4: 2011-08-30 16:22:15 ЛС | профиль | цитата
andrestudio писал(а):
DataToFile к свойству Type добавлена точка по имени свойства

А зачем
карма: 18

0
Ответов: 4274
Рейтинг: 465
#5: 2011-08-30 16:46:29 ЛС | профиль | цитата
nesco писал(а):
А зачем
вот именно, намного гибче он от этого не стал, структуированные данные читать им всё равно не удобно.
карма: 5

0
Ответов: 849
Рейтинг: 34
#6: 2011-08-31 18:52:36 ЛС | профиль | цитата
Может у кого-то получится довести до ума этот мод.. Нужно чтобы отображались разные значения по таймеру. Пытался и так и сяк - не вышло. Видно эта переменная 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.
Спасибо за помощь..
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
файлы: 1plotmarker_mod2.rar [3.5KB] [542]
Ответов: 5446
Рейтинг: 323
#7: 2011-08-31 19:04:56 ЛС | профиль | цитата
Aziz, SelectObject выбирает не бокс, а шрифт. Следующая строка выбирает цвет текста.
карма: 1

0
Ответов: 849
Рейтинг: 34
#8: 2011-08-31 19:22:43 ЛС | профиль | цитата
Я думал об этом, но тогда не понял, откуда же Windows.DrawText(Handle, PChar(Text), Length(Text), r, 0); берет нужный Handle ? Вот собственно именно эта строка и ответственна за вывод текста в конкретное место. А как узнать какой хендл у конкретного бокса? Пока темный лес..)
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 5446
Рейтинг: 323
#9: 2011-08-31 20:52:58 ЛС | профиль | цитата
Aziz, этот Handle есть свойство текущего класса.
карма: 1

0
Ответов: 849
Рейтинг: 34
#10: 2011-08-31 21:12:04 ЛС | профиль | цитата
Спасибо, iarspider.. Мда.. Скорее всего не получится ничего улучшить - надо быть автором чтобы понять что там к чему.. Проще свой с нуля.. Ну или методом тыка.)) Почему же тогда текст рассылается всем классам боксов если уже выбран хендл текущего?
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 5446
Рейтинг: 323
#11: 2011-09-01 00:42:47 ЛС | профиль | цитата
Aziz, полностью изменённый код выложи (pas+ini), тогда можно будет судить. А так у тебя процентов 80 кода осталось "за кадром".
карма: 1

0
Ответов: 849
Рейтинг: 34
#12: 2011-09-01 01:08:25 ЛС | профиль | цитата
iarspider, так я уже выложил, 2 постами выше.. http://forum.hiasm.com//getfile/25054
Больше нигде не менял. Там компонент с иконкой и схема в архиве.
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 5446
Рейтинг: 323
#13: 2011-09-01 01:35:06 ЛС | профиль | цитата
Aziz, всё ясно - справку по созданию компонентов не читал.
Наводящий вопрос: Откуда возьмутся данные для переменной Text2?
карма: 1

0
Ответов: 849
Рейтинг: 34
#14: 2011-09-01 01:37:33 ЛС | профиль | цитата
Из потока со вх. точки doText. А точка скрытая (@) ее в свойствах Text включать надо.)) Это уже отлажено, проверял с помощью ShowMessage (Text2) - все робит. Да и в примере видно что информация туда поступает. И объявил ее глобально - для всех функций. Что еще там нужно? Знаю: бАльшой МОСК...
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 849
Рейтинг: 34
#15: 2012-02-04 00:10:37 ЛС | профиль | цитата
Мод FileStream - добавлена точка OnError и свойство ShowErrors - для возможности отключать внутренние сообщения об ошибках, типа "файл не найден". Не хочу озадачивать пользователей программы техническими деталями, лучше иметь возможность обработать ошибку бесшумно
карма: 0
Время верстки: %cr_time% Текущее время: %time%
1
файлы: 1hifilestream_mod1.rar [2.8KB] [174]
Голосовали:Konst
Сообщение
...
Прикрепленные файлы
(файлы не залиты)