[lazarus] FCL Class Chart

Florian Klaempfl Florian.Klaempfl at gmx.de
Fri Oct 29 07:14:32 EDT 1999


"Michael A. Hess" wrote:
> 
> Greetings,
> 
> Another thing being played with. Michael C. has made a Free Pascal Class
> Chart similar to the Delphi Class Chart. It consists of the various FCL
> classes. I made a PDF from his PostScript source. Here is the link to
> look at it.
> 
>     http://www.lazarus.freepascal.org/classchart.pdf
> 
> This will be nice to add the LCL stuff to it under the TComponent tree
> as well as anything else that isn't part of TComponent. We haven't
> decided out to maintain both charts since the FCL should be kept
> separate from the LCL chart.
> 
> Question does anyone mind if it is actually 2 charts. One for the FCL
> and one that would be for the LCL?

The class chart is drawn using plain PS, see example below:

%%%%%%%%%%%%%%%%%%%%%%%
% TObject
%%%%%%%%%%%%%%%%%%%%%%%
(TObject) Ready drawlargebox

%%%%%%%%%%%%%%%%%%%%%%%
% Exception classes
%%%%%%%%%%%%%%%%%%%%%%%
(Exception) Ready newchildclass
  (EAbort) Incomplete newchildclass
  (EAbstractError) Ready newclass
  (EAccessViolation) Ready newclass
  (EBitsError) Ready newclass
  (EConvertError) Ready newclass
  (EDatabaseError) Missing newclass 
    (EDBCLient) Missing newchildclass
      (EReconcileError) Missing newchildclass 
      onelevelback
    (EDBEngineError) Missing newclass 
    (ENoResultSet) Missing newclass
    (EUpdateError) Missing newclass
    onelevelback
  (EDBEditError) Missing newclass
  (EDOMError) Ready newclass
    (EDomHierarchyRequest) Ready newchildclass
    (EDOMIndexSize) Ready newclass 

.....


So it should be no problem to keep the k/l/fcl class charts together
by simple adding a variable lcl and a procedure lclonly like that:

/lclonly
{
  /param exch def
  lcl 1 eq { param } if
} def

(Exception) Ready newchildclass
  (EAbort) Incomplete newchildclass
  (EAbstractError) Ready newclass
  { (ELCLException) Ready newclass } lclonly     % this class is only in lcl chart
  (EAccessViolation) Ready newclass

At the beginning:
/lcl { 1     % set this to zero if you don't want to include the lcl classes 
} def    

so you can easily decide what classes you want to include!







More information about the Lazarus mailing list