Hi, folks:
One of my students of Master in Computer Sciences, Alex Cadena, is working in his Master Degree Thesis. I'm his Thesis Director, and we're planning to document the �state of the art� of LCL components, comparing it with Delphi's VCL, using UML to document and compare both. But when we check the Web Page (specially the �How to Code� section), we observed that some errors or mistakes are present. In first place, the {$DEFINE ???} directive doesn't exist in none of the LCL files. The explanation about the class inheritance is not correct: the correct is like this:
Tobject
|
+--- TinterfaceBase
|
+--- TGTKObject
|
+--- TQTObject
|
+--- TWIN32Object
And in the interfaces.pp, the code declares an instance of TinterfaceBase, but constructs an object of TGTKObject, TQTObject or TWIN32Object, depends of the directory. Here is the code:
unit interfaces;
{$mode objfpc}
interface
uses
InterfaceBase;
var
InterfaceObject : TinterfaceBase;
implementation
uses
GTKInt;
initialization
InterfaceObject := TGTKObject.Create;
finalization
InterfaceObject.Free;
end.
At fast as posible, we send to the list a complete UML class and sequence diagrams that can be putted in the page, to better understand this.
The second (and least important), in the �Status� section are some errors:
1.- In the �FCL Active Component Task List�, a component, created by Michael Van Canneyt, says TdggDataSet. We think it must say TDBDDataSet. 2.- In the �Lazarus Avaiable Component Task List�, says TtextAttributesg, we think it must say TtextAttributes.
I'mm attaching to this mail a complete LCL inheritance diagram, in .TXT format. I checked all the classes and inheritance with the Delphi manuals, and I think it's all right (If I have an error or mistake, please send me a mail).
I expect this diagram (and the next we will create) will be useful for you.
Jos� Enrique
TObject
|
+------ TChangeLink
+------ TCustomIniFile
| +------ TIniFile
+------ TDragObject
| +------ TBaseDragControlObject
| +------ TDragControlObject
+------ TList
+------ TPersistent
| +------ TCanvas
| | +------ TMetafileCanvas
| +------ TClipboard
| +------ TCollection
| | +------ THeaderSections
| | +------ TOwnedCollection
| | | +------ TDefCollection
| | | +------ TFieldDefs
| | | +------ TIndexDefs
| | +------ TParams
| | +------ TStatusPanels
| |
| +------ TCollectionItem
| | +------ TColumn
| | +------ TFieldDef
| | +------ THeaderSection
| | +------ TListColumn
| | +------ TNamedItem
| | + +------ TIndexDef
| | +------ TParam
| | +------ TStatusPanel
| +------ TColumnTitle
| +------ TComponent
| | +------ TApplication
| | +------ TBatchMove
| | +------ TCommonDialog
| | | +------ TColorDialog
| | | +------ TFindDialog
| | | | +------ TReplaceDialog
| | | +------ TFontDialog
| | | +------ TOpenDialog
| | | | +------ TSaveDialog
| | | +------ TPrintDialog
| | | +------ TPrinterSetupDialog
| | +------ TControl
| | | +------ TGraphicControl
| | | | +------ TBevel
| | | | +------ TCustomLabel
| | | | | +------ TDBText
| | | | | +------ TLabel
| | | | +------ TImage
| | | | +------ TPaintBox
| | | | +------ TShape
| | | | +------ TSpeedButton
| | | |
| | | +------ TWinControl
| | | +------ TButtonControl
| | | | +------ TButton
| | | | | +------ TBitBtn
| | | | +------ TCustomCheckBox
| | | | | +------ TCheckBox
| | | | | +------ TDBCheckBox
| | | | +------ TRadioButton
| | | +------ TCustomComboBox
| | | | +------ TComboBox
| | | | +------ TDBComboBox
| | | | +------ TDriveComboBox
| | | | +------ TFilterComboBox
| | | +------ TCustomControl
| | | | +------ TCustomGrid
| | | | | +------ TCustomDBGrid
| | | | | +------ TCustomOutline
| | | | | | +------ TOutline
| | | | | +------ TDrawGrid
| | | | +------ TCustomGroupBox
| | | | | +------ TCustomRadioGroup
| | | | | | +------ TDBRadioGroup
| | | | | | +------ TRadioGroup
| | | | | +------ TGroupBox
| | | | +------ TDBImage
| | | | +------ TDBLookupControl
| | | | | +------ TDBLookupComboBox
| | | | | +------ TDBLookupListBox
| | | | +------ TCustomPanel
| | | | | +------ TDBNavigator
| | | | | +------ TPanel
| | | | +------ THeader
| | | | +------ TMediaPlayer
| | | | +------ TNotebook
| | | | +------ TOLEContainer
| | | | +------ TTabSet
| | | +------ TCustomEdit
| | | | +------ TCustomMaskEdit
| | | | | +------ TDBEdit
| | | | | +------ TMaskEdit
| | | | +------ TCustomMemo
| | | | | +------ TCustomRichEdit
| | | | | | +------ TRichEdit
| | | | | +------ TDBMemo
| | | | | +------ TMemo
| | | | +------ TDBLookupCombo
| | | | +------ TEdit
| | | +------ TCustomGrid
| | | | +------ TCustomDBGrid
| | | | | +------ TDBGrid
| | | | | +------ TDBLookupList
| | | | +------ TDrawGrid
| | | | +------ TStringGrid
| | | +------ TCustomHotKey
| | | | +------ THotKey
| | | +------ TCustomListBox
| | | | +------ TDBListBox
| | | | +------ TDirectoryListBox
| | | | +------ TFileListBox
| | | | +------ TListBox
| | | +------ TCustomListView
| | | | +------ TListView
| | | +------ TCustomTabControl
| | | | +------ TPageControl
| | | | +------ TTabbedNotebook
| | | | +------ TTabControl
| | | +------ TCustomTreeView
| | | | +------ TTreeView
| | | +------ TCustomUpDown
| | | | +------ TUpDown
| | | +------ TDBCtrlGrid
| | | +------ THeaderControl
| | | +------ TProgressBar
| | | +------ TScrollBar
| | | +------ TScrollingWinControl
| | | | +------ TCustomForm
| | | | | +------ TForm
| | | | +------ TScrollBox
| | | +------ TSpinButton
| | | +------ TStatusBar
| | | +------ TTabSheet
| | | +------ TTrackBar
| | +------ TCustomConnection
| | | +------ TDatabase
| | +------ TCustomImageList
| | | +TDragImageList
| | | +TImageList
| | +------ TDataSet
| | | +------ TBDEDataSet
| | | +------ TDBDataSet
| | | +------ TQuery
| | | +------ TStoredProc
| | | +------ TTable
| | +------ TDataSetUpdateObject
| | | +------ TSQLUpdateObject
| | | +------ TUpdateSQL
| | +------ TDataSource
| | +------ TDdeClientConv
| | +------ TDdeClientItem
| | +------ TDdeServerConv
| | +------ TDdeServerItem
| | +------ TField
| | | +------ TNumericField
| | | | +------ TBCDField
| | | | +------ TFloatField
| | | | | +------ TCurrencyField
| | | | |
| | | | +------ TIntegerField
| | | | +------ TAutoIncField
| | | | +------ TSmallIntField
| | | | +------ TWordField
| | | |
| | | +------ TBlobField
| | | | +------ TGraphicField
| | | | +------ TMemoField
| | | |
| | | +------ TBooleanField
| | | +------ TBinaryField
| | | | +------ TBytesField
| | | | +------ TVarBytesField
| | | |
| | | +------ TDateTimeField
| | | | +------ TDateField
| | | | +------ TTimeField
| | | |
| | | +------ TStringField
| | +------ TMenu
| | | +------ TMainMenu
| | | +------ TPopupMenu
| | |
| | +------ TMenuItem
| | +------ TReport
| | +------ TScreen
| | +------ TSession
| | +------ TTimer
| |
| +------ TControlScrollBar
| +------ TGraphic
| | +------ TBitmap
| | +------ TIcon
| | +------ TMetafile
| |
| +------ TGraphicsObject
| | +------ TBrush
| | +------ TControlScrollBar
| | +------ TFont
| | +------ TPen
| |
| +------ TIconOptions
| +------ TListItem
| +------ TListItems
| +------ TOutlineNode
| +------ TParaAttributes
| +------ TPicture
| +------ TStrings
| | +------ TStringList
| |
| +------ TTextAttributes
| +------ TTreeNode
| +------ TTreeNodes
|
+------ TPrinter
+------ TRegistry
| +------ TRegIniFile
+------ TStream
| +------ TBlobStream
+------ TThread