In the case of the TeeChart, I've asked Steema about the license issue and that seems to be a quite straight forward solution but I won't know if there's needed some source coude update or how much that needs to be change to support the other version.
Does TeeChart support Lazarus at all? They don't mention LCL support on the website, only VCL/FMX. I do remember that I could test their Lazarus conversion several years ago; runtime code was roughly working but there were issues with the component and property editors at designtime. I don't know what became out of this activity and if they could fix these issues...
Is the TACharting solution much different from TeeChart? I know it's hard to answer without any specific use case, but just if they're releated in any way or uses some standardised API that can be quite ok to switch between.
The basic idea is the same: you have a TChart component, add one or more TChartSeries (or other types) to it, and add data value by calling the series' AddXY method (or similar). However, some properties are named differently or do not exist in TAChart, and sometimes additional components are needed to achieve a given goal. If you consider using the Lazarus automatic Delphi-conversion utility you must be aware that it will probably fail even with the simplest chart form. I'd recommend that you delete the chart from the form to be converted so that the form loads into Lazarus; then add the TChart component from TAChart and build it up anew from the start. I'd also recommend that you write some simple charting programs before beginning the conversion so that you get familiar with TAChart; there are a lot of tutorials to get started.
To demonstrate some differences I wrote a simple BarChart by means of the TeeChart version coming with Delphi7 and converted this project to Lazarus - see attachment. Here is a list of the changes that I had to apply manually:
- Remove these Chart properties from the lfm file: Chart.View3D, Chart.Backwall, Series.XValues Series.YValues, Series.Marks.Arrow.Length (plus probably some more...) - with these the form will not be loaded by Lazarus.
- Set Chart.BackColor to the value of TeeChart's Chart.BackWall.Color
- Set Chart.Title.Visible=true, Chart.Legend.Visible=true, Chart.LeftAxis.Caption.Visible=true, Chart.BottomAxis.Caption.Visible=true (they are false in TAChart, but true in TeeChart)
- Set Chart.Title.Font.Color=clBue (it is clDefault in TAChart (=clWindowText), but clBlue in TeeChart (which looks awful in DarkMode!))
- Enter the Series1.Title and Series2.Title (they are empty in TAChart, but equal to the series name in TeeChart)
- Set the series' Marks.Distance to the value of TeeChart's Marks.Arrow.Length
- Set the series' Marks.Style to smsValue (it defaults to smsNone in TAChart)
- Set the series' Marks.LinkPen.Color to the value of TeeChart's Marks.Arrow.Color (but Delphi7 has a bug here, and draws it only white or black)
- Set the Chart.Margin.Bottom to 0 (default: 4), increase the Chart.Margin.Left and .Right.
- Recalculate the bar series' BarwidthPercent and BarOffsetPercent (they are defined differently)
- There are differences in x axis labelling which require some tricks to resolve (not done in this demo).
- plus probably some more...
I have no needs that the Lazarus version of the software shall be compatible with Delphi in the future, just make the application to be runnable within the Lazarus environment.
That's good. Converting code from Delphi to Lazarus can be quite challenging, but keeping it compatible with both IDEs is the highest challenge of all...