![]() |
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 |
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; |
AW: TChart und Marks aus Gallerie
Hallo,
dein Vorschlag ließ sich leider nicht umsetzen - sorry - Gruß |
AW: TChart und Marks aus Gallerie
Kannst du auch ... etwas genauer werden? :|
|
AW: TChart und Marks aus Gallerie
Zitat:
|
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:
Wäre schön wenn ich das Problem noch gelöst bekommen würdeprocedure 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; Gruße Sidi61 |
AW: TChart und Marks aus Gallerie
Zitat:
Delphi-Quellcode:
implementation uses System.UITypes, VclTee.TeCanvas;
|
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 |
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:
ist. Das war er in meinem Test da ich es zum Spaß auf "Hot" gestellt hatte. Du anscheinend nicht. Deshalb musst du vorher noch
Visible
Delphi-Quellcode:
setzen.
Series1.Marks.Gradient.Visible := True
Das sieht dann so aus wie im Anhang. |
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 |
AW: TChart und Marks aus Gallerie
Hallo Günther,
konnte jetzt alle Beispiele nachbauen, wenn man weiß worauf man schauen muss geht das schon. Nochmals besten Dank :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 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