Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Selbst wenn Sie sie virtuell machen, werden Sie nicht in der Lage sein, normale Überladung ohne vollen Zugriff auf CGraphics Klassenmitglieder zu tun, so sollten sie alle (die meisten) als geschützt deklariert werden.
und diese Funktionen ***Plot sind nur geschützt
und diese ***Plot-Funktionen sind ebenso geschützt
{
private:
CArrayObj m_arr_curves;
CCanvas m_canvas;
//--- parameters background
int m_height;
int m_width;
//--- parameters work space
int m_left;
int m_right;
int m_up;
int m_down;
//--- default parameters work space
int m_left0;
int m_right0;
int m_up0;
int m_down0;
//--- size of dash on the axes
int m_mark_size;
//--- scaling parameters
double m_dx;
double m_dy;
Ich sprach über CGraphic Klassenmitglieder, jetzt sind sie alle privat, und ohne Zugriff auf m_canvas, m_dx, m_dy und andere Mitglieder in der Nachkommenschaft, Überladung wird nicht funktionieren.
OK, dann liegt alles in Ihrer Hand) Ich werde warten.
Bislang habe ich sie vorübergehend lokal geändert
In einigen Funktionen (nicht überall) erfolgt eine Division ohne 0-Prüfung.
z.B..
{
...
...
double x_size=(m_x.Max()-m_x.Min());
double xf_size=xf2-xf1;
//--- keep scaling parameters
m_dx=xf_size/x_size;
hier tritt zero_devide auf, wenn x.Max() == Min()
auch in Axis::CalcStepSize / CalcBoundedStepSize / SelectAxisScale usw.
In einigen Funktionen (nicht überall) erfolgt eine Division ohne 0-Prüfung.
zum Beispiel
{
...
...
double x_size=(m_x.Max()-m_x.Min());
double xf_size=xf2-xf1;
//--- keep scaling parameters
m_dx=xf_size/x_size;
zero_devide tritt auf, wenn x.Max() == Min()
auch in Axis::CalcStepSize / CalcBoundedStepSize / SelectAxisScale usw.
Danke, ich werde es korrigieren.
Um die Bibliothek nicht mit zahlreichen Prüfungen zu überlasten, habe ich versucht, alle Fälle in der Methode Axis::SelectAxisScal zu berücksichtigen.
1. dies scheint die Datei ohne die Änderungen von heute Morgen am enum ENUM_AXIS_TYPE zu sein
---
2. getestet ENUM_AXIS_TYPE von der vorherigen Seite
da Sie ValuesFunctionFormat in Callback-Funktion Stil tun, müssen Sie einige void * Parameter in der Funktion zurückgeben.
in CAxis zum Hinzufügen
void* m_cbdata; // <---
...
// изменить
void ValuesFunctionFormat(DoubleToStringFunction func, void* cbdata) { m_values_func=func; m_cbdata=cbdata; }
// добавить получение этого void*
void* ValuesFunctionFormatCBData(void) const { return m_c bdata; }
in CGraphic::CalculateXAxis
void* cbdata=m_x.ValuesFunctionFormatCBData(); // <---
...
case AXIS_TYPE_CUSTOM:
{
m_xvalues[i]=(xfunc==NULL) ? NULL : xfunc(x, cbdata); // <---
----
Dieser Callback-Parameter wird benötigt, um einen Zeiger auf ein Objekt zu übergeben , das weiß, wo sich das Array arrX befindet.
Da die Funktion im Wesentlichen statisch ist, ist es unmöglich zu wissen, was genau sie aufgerufen hat.
ZS.
Und so sieht das Ergebnis der Zeitreihendarstellung bereits aus (ich werde später mehr über Linien mit Messwerten fragen, es gibt eine Unannehmlichkeit, dort Koordinaten zu bekommen :)
Und so sieht das Ergebnis der Zeitreihe im Prinzip schon aus (zu den Linien mit den Messwerten frage ich später mehr, da gibt es die Umständlichkeit, dort Koordinaten zu bekommen :)
Bitte machen Sie ein Video oder eine längere Animation von dem Moment der leeren Karte. Ich verstehe das GIF nicht.
ist das besser?
dieser Experte arbeitet auf Roms Canvas + CGraphic
In diesem Fall baue ich eine P/L aus mehreren Tools aufdieser Experte arbeitet an Romans Canvas + CGraphic
In diesem Fall baue ich P/L aus mehreren Instrumenten aufJetzt wird es klarer. Ist das Fadenkreuz (und möglicherweise andere Interaktivität) eine eingebaute (notwendige) Funktion von Romans Bibliothek, oder haben Sie es geerbt?
Ich möchte Elemente der Interaktivität in SB-Grafiken sehen - Fadenkreuz, Zoom (in beide Richtungen) und Hervorhebung von Cursorwerten.
D.h. ich mache GraphPlot über EA/indicator, und ich bekomme diese Funktionalität sofort.
Um es noch deutlicher zu machen. Ist das Fadenkreuz (und möglicherweise andere Interaktivität) eine eingebaute (notwendige) Funktion von Romans Bibel, oder haben Sie die Vererbung hinzugefügt?
Ja, ich habe es geerbt.
Ich möchte einige Elemente der Interaktivität in SB-Grafiken sehen - Fadenkreuz, Zoom (in beide Richtungen) und Hervorhebung von Cursorwerten.
Wir werden uns mit dem Hauptverantwortlichen unterhalten. Ich brauche auch etwas.
- Hintergrundbeleuchtung (wenn nicht sie, dann zumindest die Funktion GetNearY/X) wird benötigt. Die Hervorhebung ist ohnehin besser durch Vererbung zu realisieren. Es ist in jeder unserer Darstellungen anders )
- brauchen das Fadenkreuz selbst noch nicht, denn es ist das Ergebnis von Diagrammereignissen, die noch nichts mit der Bibliothek zu tun haben.
- Die Ermittlung der Skalenwerte - die durch die Pixelkoordinate bestimmt werden - ist ein Muss.
- Mit zoomo ist es schwierig. Da es keine Bildlaufleisten gibt. Und um ehrlich zu sein, würde ich nicht wollen, dass sie in dieser Klasse eingeführt werden. Im Moment verwendet es nur CCanvas und fragt nicht nach anderen Objekten. Und das ist sehr gut.
Ich habe vor, den Zoom unabhängig durch Vererbung zu implementieren, Scrollbalken einzufügen und ihn richtig zu skalieren.