![]()  | 
	
 
  | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 помогите кто может 
		
	
		
		
		
		
		
	
		
		
	
	
	--------------------- Требуется создать DLL содержащую FRAME с компонентами так чтобы можно было ее загрузить на главную форму причем она должна быть к ней привязана (те Frame.Parent := FormMain) Смысл вот в чем я разбиваю сложный проект на модули и оформляю их как набор DLL экспортирующих 2 функции (загрузить/удалить) Пользователь динамически загружает нужную. Мои эксперименты привели к тому что Frame либо свободно болтается по экрану либо вовсе не отображается  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 DelphiWorld в помощь, я точно видел там такой пример.. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	вот именно http://delphiworld.narod.ru/base/panel_from_dll.html ещё на torry.net есть куча компонентов в том числе и бесплатных для такой фичи ![]()  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Ну, где-то ты напортачил. 
		
	
		
		
		
		
		
		
			Вообще, когда я последний раз делал такую штуку я делал ее через форму и вызов CreateParented. Код: 
	// Код DLL // Нужна для корректного удаления формы procedure FreeForm(var Frm : TForm); stdcall; begin FreeAndNil(Frm); end; function MakeForm(AParent : THandle) : TForm; stdcall; begin Result := TForm1.CreateParented(AParent); Result.Visible := True; end; exports FreeForm, MakeForm; // Код основной программы // Создаем форму на панельке. var PluginForm : TForm; begin PluginForm := MakeForm(Panel1.Handle); ... // Поработали с формой, теперь ее убиваем FreeForm(PluginForm); end; Надеюсь, что причины использования FreeForm объяснять не надо? Последний раз редактировалось lmikle, 30.06.2008 в 23:11.  |