[lazarus] compile error on New Sources from cvs - FIXED

Micha Nelissen M.Nelissen at student.tue.nl
Fri Nov 28 02:42:48 EST 2003


Marc Weustink wrote:

> At 23:24 27-11-2003, Mattias Gaertner wrote:
> 
>> On Thu, 27 Nov 2003 23:10:24 +0100  Marc Weustink <marc at dommelstein.net>
>> wrote:
> 
> 
> [snip]
> 
>> > I don't think this is the way to go. Now, if the interface gets 
>> extended
>> > with mode direct calls, we can add a TBase... for every
>> > TComponent/TControl etc we need.
>> >
>> > OK, what happened.
>> >
>> > The LCL needs the baseinterface..
>> > The baseinterface needs the LCL..
>> >
>> > That means problems. Sure you can introduce all kinds of base 
>> classes, but
>> >
>> > how would you do this with a TBaseControl and a TBaseWinControl ?
>> > If we are going to introduce dedicated interface classes, it starts to
>> > look like a discussion we had a few years ago.
>> >
>> > Seen the latest problems and implications, I wonder if we should 
>> continue
>> > the last changes we made. IMO, we should undo it and try another route.
>>
>> What about replacing TBaseMenuItem with TComponent?
> 
> 
> Hmm...
> 
> That would require a lot of typecasting, but is better.
> The new situation would be
> 
> The LCL needs the baseInterface and FCL
> The baseInterface needs FCL
> The XXXInterface needs LCL and baseInterface and FCL
> 
> I don't see a problem here.

I think the problem is that we are acting as if the LCL and the 
interface are seperate entities. As if they are independent. We say: the 
LCL uses the interface as if the interface is a layer completely below 
the LCL. But it is not. Mattias already said this of course, but it took 
a while for me to see the 'whole picture'. Correct ways to fix it:
1) Make the interface really indepedent. This means you should be able 
to rewrite all the programs in examples/ without using the lcl at all, 
only interfacebase.
2) Regard the lcl and interface as one layer. Then placing the interface 
on top of the lcl will justify not being able to write those examples 
without the lcl, because the interface depends on it, which it does.

Mattias: "So, I think,  eventually we need to get rid of the generics." 
I agree, and I have some ideas but I am unsure how to do it exactly.

Micha.






More information about the Lazarus mailing list