FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
set no funciona
Hola a todos, tengo el siguiente código:
La clase almacena ciertos parámetros de conexión para una BD, el tema es que necesito recorrer los campos de la clase en un bucle, por esto implemento el campo FListCampos, que es un array de TClaveValor, el problema se suscita al asignar valores a los campos a través del array. Nunca ingresa al prodedure setListCamposBD, que es el encargado de asignar lo valores, la llamada que se realiza es la siguiente:
Gracias de antemano por su ayuda. Saludos... |
#2
|
||||
|
||||
No puede declarar procedimiento o funciones dentro de un Record.
cambia: por Y dentro del constructor tienes que crear el/los objectos Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber. |
#3
|
||||
|
||||
Hola olbeup.
Mi primer impulso fué hacer exáctamente la misma observación. Pero me abstuve de decir algo por que tengo un Delphi viejito y no conozco las últimas versiones. Me puse a buscar sobre el tema y parece que ahora sí está permitido Language and Compiler Features Since Delphi 7 Debo reconocer que toma un gran parecido con la funcionalidad que en C++ tiene struct, donde la única diferencia con class es que los miembros de la primera son públicos por defecto y de la segunda lo son privados. Lo que desconozco, y sería interesante saber, si también existe la herencia entre record como existe en el caso de struct y de ser así, de qué tipo. Omnubilados saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 08-04-2015 a las 11:16:19. |
#4
|
||||
|
||||
De momento no hay herencia en tipos registro, Daniel, ni hay planes para agregarla. Aunque en algunos casos es deseable que la hubiera. Los métodos en tipos registro llevan ya algunos años, incluso pueden ser métodos de clase, es decir, que se pueden llamar sin tener una instancia (variable) del tipo en cuestión.
Cabe mencionar que, en Delphi, la visibilidad predeterminada en una clase, es Public o Published, dependiendo de la directiva $TypeInfo/$M. Me permito colocar un extracto de la ayuda: Cita:
Tu método setListCamposBD no es llamado porque en la asignación ListCampos es una expresión de lectura, no de escritura. Es decir, estás leyendo la propiedad matriz ListCampos completa (lo cual llama al método getListCamposBD), y, una vez obtenida, accedes a su elemento de la posición vIndice, el cual, como nos has mostrado, es un record, para escribir el valor de su campo Value. En breves palabras, se lee un array para luego escribir sobre uno de sus elementos. Tu diseño podría funcionar como esperas si cambias por Pero aun así, en lo personal, me seguiría pareciendo un diseño extraño y no muy óptimo. ecfisa: Hace tiempo que barajo la idea de actualizar mi licencia de Delphi 2007 a XE7, y ver la forma de cedértela. Por lo pronto intenté adquirir la actualización en diciembre, pero el distribuidor local no ha atendido mi solicitud de compra (ignoro por qué una empresa no querría vender lo que dice vender). Como sea, este comentario nace del espíritu, que estoy seguro compartimos muchos aquí (y por ello lo hago público), de que sería estupendo que contaras con una versión más nueva de Delphi, dado que eres uno de los impulsores Delphi (independientes) más esmerados de la comunidad hispana. Quizá no sales mucho en la tele, pero tus aportaciones en estos foros no son nada baladíes. Compañeros, imaginemos las contribuciones que podría hacer ecfisa si tuviera en sus manos un Delphi más actual. ¿Hacemos una cooperación? Si prefieren, y Daniel está de acuerdo, podemos tratar los detalles en privado. Saludos. Al González. |
#5
|
||||
|
||||
Cita:
|
#6
|
||||
|
||||
Buenas, a mi me funciona, copie y pege tu implementacion tal cual e hice estas pruebas:
Cuando llamo a ShowMessage me muestra el string invertido Si no te entendi mal. Uso Delphi 2010 |
#7
|
||||
|
||||
Alberto,
Cita:
Cita:
Saludos, Nelson. |
#8
|
||||
|
||||
Totalmente de acuerdo, se merece un MVP
|
#9
|
||||
|
||||
Cita:
Pues a mi no me funciona y utilizo Delphi 7 sobre el enlaze Language and Compiler Features Since Delphi 7 que has puesto. Cita:
Me da error a partir del record en todas las líneas. Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber. |
#10
|
||||
|
||||
olbeup,
Cita:
Cita:
Revisa este código: El código anterior compila en Delphi 2010 pero no en Delphi 7 por todo lo expuesto anteriormente. Espero sea útil Nelson. |
#11
|
||||
|
||||
Aclarado,
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
esta function no me funciona en XE2 y si funciona en D6 | darkbits | Varios | 1 | 06-11-2012 17:00:45 |
UDF no funciona en xp | GustavoCruz | Firebird e Interbase | 15 | 04-10-2011 12:07:00 |
funciona bien en windows 7 64b pero en XP no funciona | ASAPLTDA | Varios | 5 | 06-05-2011 16:24:50 |
$L .Obj no funciona | rastafarey | Varios | 2 | 09-01-2009 19:47:09 |
like no funciona ! | dmasson | Conexión con bases de datos | 9 | 23-03-2004 14:10:50 |
|