169 похожих чатов

/////////////////////////////////////// TChart / TLineSeries - сохранение данных (текстовый файл) /////////////////////////////////////// добрый день /

работа с графиком:

1. строим график
2. смотрим/зумируем/панируем - если "не подходит" -> goto 1
3. если "подходит" -> сохраняем. грузим след.график -> goto 1

программа получает поток "[x,y]" - на основе чего строится график.
сохранять нужно в текстовый файл именно этот самый "набора точек" видимой части (зум & пано)

как это сделать?! есть 2 пути:

### 1й вариант (решение в лоб)
- строим график (тут-же сохраняем данные в файл)

минусы:
- небольшой оверхед по сохранению (фигня)
- игнорируется зум/пано -> получаем "полный график" (не фигня)

### 2й вариант
- строим график, если "подходит" - сохраняем

задача:
- данные нужно как-то вытянуть из компонентов
- нужны данные только видимой части

вопрос:
- возможно-ли реализовать 2й вариант?

ваши идеи/ссылки, пендили, помидоры :о)

спасибо

lazarus-3.2.0, fpc-3.2.2
slackware 14.2/15.0 x64

p.s.
как выдрать "поток данных" из компоненты - вроде разобрался.
теперь бы понять как определить "находится ли данная точка в окне просмотра или лежит вне?!

function IsPointInViewPort(const AP: TDoublePoint): Boolean;

14 ответов

48 просмотров

Посмотри на масштаб и границы шкал и выбери точки из диапазона

livontiy- Автор вопроса
Кокошник наголо
Посмотри на масштаб и границы шкал и выбери точки ...

да я вроде уже нашел нужную пункциЮ, нет?! > IsPointInViewPort() разбираюсь с обьектами/наследием

livontiy
да я вроде уже нашел нужную пункциЮ, нет?! > IsPoi...

В чарте много бреда, хотя можно сделать то, что нужно, но совсем не тем, чем нужно 😊

livontiy- Автор вопроса
Кокошник наголо
В чарте много бреда, хотя можно сделать то, что ну...

бла-бла-бла... я так тоже умею :о) по данной функции - что скажете, то или нет?! я и сам знаю какой там редкостный цирк... :о) другое дело, зачем изобретать то, что уже реализовано?!

livontiy
бла-бла-бла... я так тоже умею :о) по данной функц...

я не знаю досконально всех функций, если она работает, то на здоровье, если она начнет выкидывать фортеля, то можно взять значения из диапазона шкал, это важно, если шкал несколько вдоль одной оси

livontiy- Автор вопроса
Кокошник наголо
я не знаю досконально всех функций, если она работ...

абосольютно согласен! диаппазон будет в данном случае наиболее оптимален. но пока вот разбираюсь в строении/ооп итд всего этого ... (мозги закипают... быстро не получается, решил поинтересоваться, может кто уже решал что-то подобное) > шкал несколько мне пока с одной надо разобраться

livontiy
абосольютно согласен! диаппазон будет в данном слу...

несколько шкал, разные типы серий, зум\пан

livontiy- Автор вопроса
Кокошник наголо
screenshot несколько шкал, разные типы серий, зум\пан

function TChartSeries.ListSource: TListChartSource; begin // // Source : TCustomChartSource // TCustomChartSource -> TListChartSource // Result := TListChartSource(Source); end; а это вообще нормально - преобразовывать тип в более верхний, по отношению к текущему ?! я понимаю "понизить" до общего "родительского" ... но наоборот... (или я туплю?!)

livontiy
function TChartSeries.ListSource: TListChartSource...

Это нормально, если есть уверенность, что настоящий тип действительно такой

livontiy
function TChartSeries.ListSource: TListChartSource...

по большому счету все серии задаются addXY (за исключением парочки), то есть все сводится к двум координатам. Вся эта битва с типами - пустая.

livontiy- Автор вопроса
Boris Usievich
Это нормально, если есть уверенность, что настоящи...

да откудава он такой?! исходный/поле property Source : TCustomChartSource read GetSource write SetSource stored IsSourceStored; а преобразуется к TListChartSource

livontiy
да откудава он такой?! исходный/поле property Sou...

смотреть надо там, где Create делали, чтобы запихнуть в этот Source.

livontiy- Автор вопроса
Кокошник наголо
по большому счету все серии задаются addXY (за иск...

> Вся эта битва с типами - пустая ни чего не понял...

livontiy- Автор вопроса
Boris Usievich
смотреть надо там, где Create делали, чтобы запихн...

вот более полный выкус (если я не ошибаюсь) ``` TChartSeries = class(TCustomChartSeries) strict private FBuiltinSource : TCustomChartSource; FSource : TCustomChartSource; function GetSource : TCustomChartSource; procedure SetSource (AValue: TCustomChartSource); public property Source : TCustomChartSource read GetSource write SetSource stored IsSourceStored; function TChartSeries.GetSource: TCustomChartSource; begin if Assigned(FSource) then Result := FSource else Result := FBuiltinSource; end; function TChartSeries.AddXY(AX, AY: Double; AXLabel: String; AColor: TColor): Integer; begin // ListSource -> вызов функции, БЛЯТЬ, Result := ListSource.Add(AX, AY, AXLabel, AColor); // TChartSeries.ListSource() return TListChartSource end; function TChartSeries.ListSource: TListChartSource; begin // // Source : TCustomChartSource // TCustomChartSource -> TListChartSource // Result := TListChartSource(Source); end; ````

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта