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 14-08-2008
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
Problema en código

Esta es una parte del código de un programa posiblemente en delphi3:

Código Delphi [-]
 tipo_elemento=(programa,clase,atributo,metodo,especializacion,asociacion);
        { contiene los posibles elementos del  fichero registro}

  reg_parametros=record
                       nombre,tipo_para:string;
                 end;
       {registro para guardar los parametros de cada metodo de las clases}

  elemento=record
     case tipo_elemento of
        programanombre_pro:string); //93
        clasenombre_clase:string);
        atributonombre_atri,tipo_atri:string);
        metodonombre_metodo:string;tipo_met:boolean;parametros:reg_parametros);
        especializacionsuperclase:string);
        asociacioncon_clase:string);
     end;
     {registro para almacenar el fichero de resultados}

  regis=record
              nom_reg,asoc:string;
         end;
    {registro para almacenar asociaciones que estén dentro de un campo del mismo}

var
  f:textfile; {fichero de visualizacion de resultados} /111

Al tratar de compilar da los siguientes errores:

[Error] EXPLORAR.PAS(93): Type 'String' needs finalization - not allowed in variant record
[Error] EXPLORAR.PAS(94): Type 'String' needs finalization - not allowed in variant record
[Error] EXPLORAR.PAS(95): Type 'String' needs finalization - not allowed in variant record
[Error] EXPLORAR.PAS(96): Type 'String' needs finalization - not allowed in variant record
[Error] EXPLORAR.PAS(96): Type 'reg_parametros' needs finalization - not allowed in variant record
[Error] EXPLORAR.PAS(97): Type 'String' needs finalization - not allowed in variant record
[Error] EXPLORAR.PAS(98): Type 'String' needs finalization - not allowed in variant record
[Error] EXPLORAR.PAS(111): Type 'elemento' needs finalization - not allowed in file type

¿De que forma se podría solucionar el problema?

Saludos

Última edición por Robert01 fecha: 14-08-2008 a las 03:34:00.
Responder Con Cita
  #2  
Antiguo 14-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola Robert01,
Cuando uno declara un type record obligadamente debe indicarle un tamaño determinado al string. Por ejemplo:
Código Delphi [-]
TCliente = record
  Nombre: string[30];
end;

Los "errores string" se deben a ello.
El error sobre "elemento" se debe a que te falta un end. Necesitas dos end. Uno para el case y otro para indicar el fin del record.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 14-08-2008
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.272
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
Esto se ve raro:

Código Delphi [-]
:string);
__________________
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
  #4  
Antiguo 14-08-2008
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
Gracias por responder

Se trata de un proyecto para analizar el código de programas orientados a objetos escritos en turbo pascal. Estoy viendo como usar objetos y quise probar ese código.
Según indica es un trabajo de fin de carrera.

Saludos
Responder Con Cita
  #5  
Antiguo 14-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola Robert01,
Estuve viendo el documento que aparece en el enlace y por lo que he podido comprender se trata de simular un Analizador Léxico/Semantico para programas escitos en Turbo Pascal, y orientados a Objetos.

Por lo que comprendo del código, lo que hace es dado un programa escrito, extraer la información sobre las clases y su relaciones con otras.

Por ponerte un ejemplo, si en un aplicativo tienes las clases TCliente, TFactura, TDetalleFactura. El programa te mostrará la la información y la relación de estas tres clases: métodos, campos, tipos, etc.

El uso de esos records que ves no es más que para guardar la información que se va leyendo del archivo.

En ningún momento hace empleo de técnicas Orientadas a Objetos el programa. Se basa en bucles, y más bucles explorando el archivo.

Si quieres meterte en la teoria de objetos en Delphi, lo mejor es leer el capítulo 6 de la Cara Oculta. Lo explica a mi modo de ver, bastante bien.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 14-08-2008
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
Gracias Delphius por tomarte el trabajo. Voy a ver la "cara oculta de delphi" ya que tengo el libro hace tiempo.

Saludos
Responder Con Cita
  #7  
Antiguo 14-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
También puedo sugerirte una búsqueda en los foros. Recuerdo que en otras ocasiones se ha dado en algunos hilos algunas explicaciones sobre métodos, eventos, y la manera en como se estructura una clase.
Al menos yo recuerdo haber participado en algunos.

Y puede serte mucho más beneficioso si tienes a mano algún libro o documento que trate los conceptos de POO en forma teórica, independientemente del lenguaje. En este aspecto, libros exclusivos sobre el tema no recuerdo alguno. En teoría cualquier libro de "Introducción a Programación orientada a Objetos" debería servir. Yo no recuerdo el libro, editorial ni al autor del que yo estudié.

Si bien Ian trata el tema de manera simple, se obtiene mayor beneficio si se cuenta con un poco más de lectura teórica sobre POO fuera de los aspectos de algún lenguaje en particular.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
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
problema al imprimir código de barras mguixot Impresión 3 16-11-2006 00:24:13
problema con codigo barra en fastreport hob Impresión 0 12-09-2006 20:33:25
Problema de código Mathom Varios 16 19-11-2005 17:01:27
problema al leer codigo de barras squenda OOP 3 30-06-2004 08:22:58
problema con el codigo superhopi SQL 1 20-05-2003 10:31:07


La franja horaria es GMT +2. Ahora son las 01:13:06.


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