XLabel bei Series vertikal ausrichten...



  • DynLineSeries[SeriesNr]->AddXY(X_Wert,Y_Wert,XLabel,ColorTab[ColorNr]);

    Wenn String XLablel lang ist, möchte ich ihn vertikal ausgeben. Wie geht es?...



  • schau dir mal das Ereignis OnGetMarkText der Series an



  • Linnea schrieb:

    schau dir mal das Ereignis OnGetMarkText der Series an

    Könntest du das näher erklären…
    Ich bedanke mich im Voraus.



  • Linnea schrieb:

    schau dir mal das Ereignis OnGetMarkText der Series an

    DynLineSeries[SeriesNr]->AddXY(X_Wert,Y_Wert,XLabel,ColorTab[ColorNr]);

    Mit der Beschreibung von ...->OnGetMarkText mit dem Pointer von einer
    Funktion bekam ich Zugriff auf String mit dem Inhalt von
    Y_Wert. Ich will aber XLabel beeinflussen.
    Der Text mit dem Inhalt von XLabel beschreibt einzelnen Punkten von X-Achse
    und ist normal (default) horizontal ausgerichtet. Manchmal fehlt es aber für längeren Strings der Platz…



  • das was du bei XLabel einträgst ist meines Wissens nach der Text im Mark, also den Markierungen

    hier mal ein Beispiel, allerdings ohne Rahmen...

    void __fastcall TForm1::Series1GetMarkText(TChartSeries *Sender,
          int ValueIndex, AnsiString &MarkText)
    {
    TChartSeries *Series = dynamic_cast<TChartSeries*>(Sender);
    
    int x,y;
    LOGFONT LogFont;
    ZeroMemory(&LogFont, sizeof(LOGFONT));
    
    x = Series->CalcXPos(ValueIndex);
    y = Series->CalcYPos(ValueIndex);
    
    LogFont.lfHeight = 20;
    LogFont.lfEscapement = 10 * 89.9; // Grad der Drehung
    LogFont.lfOrientation = 10 * 45;
    LogFont.lfCharSet = DEFAULT_CHARSET;
    
    Chart1->Canvas->Font->Handle = CreateFontIndirect(&LogFont);
    Chart1->Canvas->TextOut(x,y,MarkText);
    
    MarkText = "";
    }
    


  • Chart1->BottomAxis->LabelsAngle=90;

    !!!


Anmelden zum Antworten