Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-07-2006
janlo janlo is offline
Registrado
 
Registrado: jul 2006
Posts: 8
Poder: 0
janlo Va por buen camino
Question Error A component Named Matri already Exists

Hola Amigos,

tengo una aplicacion que lleva funcionando perfectamente 3 años y ahora de pronto en uno de los ordenadores donde esta instalado da un error al intentar abrir uno de los formularios me dice "A component Named matri Already Exists". Solo me pasa en este equipo. Lo tengo instalado el programa en varios sitios y no me ha dado ningun tipo de problema. ¿A que puede ser debido esto? ¿Puede tener que ver con el equipo o el sistema operativo?

Muchas Gracias de antemano.
Responder Con Cita
  #2  
Antiguo 26-07-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.281
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Estás seguro de que no has cambiado nada (del programa) en ese ordenador?
Normalmente ese error da cuando en un formulario hay dos componentes con igual nombre.
No creo que tenga nada que ver con el Sistema Operativo ni con el ordenador.

¿En el formulario en cuestión creas algun componente dinámicamente?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 26-07-2006
janlo janlo is offline
Registrado
 
Registrado: jul 2006
Posts: 8
Poder: 0
janlo Va por buen camino
Hola Neftali,

respecto a tu respuesta comentarte que del programa no se ha tocado nada, es el mismo programa que hacia 3 años. Ha empezado de pronto a dar ese error. Ya te digo, solo pasa en ese equipo.
Responder Con Cita
  #4  
Antiguo 26-07-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Pues yo opino como Neftalí. Solución: Instala Delphi en ese equipo, revisa ese formulario a fondo, algo tiene que tener, puede ocurrir que por algún caso se den cirucunstancias que no se habían dado antes.

Por poner un ejemplo hace un par de días tuve que mantener código fuente ajeno, el problema era que un listado de Balance no funcionaba correctamente, me puse a investigar y resulta que el problema era que no había funcionada nunca, lo que sucede es que ese listado en concreto no lo habían utilizado hasta ahora.

El problema venía en los años, pues la empresa utilizaba un sistema partido, el ejercicio empezaba en julio y finalizaba en junio del siguiente.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 27-07-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.281
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
...ya pensando cosas raras.
¿El programa utiliza packages o está compilado en un único EXE?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 28-07-2006
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile Componentes con el mismo nombre en clase padre e hija

¡Hola a todos!

Janlo: Conozco el fenómeno. Me ha sucedido en algunas ocasiones, en todas ellas involucrada la herencia visual (o plantillas) de Delphi.

Supongamos que tienes una forma F1 y una forma F2 que deriva de F1 (TF2 es clase hija de TF1, por lo tanto hereda todo lo que TF1 contenga).

El programador 1 agrega un componente de nombre "Matri" a F2 y luego guarda y cierra el proyecto.

Posteriormente viene el programador 2, quien abre el proyecto y su forma plantilla F1 y, sin estar abierta la forma F2, agrega a F1 un nuevo componente de nombre "Matri" o cambia por "Matri" el nombre de alguno de los componentes ya existentes en esa forma. Luego guarda y cierra el proyecto.

Más tarde regresa el programador 1, abre el proyecto e intenta abrir la forma F2. ¿Qué pasa? Delphi se da cuenta que la forma F2 es de clase (TF2) hija de TF1; por lo tanto, primero carga los elementos que le fueron definidos en tiempo de diseño a F1, entre ellos el objeto "Matri" (todos ellos a ser heredados por F2), para luego cargar el resto del diseño —lo establecido en F2—. Cuando está cargando el diseño particular de F2 (su archivo .dfm), Delphi nota que ahí se especifica otro "object Matri" (ver contenido textual de un archivo .dfm), pero la forma ya hubo cargado otro "object Matri" del archivo .dfm de F1, y como un componente (en este caso la forma) no puede adueñar a otros dos componentes que lleven el mismo nombre (Matri de TF1 y Matri de TF2) pues entonces el entorno de Delphi arroja el mensaje de error que nos presentas.

Es decir, esto pasa, generalmente*, cuando se establece en una forma un componente de nombre igual al de otro componente que ya existe en una forma derivada de ella. El mensaje de error aparecerá cuando se intente cargar la segunda forma (la derivada por herencia visual), ya sea en tiempo de diseño o incluso en tiempo de ejecución al instanciarla (usualmente llamando a Application.CreateForm).

*NOTA: Mencioné "generalmente" porque me ocurrió algo muy extraño recientemente: Trabajaba en Delphi 7 con un proyecto que tiene varias formas con herencia visual, de pronto mi máquina tuvo un bloqueo que me obligó a forzar el cierre de las aplicaciones. Cuando volví a cargar el proyecto en Delphi, una de las formas derivadas no logró abrirse correctamente, presentándose en pantalla el mensaje de error que nos ocupa una y otra vez. Cuando examiné el interior del archivo .dfm noté que muchas declaraciones de componentes que debían iniciar con "inherited" —para indicar que el componente era heredado (provenía) de otra clase de forma— iniciaban con "object" —indicación de que el componente fue agregado en la clase de la actual forma—. Tuve que editar el texto del archivo .dfm cambiando varias decenas de "object" por "inherited" para recuperar el estado normal de la forma derivada.

En resumen, mi consejo para solucionar este problema es que te asegures de que no haya nombres de componentes repetidos a través de la jerarquía de clases que da herencia visual a las formas de tu proyecto.

Espero esto sea de utilidad.

Un abrazo bien cargado.

Al González.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
A component named XXXXX already exists.. al mostrar más de una ventana de reportes sitrico Impresión 6 16-01-2007 20:37:14
Error en el Exists Payola2011 MySQL 7 31-01-2006 19:17:47
serial component raudelink Varios 1 19-10-2004 02:39:48
String to Component? diegofhernando OOP 2 28-06-2004 17:49:19
-502 Declared cursor already exists Carlitos Firebird e Interbase 4 30-09-2003 17:18:22


La franja horaria es GMT +2. Ahora son las 23:19:34.


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
Copyright 1996-2007 Club Delphi