FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
Delphi y OO
No se como si usa una Property. Tengo una property que lee y escribe en una variable TString y otra en una TStrinList. Pues no se donde esta StringList es llenada, pues todo es object. Tengo duda con Property.
No consigo usar el Break Point en mi Delphi XE. En ninguno proyecto funciona, ninguno mismo. Como pober mis DCU en un Folder y mi EXE en otro, pues en el Delphi XE no se como configurar. Gracias a todos. |
#2
|
||||
|
||||
Hola Paulao,
Para poder ayudarte apropiadamente sería de mucha ayuda que nos comentes como está diseñada la clase. ¿Puedes mostrarnos al menos una parte de su código? Respecto lo de problemas con Delphi XE no puedo asesorarte, no utilizo dicha versión. Saludos, |
#3
|
||||
|
||||
Hola Paulao, para el tema de las propiedades, es mejor que nos pongas código de cómo están definidas, tal y como ha dicho Delphius, de otra forma es difícil saber qué necesitas.
Para el tema de los breakpoints, mejor seguir en el hilo original y no mezclar.
__________________
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. |
#4
|
|||
|
|||
Esta primera Unit es las classes que uso y la otra llamada Main es el programa. Este programa solo tiene un Form(Main). El haz referencia a otras classes, pero solo puzo una por el espacio y creo que una solo es lo suficiente, ok? Voy hacer en dos post, pues estas mui largo en un unico post.
|
#5
|
|||
|
|||
Anejo las Unit Main y la Unit con las classes. No fue possible ponere aca, pues tine mas que 20000 caracteres.
|
#6
|
|||
|
|||
Hola paolo,
no te he acabado de entender, pero si lo que quieres es crear una propiedad tipo TStrings se hace de este modo
Hay algo en la ayuda de Delphi, por si he puesto algun error. Un saludo. |
#7
|
|||
|
|||
No, realmente mi gustaria de entender esto. Si es lo mismo que las variables de instancia en Java y etc... Para sirve las property, su uso y etc...
|
#8
|
||||
|
||||
Cita:
Hasta donde entiendo y recuerdo, las propiedades (property) en delphi no tienen equivalente en Java. Sólo he visto algo parecido en PHP 5, y tiene sus bemoles. Podríamos decir, aunque no es del todo cierto, que una propiedad es una forma elegante de acceder a una variable de instancia privada. En Java puedes tener, por poner un ejemplo, la clase Persona con un campo privado (variable de instancia) llamado nombre. En este tipo de lenguajes, para acceder a tal variable, lo usual es definir métodos de acceso como getNombre (para leer el valor) y setNombre (para establecer el valor). Así, podrías tener un código de este estilo: Código:
nombre = p.getNombre(); // o bien p.setNombre("roman"); Código:
p.nombre = "roman";
Podrías hacer uso de los métodos al igual que en Java:
Pero, en delphi puedes hacer algo mucho mejor. Puedes declarar una propiedad pública Nombre que use esos métodos de acceso:
En código puedes usar directamente dicha propiedad:
Sintácticamente hablando -y ésta es la gran ventaja- es como si "accedieras" directamente al campo privado:
pero, en realidad, el compilador, cuando ve la línea
genera este código: (o parecido)
Esto es, aunque en apariencia estamos asignando la cadena 'roman' a la variable privada FNombre, en realidad la asignación pasa por llamar a la función SetNombre. Lo mismo si queremos conocer el valor de la variable privada:
Al hacer esto, el compilador genera la llamada:
En resumen, las propiedades en delphi nos permiten acceder a atributos de un objeto como si lo hiciéramos directamente, pero siempre pasando por métodos de acceso. La razón de esto o su finalidad pues es la misma que en Java y otros lenguajes: proteger el ingreso y egreso de datos. Siguiendo el ejemplo, el método SetNombre podría estar definido así:
Pero también podría ser así:
forzando así, que los nombres estén en mayúsculas. Ahora bien, dije al principio que definir una propiedad como una forma de acceder a una variable privada no sería del todo exacto. Un propiedad no necesariamente refleja directamente el valor de un campo del objeto. Continuando con el ejemplo, podríamos tener nuestra clase:
con dos propiedades: Nombre y Apellidos. ¿Qué tal si queremos saber el nombre completo de la persona? Podríamos definir una función que haga el trabajo:
La función simplemente devolvería la concatenación del nombre y los apellidos. Podemos usar el método como siempre:
Pero podemos hacerlo más elegante (y legible) definiendo una propiedad:
con la cual el código se hace más limpio:
En este caso, NombreCompleto es un atributo de la clase TPersona, pero no hay una variable de instancia que refleje su valor. Más aún, al no haber declarado un método Set (cláusula write), la propiedad es de sólo lectura; no hay manera, como es lógico, de asignar un valor a P.NombreCompleto. Así pues, las propiedades en delphi no son más que aditamentos sintácticos o sintactic sugar, es decir, elementos de sintaxis que son prescindibles pero que hacen la vida más sencilla. Nota, por último, que la declaración de la clase puede hacerse aún más prolija si se mueven los métodos de acceso a una sección privada:
// Saludos Última edición por roman fecha: 02-03-2011 a las 19:49:59. |
#9
|
||||
|
||||
Se puede decir más fuerte pero no más claro amigo Roman. Tiene usted un 10 sobresaliente felicitado
No está demás decir que todo lo dicho está perfectamente expresado en un libro ampliamente citado aquí y en otros lugares: La Cara Oculta de Delphi 4. Es más, hasta diría que en en anteriores ocasiones te lo hemos sugerido a ti Paulao. En el FTP está disponible para su descarga. Saludos, |
#10
|
||||
|
||||
Más claro... no se puede
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#11
|
||||
|
||||
Roman, es una pasada, hace honor a tu legado.
Cita:
P.D.: Aquí y ahora hemos aprendido los que sabían y los que sabían bastante. |
#12
|
|||
|
|||
Roman, muchas gracias por el post. Este me lo dio un gran adelanto en mis dudas. Resolvio la duda con relacion a Property en Delphi. Gracias a usted y a los demas que me lo ayudaron en es negocio. Gracias!
|
|
|
|