На данный момент делаю редактор верхнего уровня . Хочу сделать похожей на среду lazarus. На форме располагаются компоненты (потомки TControl), которые описаны в модулях самого редактора, что очень ограничивает расширение системы. Хотелось бы что бы компоненты можно было редактировать отдельно и подгружать в редактор. То есть хранить компоненты в отдельных dll например. Можно ли такое сделать или нет? Или есть альтернативные решения?
На данный момент форма с элементами сохраняется как файл ресурсов:
- Код: Выделить всё
- WriteComponentResFile(UTF8ToSys(SaveDialog1.FileName), (ActivePicture as Tform));
При добавлении на форму компонента регистрируется класс:
- Код: Выделить всё
- RegisterClass(THMIBaseControl);
 RegisterClass(THMIRectangle);
 RegisterClass(THMILabel);
 Pc := GetClass(SelectComponentType);
 if Pc <> nil then
 begin
 Ctrl := TControlClass(Pc).Create((Sender as TForm));
 Ctrl.Parent := (Sender as TForm);
 Inc(countObj);
 Ctrl.Name := Copy(SelectComponentType, 2, Length(SelectComponentType)-1) + IntToStr(countObj);
 Ctrl.Left := X;
 Ctrl.Top := Y;
 Ctrl.Caption := Ctrl.Name;
 THMIBaseControl(Ctrl).OnMouseDown:=@NetComponentBoxMouseDown;
 THMIBaseControl(Ctrl).OnMouseMove:=@NetComponentBoxMouseMove;
 THMIBaseControl(Ctrl).OnMouseUp:=@NetComponentBoxMouseUp;
 THMIBaseControl(Ctrl).OnClick:=@NetComponentBoxClick;
 end;
вот ссылка на екзешник: http://www.azbuka-softa.ru/wp-content/uploads/2011/12/HMIEditor.zip.
Буду очень благодарен вашим советам.


