Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TChart und Marks aus Gallerie (https://www.delphipraxis.net/189149-tchart-und-marks-aus-gallerie.html)

Sidi61 9. Mai 2016 15:02

TChart und Marks aus Gallerie
 
Hallo zusammen,

suche mir schon einen Wolf ab um die Balkenbeschriftungen bei zur Laufzeit erzeugten Series anders als Default darzustellen.

Im Chart-Editor kann man in einer Gallerie verschiedene Styles aussuchen, dies ist mir leider zur Laufzeit noch nicht gelungen.

Ich verwende die kostenlose lite Version von TChart, im Editor findet man die Styles Default, Business, Cream, Ocean, Dark, Hot und Wine - gibt es eine Möglichkeit eine Zuweisung zur Laufzeit zu machen??

Liebe Grüße
Sidi61

Der schöne Günther 9. Mai 2016 15:45

AW: TChart und Marks aus Gallerie
 
Ich gehe mal davon aus dass du VCL und nicht FMX meinst, oder?

Ein Tipp: Wenn du nicht weißt wo du ansetzen musst, schau doch mal in die DFM-Datei (auf der Formular-Ansicht [Alt]+[F12] drücken). Stellt man die Marks z.B. auf das Template "Hot" um erhält man in der DFM:
Delphi-Quellcode:
    object Series1: TBarSeries
      Marks.Brush.Gradient.Colors = <
        item
          Color = clRed
        end
        item
          Color = 819443
          Offset = 0.067915690866510540
        end
        item
          Color = clYellow
          Offset = 1.000000000000000000
        end>
      Marks.Brush.Gradient.Direction = gdTopBottom
      Marks.Brush.Gradient.EndColor = clYellow
      Marks.Brush.Gradient.MidColor = 819443
      Marks.Brush.Gradient.StartColor = clRed
      Marks.Brush.Gradient.Visible = True
      Marks.Font.Color = 159
      Marks.Font.Name = 'Tahoma'
      Marks.Font.Style = [fsBold, fsItalic]
      Marks.Frame.Color = 33023
      Marks.RoundSize = 14
      XValues.Name = 'X'
      XValues.Order = loAscending
      YValues.Name = 'Bar'
      YValues.Order = loNone
    end

Zur Laufzeit also bspw. so:
Delphi-Quellcode:
procedure TForm7.Button1Click(Sender: TObject);
var
  gradientColors: TTeeGradientColors;
begin
  Series1.Marks.Font.Color := TColors.White;

  gradientColors := Series1.Marks.Gradient.Colors;
  gradientColors.BeginUpdate();
  try
    gradientColors.Clear();
    gradientColors.Add(0.0, TColors.Blue);
    gradientColors.Add(1.0, TColors.Red);
  finally
    gradientColors.EndUpdate();
  end;
end;

Sidi61 9. Mai 2016 22:36

AW: TChart und Marks aus Gallerie
 
Hallo,

dein Vorschlag ließ sich leider nicht umsetzen - sorry -

Gruß

Der schöne Günther 10. Mai 2016 06:16

AW: TChart und Marks aus Gallerie
 
Kannst du auch ... etwas genauer werden? :|

baumina 10. Mai 2016 09:48

AW: TChart und Marks aus Gallerie
 
Zitat:

Zitat von Sidi61 (Beitrag 1337845)
Hallo,

dein Vorschlag ließ sich leider nicht umsetzen - sorry -

Gruß

Solche Antworten gehören echt prämiert :thumb:

Sidi61 10. Mai 2016 10:33

AW: TChart und Marks aus Gallerie
 
hallo zusammen,

war da wohl ein wenig schnell :wink: bin gerade am experimentieren wie TChart angesteuert werden kann, bei der Übernahme des Codes von Günther wurde angezeigt das er TTeeGradientColors nicht kennt und ich wusste mal eben nicht was ich hier in die uses aufnehmen muss.

Meine Fortschritte sind für den geplanten Zweck schon fast ausreichend, es fehlt mir lediglich noch die Gestaltung der Balkenbeschriftung, das habe ich immer noch nicht hinbekommen und wie gesagt bei dem Beispiel von Günther fehlt mir noch der Hinweis was ich in die uses aufnehmen muss.

Hier mal ein Beispiel wie ich TChart bis jetzt befülle:

Delphi-Quellcode:

procedure TFormKunden.Button1Click(Sender: TObject);
var i : integer;
    BS1, BS2 : TBarSeries;
begin

  chart1.ClearChart;
  BS1 := TBarSeries.Create(self);
  BS1.ParentChart := Chart1;
  BS1.Active := false;
  BS1.SeriesColor := clBlue;
  BS1.Title := 'Umsatz';
  //BS1.Marks.Style := smsValue;
  BS1.Marks.Callout.ArrowHead := ahsolid; //zeichnet einen Pfeil von der Beschriftung zum Balken
  Chart1.AddSeries(BS1);

  BS2 := TBarSeries.Create(self);
  BS2.ParentChart := Chart1;
  BS2.Active := false;
  BS2.SeriesColor := clRed;
  BS2.Title := 'Vorgänge';
  Chart1.AddSeries(BS2);

  Chart1.Series[0].AddXY(1,20,'',clTeeColor);
  Chart1.Series[0].AddXY(2,25,'',clTeeColor);
  Chart1.Series[0].AddXY(3,15,'',clTeeColor);
  Chart1.Series[0].AddXY(4,30,'',clTeeColor);
  Chart1.Series[0].AddXY(5,25,'',clTeeColor);
  Chart1.Series[0].AddXY(6,20,'',clTeeColor);
  Chart1.Series[0].AddXY(7,25,'',clTeeColor);
  Chart1.Series[0].AddXY(8,22,'',clTeeColor);
  Chart1.Series[0].AddXY(9,28,'',clTeeColor);
  Chart1.Series[0].AddXY(10,21,'',clTeeColor);
  Chart1.Series[0].AddXY(11,18,'',clTeeColor);
  Chart1.Series[0].AddXY(12,15,'',clTeeColor);

  Chart1.Series[1].AddXY(1,3,'',clTeeColor);
  Chart1.Series[1].AddXY(2,5,'',clTeeColor);
  Chart1.Series[1].AddXY(3,8,'',clTeeColor);
  Chart1.Series[1].AddXY(4,7,'',clTeeColor);
  Chart1.Series[1].AddXY(5,2,'',clTeeColor);
  Chart1.Series[1].AddXY(6,6,'',clTeeColor);
  Chart1.Series[1].AddXY(7,5,'',clTeeColor);
  Chart1.Series[1].AddXY(8,7,'',clTeeColor);
  Chart1.Series[1].AddXY(9,6,'',clTeeColor);
  Chart1.Series[1].AddXY(10,10,'',clTeeColor);
  Chart1.Series[1].AddXY(11,9,'',clTeeColor);
  Chart1.Series[1].AddXY(12,11,'',clTeeColor);

  chart1.Legend.Alignment := laBottom;

  BS1.Active := true;
  BS2.Active := true;
end;
Wäre schön wenn ich das Problem noch gelöst bekommen würde

Gruße
Sidi61

Der schöne Günther 10. Mai 2016 10:39

AW: TChart und Marks aus Gallerie
 
Zitat:

Zitat von Sidi61 (Beitrag 1337872)
bei dem Beispiel von Günther fehlt mir noch der Hinweis was ich in die uses aufnehmen muss.

Delphi-Quellcode:
implementation uses System.UITypes, VclTee.TeCanvas;

Sidi61 10. Mai 2016 10:57

AW: TChart und Marks aus Gallerie
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Günther,

habe dein Beispiel nun nochmal ausprobiert, die Markierungen blieben vom Style her gleich, nur jetzt fehlen die Beschriftungen - im Anhang ein Screenshot

Gruß
Sidi61

Der schöne Günther 10. Mai 2016 11:46

AW: TChart und Marks aus Gallerie
 
Liste der Anhänge anzeigen (Anzahl: 1)
Du hast Recht, es ist ein Stolperstein: Es hat null Auswirkungen am Gradienten herumzuspielen, wenn der Gradient nicht
Delphi-Quellcode:
Visible
ist. Das war er in meinem Test da ich es zum Spaß auf "Hot" gestellt hatte. Du anscheinend nicht. Deshalb musst du vorher noch
Delphi-Quellcode:
Series1.Marks.Gradient.Visible := True
setzen.

Das sieht dann so aus wie im Anhang.

Sidi61 10. Mai 2016 13:16

AW: TChart und Marks aus Gallerie
 
Hallo Günther,

jetzt hat es tatsächlich funktioniert, das Design der Balkenbeschriftung sieht tatsächlich aus wie in der Gallerie unter Hot auswählbar.

Allerdings muss ich zugeben dass ich ausgehend vom Code in der DFM Datei niemals auf den ausführbaren Code im Beispiel gekommen wäre.

Werde das mal mit den anderen Vorlagen versuchen, hab da jedoch wenig Hoffnung :roll:

Auf jeden Fall besten Dank für deine Unterstützung

Gruß
Sidi61


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:50 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz