JAM-Software / Virtual-TreeView

Virtual Treeview is a Delphi treeview control
http://www.jam-software.de/virtual-treeview/
649 stars 255 forks source link

Refactorings to simplify FireMonkey port #841

Open joachimmarder opened 6 years ago

joachimmarder commented 6 years ago

See pull request #839 for a detailed discussion. Proposed changes:

livius2 commented 6 years ago

All looks ok but

We should discuss to throw old and rarely used features overboard, like tiled background and own drawn alpha-blended selection

but this one should stay. I use it myself. I can migrate this to FMX but definitely later. The priority for drawing migration is drawing the header for me.

livius2 commented 6 years ago

I can change all to alias TDimension but two questions

  1. change also events?
  2. change also published properties? If not this is harder task - because some properties are in BaseTree as public but in descendant as published.

I see more problems here. Overrided procedures can not have TDimension replacement...

joachimmarder commented 6 years ago

Changing published properties should not be breaking, so yes. For the events we should consider waiting to the next major version of Virtual TreeView. It will work, but the IDE will show an (unnecessary) warning.

I wonder: Is Firemonkey making actual use of the decimal places that the Single type offers, or do you typically have whole number here too?

A V8.0 might be a good point to finally merge the branches and make such small breaking changes. There is another event that should be changed (#837).

livius2 commented 6 years ago
  • Since FMX uses the type single for coordinates and dimensions, while VCL uses Integer, we should create an lais to avoid having too many $ifdef in the code.
  • Some function use the type HDC, we should try to switch to TCanvas instead.

changes commited

I wonder: Is Firemonkey making actual use of the decimal places that the Single type offers, or do you typically have whole number here too?

It depend of usage case. Normally we have fraction=0 but you can have some scalling and any calculation can be made by fraction.

joachimmarder commented 6 years ago

changes commited

Not sure how to get these changes and leave out all your other changes. I will apply them manually in master branch at a later time.

livius2 commented 6 years ago

I suppose you can cherry-pick this particular commit

livius2 commented 6 years ago

Added support of header drawing - its columns and button styles Still few pixel issues but near to compleated

livius2 commented 6 years ago

Added some click events, expand, collapse, header column resize, focus rect.. It looks now really promissing :)