[Lazarus] TAChart marks on mouseoverpoint

Alexander Klenin klenin at gmail.com
Fri Sep 25 03:19:57 CEST 2009


2009/9/24 Andrea Mauri <andrea.mauri.75 at gmail.com>:
>> Still, if you have inclination to work on a patch, I would suggest to change
>> TLineSeries.ShowLines property from boolean to enumeration
>> (slNone, slFromPrevious, slFromOrigin).
> I created a patch (attached) introducing the property TLineType TLineType =
> (ltFromPrevious, ltFromOrigin);

Yes, your patch is generally a step in the right direction.
I committed it as r21852 with a few improvements:
1) Added explicit default value for LineType property --
  this is required by current Lazarus policy
2) Removed code duplication in Draw procedure --
  duplicated code is always undesirable.

> I left unchanged the ShowLines property also for retro compatibility.

Indeed, backward compatibility is important.
But I also feel that it is important to avoid excessive complexity.
To this end, I tried the implementation which should hide ShowLines
property from object inspector, but still read it from old .lfm files.
Please test that loading old form with ShowLines = True and False
results in LineType set to ltFromPrevious and ltNone correspondingly.

> I think that could be useful set the Origin in some way (a Origin
> property?), by default Origin should be 0, 0 but could be changed by the
> user. Do you think it is a good idea?

No, I do think this is too much. If the user arises who really needs
such a property,
then it can be considered, but even your use case is IMO very rare.

> Another thing is that if the Chart points have for example XMax= 2 Xmin= 1
> YMax =2 and YMin = 1 the Origin is not visible. How can I overcome this
> problem? Actually I do it using XMax, Xmin etc of the Extent property of
>  the TAChart, do you think that is it the best way?

Of course, this is exactly what they are designed for.

-- 
Alexander S. Klenin




More information about the Lazarus mailing list