Difference between revisions of "IDE Development"

From Lazarus wiki
Jump to navigationJump to search
Line 17: Line 17:
 
*TPersistentPropertyEditor.SetValue - search the component via the given path
 
*TPersistentPropertyEditor.SetValue - search the component via the given path
 
*When component is deleted, the property must be set to nil - This is not the job of the IDE, but should be achieved by the normal TComponent FreeNotification feature. Maybe eventually a check could be added, if this is implemented properly and force a nil on error.
 
*When component is deleted, the property must be set to nil - This is not the job of the IDE, but should be achieved by the normal TComponent FreeNotification feature. Maybe eventually a check could be added, if this is implemented properly and force a nil on error.
 +
*When a component is renamed the property does not need to be updated, because the form is open and use the pointer not the name.
  
 
==ToDo==
 
==ToDo==

Revision as of 19:47, 4 April 2008

This page contains notes for lazarus core developers about ongoing development.

Multi form properties / using DataModules from other forms in the designer

Short Description

This feature allows to use components of other designer forms. A common example is to use the TDataSource on a DataModule for the DataSource property of a db control.

Working

Manual referencing via source code works.

Some features are only enabled via -dEnableMultiFormProperties.

  • TPersistentPropertyEditor.GetValues - List all possible values. Check for class compatibility and if the target unit does not belong to a package that will conflict if used.
  • TPersistentPropertyEditor.GetValue - Show component path
  • TPersistentPropertyEditor.SetValue - search the component via the given path
  • When component is deleted, the property must be set to nil - This is not the job of the IDE, but should be achieved by the normal TComponent FreeNotification feature. Maybe eventually a check could be added, if this is implemented properly and force a nil on error.
  • When a component is renamed the property does not need to be updated, because the form is open and use the pointer not the name.

ToDo

  • Add unit name to uses section and package to dependencies.
  • When referenced component is deleted, the using units must be set modified.
  • When target form is saved, all referring forms should be saved too, to keep consistency.
  • When target form is closed, then all referring forms must be closed too. (Otherwise all properties will be set to nil, and the reference will be lost).
  • When reference form is opened, then target forms must be opened too.