Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2001-03

Some corrections to Web Page

2 messages · 2 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Michael A. Hess
to José Enrique Alvarez Estrada: Hi, folks: One of my students of Master in Computer Sciences, Alex Cadena, is working in…
Jos� Enrique Alvarez Estrada wrote 6 lines
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:

You are correct on both counts. In fact a detailed discussion is currently taking place on the developers list with regards to the TInterfaceBase object and how we plan on continuing with the actual interface between the LCL and the widget set code.

<snip TInterfaceBase and interfaces.pp stuff>

We have been in a slow transition with regards to how the interface is designed. One is the older method of the connection and one is the newer method. Some components and features use the old method and some use the new. Again that is part of the developers discussion right not. We realize this needs to be cleaned up and we are talking about how we go about doing it. Both for the purpose of making the code more understandable but also making it easier for other interfaces to be written such as the Win32 that is being worked on.

Show quoted text 10 lines
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.

No. It is actually TdggDataSet.

2.- In the �Lazarus Avaiable Component Task List�, says TtextAttributesg, we think it must say TtextAttributes.

You are correct on this one. It was a typo. (fixed)

I'm attaching to this mail a complete LCL inheritance diagram, in .TXT format.

<snip>

Actually there already exists the beginnings of a class diagram. It currently shows the FCL and stops at the TControl section. MVC did all of the FCL stuff and I need to add the LCL stuff. Of course I haven't gotten around to it yet. :-\

Here is the URL to this diagram.

http://www.lazarus.freepascal.org/classchart.html

This is a DHTML file so it might not work correctly in some browsers if you do have problem you can also get a PDF version of this chart here.

http://www.lazarus.freepascal.org/classchart.pdf

I'm not sure when MVC updated this chart last so it might needs some additions from him as well.

==== Programming my first best destiny! ==== Michael A. Hess Miracle Concepts, Inc. http://www.miraclec.com

Reply by email

José Enrique Alvarez Estrada

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

Reply by email