[lazarus] CVS changes

Mattias Gaertner nc-gaertnma at netcologne.de
Sun Feb 3 08:05:25 EST 2002


On Sun, 03 Feb 2002 02:29:58 +0100
Michal Bukovjan <michal.bukovjan at openone.cz> wrote:

> - split LCLLinux into LCLLinux and LCLType, 

ok


> likewise Graphics -> Graphics and GraphType.

Bad: loosing delphi compatibility in the lcl
Good: breaking circles
The compiler doesn't seems to have problems with the current lcl inner circles, so why the change?


> The LCLType unit and GraphType unit contain 
> constants and types commonly used, the purpose of the split is that we 
> can now reference common types (like TAlignment) from interfaceobject 
> units without circular references, or without the need to declare them 
> twice.

There are no real circles between LCL and the widget-interfaces.
The only circle is the interfaces.pp. A few weeks ago Marc and I tested successfully to break even this one. The price was just to add a further unit to the main program source.
The only advantage was, that we can skip the remove intefaces.ppu in the Makefiles. So, we kept the current solution.


> Something lik C header files. Maybe in future they could contain 
> abstract class declarations as well, I would like to discuss this first, 
> though.

I think, this depends on every case. What classes do you think of?


> BTW, I ran into some compiler bugs:
> 
> 1) Compiler mishandles units that begin with the same string, i.e. when 
> I have units Graphics and GraphicsType, the second is never found!

Can u give an example?


> 2) Inheritance seems to function somewhat strange - for example, try to 
> create:
> 
> type TMyButton = class(TBitBtn);
> 
> Whenever you create this type of button on a form, it is never 
> displayed. Weird. TBitBtn button is of course OK.

Yes it is. Can u send me an example?

Mattias






More information about the Lazarus mailing list