![]() |
Problemas al crear mi primera clase
Hola, siento si esta duda ha sido posteada anteriormente, he usado el buscador y no he encontrado nada que respondiera a mis dudas.
Para un programa que estoy haciendo he creado una clase, llevo tiempo programando, pero nunca me había surgido crear una clase en delphi, ya la he terminado y me han surgido varios problemas. 1-Uno de los objetos que contiene esta clase es un TStrings, al intentar llamar a cualquier función de la clase TStrings me da un error, he probado a crear el objeto desde el constructor de mi clase de esta manera: Código:
Cadenas:=TStrings.Create; De todas formas yo pensaba que con poner 'inherited' al principio del constructor de mi clase ya se inicializavan todas las variables de esta. 2-Para crear un objeto de mi clase tengo que llamar al constructor con: Código:
Objeto:=TClase.Create; Código:
constructor TClase.Create; |
Código:
//Cadenas:=TStrings.Create; Cita:
Saludos |
Hola...
¿Podrías poner el código de tu clase? De esta forma podríamos ver que es lo que estás haciendo mal y darte sugerencias y soluciones... Saludos... |
No sé si haya otros problemas pero no puedes construir un objeto de la clase TStrings. Esta es una clase abstracta, lo que quiere decir que tiene métodos que sólo están declarados pero no implementados. Son las clases derivadas las que implementan dichos métodos. En su lugar, usa TStringList.
// Saludos |
Cita:
Con "Objeto:= TClase.Create" estas llamando al constructor de tu clase, el cual llama al constructor heredado recursivamente, cuyo último fin es asignar a Objeto(puntero) una dirección de memoria que se corresponde a la clase creada. Tu suposición de que los objetos se crean automáticamente sólo con declararlos en las variables por tener definidos en su estructura interna un constructor y un destructor es errónea. |
Muchas gracias por vuestras respuestas, no esperaba tanto y en tan poco tiempo. No he tenido tiempo de probarlo, en cuanto tenga un ratito que pueda dedicarle a programar os cuento qué tal me ha ido con vuestra ayuda, que seguro que bien.
PD: Los códigos que puse no pertenecen a mi programa, lo puse de esa manera para que fuera más aclarativo. Saludos. |
Acabo de probar lo que dijo cloayza de inicializar el TStrings:
Código:
Cadenas:=TStringList.Create; |
La franja horaria es GMT +2. Ahora son las 12:49:57. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi