На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Обязательно выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.

Этот раздел предназначен для вопросов, посвященных разработке компонентов, а также для тестирования собственных бесплатных компонентов с открытым исходным кодом.

Здесь запрещается:
1. Размещать ссылки на какие-либо коммерческие компоненты, реализующие требуемую функциональность.
2. Обсуждать и тестировать коммерческие компоненты или компоненты с закрытым кодом.
3. Давать ссылки на сайты с исходным кодом компонентов. Все тестируемые исходные коды должы быть размещены на сайте ИСХОДНИКИ.RU.
Модераторы: Rouse_, DimaBr
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Компонент для построения линейных графиков , Простой (в использовании) компонент
    Конечно, в Delphi есть достаточно мощный компонент TChart для построения любых графиков.
    Но бывает необходимо что-то более простое без претензий и особых наворотов.

    Предлагается вашему вниманию компонент для Delphi, который рисует линейные графики.

    Возможности.

    - Кривых на графике может быть более одной (кривые выводятся только в run-time заполнением массивов значений точек).
    - Автомасштабирование.
    При добавлении точек в кривую и выходе их значений за установленные максимум или минимум по обеим осям происходит пересчет максимальных и/или минимальных значений.
    - Ручное масштабирование графика мышкой или с клавиатуры (после формирования всех кривых).
    - Панорамирование графика при масштабе > 100% - сдвиг по всем четырем направлениям также мышкой или с клавиатуры.
    - "Датализация" - два режима отображения кривых.
    - Отображение значений точек в виде хинта при нахождении курсора мыши около точки.
    - Наличие "навигатора" - отдельное полупрозрачное окнце, отображающее весь график и которое можно таскать мышкой по экрану. Есть возможность показывать или скрывать это окно.
    - Могут изменяться: толщина кривых, цвет компонента, цвет кривых, цвет осей, цвет и видимость сетки графика.

    При перерисовке (а это может происходить очень часто, например, при панорамировании, добавлении точек) график не дергается.

    Исходные тексты и пример использования компонента прилагается.
    Сообщение отредактировано: sansans -

    Прикреплённый файлПрикреплённый файлgraph_w_e.zip (56.5 Кбайт, скачиваний: 2586)
      Цитата sansans @
      Предлагается вашему вниманию компонент для Delphi

      Читая такое в первую очередь хочется увидеть что это такое, а потом уже если понравится как-то с этим связываться.
      Ты бы скриншоты приложил...
        Не понял как на этом форуме прикреплять более одного файла, поэтому только один скришот даю.
        А еще снимки можно посмотреть здесь: http://san-46.narod.ru/GraphLinear.htm
        Сообщение отредактировано: sansans -

        Прикреплённый файлПрикреплённый файлclip01.gif (12.96 Кбайт, скачиваний: 3288)
          >[Error] Unit1.pas(39): Undeclared identifier: 'TFormatSettings'
            Какая версия Delphi? Пример и компонент компилировался в D7. Там все в порядке. TFormatSettings объявлен в SysUtils.
              Delphi 6

              Добавлено
              Единственное место где нашёл версию Delphi - это на главной странице сайта внизу
                Ну, чем я помогу? Насколько помню в D6 тоже есть TFormatSettings. Можно и выбросить из Unit1 эту структуру. Тогда придется менять функцию StrToFloatDef (тоже реализована в SysUtils), с помощью которой происходит преобразование чисел, читаемых из текстового файла.
                Или не применять тот текстовый файл (ht_02.htl). Он всего лишь для примера большого количества точек графика.

                "Единственное место где нашёл версию Delphi - это на главной странице сайта внизу". Так все же есть? :)

                Пример есть пример. Можно сделать свой проект и разместить на его форме компонент. Он же не сложный в использовании.
                Сообщение отредактировано: sansans -
                  Не корекнтное отобажение первого графика в начале, где маленькие значения.
                  Маштаб не соответствует отображаемым данным
                    А конкретно, в чем не корректность?
                    И, опять же, как определено, что "масштаб не соответствует..."?
                    А то хотелось бы исправить, только непонятно что.
                      Не удаётся посмотреть на начальные значения, поскольку иасштаб очень большой а значения очень маленькие. Приходится многократно увеличивать изображение, при этом оно увеличивается и по вертикили и по горизонтали и в итоге, когда всё же изображение достигло более-менее читабельного размера (M=9000) ширина при этом огромная.
                        Особенность данных, которые отображаются на графике.
                        Для таких случаях, видимо, надо иметь возможность изменять масштаб отдельно по горизонтальной и вертикальной осям.
                        Но это уже в другой жизни. Для моих приложений компонент и с его теперешними возможностями достаточен.
                          Форма с вашим компонентом - 422 кб
                          Форма с TChart - 600 кб

                          Лично я выбираю TChart, поскольку возможности просто огромные, а размер не на много больше. Думаю что изобретение велосипеда никому не нужно.
                            Каждый имеет право на собственное мнение. Спасибо за конструктивную критику.
                            Но, ИМХО, не в размере дело, а в простоте. Кому то может и пригодится именно в таком воплощении.
                            Как было отмечено, для моих проектов компонент был нужен именно в этой реализации.
                            Сообщение отредактировано: sansans -
                              Цитата sansans @

                              - Кривых на графике может быть более одной (кривые выводятся только в run-time заполнением массивов значений точек).
                              - Автомасштабирование.

                              Как оно ведет себя, когда точек несколько тысяч?
                              TChart тормозит жутко, приходится делать его невидимым, вводить точки, делать видимым.
                                В текстовом файле примера, из которого извлекаются точки, этих точек 1433.
                                Увеличил я их количество в четыре раза, получилось более 5700 точек.
                                И что в первом, что во втором, никакой разницы в скорости вывода не заметил.
                                Наверное, скорость еще от железа зависит.
                                Алгоритм выборки точек в конкретных задачах тоже ведь может быть медленным, он и будет узким местом при отображении кривых во время выполнения. А сам компонент выводит точки максимально быстро.
                                Сообщение отредактировано: sansans -

                                Прикреплённый файлПрикреплённый файлclip02.gif (17.15 Кбайт, скачиваний: 2987)
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0349 ]   [ 19 queries used ]   [ Generated: 19.03.24, 06:12 GMT ]