Difference between revisions of "IDE Development"
From Lazarus wiki
Jump to navigationJump to searchLine 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.