FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Como usar RegisterClass en Lazarus ?
Hola,
Como referencia, estoy usando el Lazarus 1.1 que viene con la última versión de Code Typhon. He creado un paquete que, entre otras cosas, crea un descendiente de un módulo de datos especializado. La compilación del paquete no tuvo problemas. Bueno, reconstruír el IDE es superlento (mas de 20 minutos); pero, la compilación del paquete en sí es rápida. Eso sí, después de configurar las opciones de compilación porque con el default es una tortuga. La razón de hacer eso es para migrar un aplicativo Delphi a Lazarus que usa ese tipo particular de módulo de datos. Mi problema empieza cuando ya desde mi proyecto normal voy a abrir el formulario que usa la clase creada. El sistema muestra un error y me pregunta si suspendo la carga de la clase. Si le digo que sí, y después compilo, pasa bien la parte donde se referencia a la clase, por lo que pareciera que sintácticamente la reconoce. El mensaje de error es : Unable to find the component class "TMyClass". It is not registered via RegisterClass and no lfm was found Ahora bien, lo que he investigado es que, al igual que en Delphi, Lazarus debe registrar automáticamente la mayoría de clases "persistentes"; pero, en algunos casos, hay que registrar explícitamente las que deban ser manejada directamente por el IDE de Lazarus, y esto debe hacerse vía RegisterClass. En teoría sería solo registrar la clase al igual de como se hace con las que vienen con Lazarus; pero, ni la clase padre de la mía, ni otros descendientes de ella que forman parte de las clases que vienen con Lazarus, aparecen registradas en el código fuente de los paquetes Lazarus. O sea, no encontré ninguna lllamada a RegisterClass que usara como parámetro la clase respectiva (incluso hice la busqueda desde el propio directorio C:\codetyphon). Sin embargo, si uso directamente las clases que vienen con Lazarus el asunto si funciona. Haciendo analogía con Delphi, donde RegisterClass se usa generalmente en el procedure Register junto con RegisterComponents, probé a usar RegisterClass en el procedure Register de la unidad que implementa a esa clase; pero nada. El procedure Register se usa normalmente para registrar clases creadas en una unidad que interactuan con el IDE; típicamente usando RegisterClass, y RegisterComponents si la clase debe agregarse a la paleta de componentes. El procedure Register Se debe declarar en la sección de interface e implementarse con algo como :
Igualmente probé a usar RegisterClass en la sección de INITIALIZATION de la unidad de mi proyecto que no carga bien; pero, tampoco funcionó. Mañana pienso probar poniendo el RegisterClass en el constructor de la clase. Normalmente espero a que se me agoten las ideas antes de hacer preguntas; pero, considerando lo que demora reconstruir el IDE, creo que es mejor documentar ya este caso. Alguién puede explicar como debe hacerse ese registro de la clase ?. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como usar SQLite con Lazarus¿ | mcs | Lazarus, FreePascal, Kylix, etc. | 6 | 12-03-2014 00:04:57 |
Usar componentes de Lazarus en Delphi | buenarquero | Varios | 12 | 22-11-2011 17:52:02 |
Que versión de Lazarus usar? | mcs | Lazarus, FreePascal, Kylix, etc. | 27 | 13-12-2010 19:29:47 |
ayuda para usar lazarus | Robert01 | Linux | 9 | 21-08-2006 11:09:35 |
RegisterClass | MARIOR | Varios | 1 | 06-01-2004 11:53:30 |
|