AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TChart Achsenkreuz hervorheben;

Ein Thema von Linkat · begonnen am 20. Dez 2010 · letzter Beitrag vom 30. Dez 2010
 
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
427 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: TChart Achsenkreuz hervorheben;

  Alt 28. Dez 2010, 15:22
@Linkat:

Probier's mal damit:

Delphi-Quellcode:
procedure TForm1.Chart1Resize(Sender: TObject);
var
  nMinSize: integer;
begin
  // Chart neu positionieren, dabei Verhältnis fix lassen!
  nMinSize := Min(Chart1.Height, chart1.Width);
  Chart1.ChartRect := Rect( 50, 50, nMinSize - 50 , nMinSize- 50 );

  // Legende per Hand positionieren
  Chart1.Legend.Left := chart1.ChartWidth + 75;
  Chart1.Legend.Top := chart1.ChartRect.Top;
  Chart1.Legend.Height := chart1.ChartHeight;

  // Titel neu positionieren
  Chart1.Title.Left := nMinSize div 2;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  // Daten setzen
  Series1.Clear;
  for i := 1 to 100 do
    Series1.AddXY(Random(1200) - 600, Random(1200) - 600);

  
  // hier geht ich nun davon aus, daß die beiden Achen fixierte Wertebereiche von -600 bis 600 haben!


  // Eigene Chartpositionierung
  Chart1.CustomChartRect := True; // damit wird das automatische anpassen unterbunden!
  Chart1.ChartRect := Rect( 50, 50, 300, 300 );

  // Titel per Hand positioneren
  Chart1.Title.Caption := 'Streubesitz';
  Chart1.Title.Top := 20;

  // Achsen zentrieren im Ursprung (Min/Max Werte von -600 bis 600)
  Chart1.LeftAxis.PositionUnits := muPercent;
  Chart1.LeftAxis.PositionPercent := 50;

  Chart1.BottomAxis.PositionUnits := muPercent;
  Chart1.BottomAxis.PositionPercent := 50;

  // Legende
  Chart1.Legend.Left := chart1.ChartWidth + 75;
  Chart1.Legend.Top := chart1.ChartRect.Top;
  Chart1.Legend.Height := chart1.ChartHeight;
end;
Jede Größenänderung des Formulars paßt nun den Chart so an, daß das Größenverhältnis gewahrt bleibt (vor dem ersten Resize ist Legende noch falsch positioniert, hab das nur grad nicht korrigiert --> selbst schauen). Zudem sind die Achsen im Koordinatenursprung angesiedelt (können wie schon beschreiben in der Strichstärke angepaßt werden)

Grüße,
Uli
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz