On 02/04/2012 16:51, Jürgen Hestermann wrote:
Martin schrieb:

> So by using Grids, you should expect all the platform/GUI dependent stuff to end up in your application.

I am not even aware of all the platform/GUI dependent stuff. I just wanted to use TStringGrid types. Do I need to study the whole LCL in detail to write programs with Lazarus? It seems so.

Well the "whole LCL" seems exaggerated, but yes, in this case I can confirm you need more knowledge, as may seem desirable.

Note: Just adding interfaces only hides the issue. It can (or may in future) mean a lot of code added to your app. If you add interfaces, then you must make sure to use the NoGUI widgetset, to avoid that.

In so far, it is actually "good" (compared to no feedback) that it fails, as it gives you the feedback something undesirable is about to happen.

Better/Correct would be a proper message, asking what to do. (Well, that is, as I wrote, subject to contribution)



> And there are cases where smart-linking does not work. And you encountered one. Some of the methods, of some classes in Grids can not be smart linked (IIRC virtual/overridden class methods, maybe all virtual/overridden).

Smartlinking is not the issue here (because that only affects the size of the file) but it seems that the concept of virtual methods broke the mechanism of units.

Well the size of the file, and which parts of the unit are used appear to have a relationship.
Also the smartlinking issue is only one possible explanation.

But the error message is clear: platform dependent code is included.

> For this cases the "NoGui" widgetset exists. It provides (or should provide) empty methods for this.

But how should I know that this is necessary? I used a simple unit in a console application. And the error messages gave no hint what is wrong.

Well it may need to be added to documentation.

Same applies if you use TTimer, it is widgetset dependent.
Using a component or a unit, requires the user to check what the requirements are.
Just because some are self explaining, does not mean that all have to be.

For all I can see: You may have a case about missing documentation

In any case:
as said before, there is no rejection about the fact that it could be improved. (subject to someone wanting to do the work)

--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to