What are the licensing terms for reusing substantial chunks of the VCL source in your own component (never distributed as source)?

What are the licensing terms for reusing substantial chunks of the VCL source in your own component (never distributed as source)?

It might be more clear with an explanation. I'm currently using TTabSet with the Modern style. When drawing, it lightens the background colour, ie doesn't use the background colour you explicitly set in the BackgroundColor property. It's not easy to simply darken the colour you set, since it uses several rules to decide how to lighten it (it uses Vcl.GraphUtil.GetHighlightColor) nor does ownerdraw give enough control. I thought it would be simple to fix by making an interposer class to replace the Paint method or the method painting 'modern' tabs so that it uses the color I set rather than its own changed version, but it relies on a lot of private fields and methods. The interposer class will grow until it's basically a copy/paste of TTabSet, with one line changed. At this point, the interposer class idea sounds (a) unreliable and (b) kindof shaky IP-wise.

Whether or not I use a different control, I'm interested in the licensing question this raises. So the situation is:
 - Source of the control largely copied from the VCL into your own app
 - App publicly shipped
 - Source of the mostly-copied component never publicly available
Does this comply with the Delphi license?

(I tend to avoid installing components if I can, since it takes so much time, and I need to install them on all the different IDE versions. The JCL dependency of the JVCL does not yet support XE7 either, one reason I haven't used JvTabs. An interposer class to solve one line of code started off seeming so simple...)

Comments

  1. Marco Cantù Thanks for the reply. Asking a lawyer seems like an awful lot of trouble to go to and leading into "can of worms" territory. I'm happy to go by your understanding (although if you do get a lawyer's opinion I'll happily listen to that too :))

    ReplyDelete
  2. But distributing those components including VCL sources would only be possible in the "patchset against vanilla VCL" mode, until eventually maybe someone would rewrote all the VCL code.  See the hitory of Lame mp3 encoder and Apache WWW server and how they slowly and gradually became independent works with their own licensing.

    ReplyDelete
  3. David Millington With class helpers you can dig into private fields. That makes extending and fixing VCL controls a bit easier, but it can still be major PITA.

    At times I would like to see private and protected to be automatically translated into strict private and strict protected by compiler and then watch Embarcadero VCL developers sweat making it work.

    ReplyDelete

Post a Comment