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 ответов

54 просмотра

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

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; ````

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта