Frames en un paquete
Hola estoy intentando en la aplicación principal mostrar los frames que estan almacenados en un paquete (que cargo de forma dinamica):
Código Delphi [-] var Modulo: HModule; ClaseFrame: TCustomFrameClass; FrameC: TFrame; begin Modulo:=LoadPackage('FramePru.bpl'); if Modulo<>0 then begin ClaseFrame:=TCustomFrameClass(GetClass('TfraVerde')); if ClaseFrame<>Nil then begin FrameC:=TFrame(ClaseFrame.Create(Application)); FrameC.Parent:=Self; FrameC.Align:=alBottom; FrameC.Height:=200; FrameC.Visible:=True; end; end; Pero al ejecutarlo me da el siguiente error: Project Prueba.exe raised exception class EConverErro with message 'Cannot assign a TFont to a TFont'. El error lo da al asignar Código Delphi [-]FrameC.Parent:=Self; Si modifico la sentencia Código Delphi [-]FrameC:=TFrame(ClaseFrame.Create(Application)); por Código Delphi [-]FrameC:=TFrame(ClaseFrame).Create(Application); me da un error de Access violation at address... Algun tipo de sugerencia, muchas gracias.:D |
FrameC:=TFrame(ClaseFrame).Create(Self);
Por lógica, yo pondría el dueño y el padre al mismo control, en este caso el propio Form donde se creará el frame. Saludos |
Hola
Lepe aprovecho para aprender. Aqui veo algo extraño: El parent no deberia ser el form?., es asi o me equivoco.? Saludos |
Modificado:
Mismo error en la misma linea. |
Hola
Yo de esto no se, el maestro es Lepe, pero me parece que deberia de ser el parente el form en el que se hospeda. Saludos |
En este caso Self y Form1 son el mismo, ya que este codigo se ejecuta desde el Form1.
|
Hola
Muy cierto, lo he probado de la dos formas y funciona, algo mas que aprendi. Saludos |
De esta forma si tira:
FrameC esta declarado en la parte publica del formulario como TFrame. :) |
La franja horaria es GMT +2. Ahora son las 09:53:38. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi