FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Se puede hacer un array de procedures
Hola
Explico el caso, supongamos que tengo un comboBox con el nombre de varias funciones, HacerBalance Facturar ComprobarIvaClientes CheckEntregas CheckPedidos etc.... Si el usuario va seleccionando, por que le conviene dos de ellos ( o los que quiera), se puede hacer un array con los procedure, recorrer el array y que se ejecute el procedure dependiendo de la posición del array recorrido. Enfin , lo veo un poco enrevesado, pero si existiera algo así seria tremendo. |
#2
|
|||
|
|||
claro que yes.. pero te convendria mejor del combo un CheckListBox..
Ufff.........
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton |
#3
|
|||
|
|||
no, no es lo que busco, primero quiero que sea un comboBox, porque ocupa menos espacio, aunque un comboBox con checks por el momento no estaria mal, pero luego con ese procedimiento no eliges el orden de los procedimientos, el orden siempre puede variar.
|
#4
|
||||
|
||||
Hola David...
Con el ejemplo que te da pcicom es una base muy buena aun cuando lo quieras implementar con un ComboBox... En el evento Change del ComboBox sería: . . . etc... y así con todos los procedimientos que quieras elaborar... Saludos |
#5
|
|||
|
|||
Bueno, estan lo que seria array de procedure of object...
tiene 5 buttons los cinco asignados el onbuttonclick a Button1Click; (los nombres tienen q ser Button1,Button2, etc...) en tu caso seria usar
saludos Última edición por coso fecha: 21-06-2008 a las 15:35:43. |
#6
|
|||
|
|||
Lo que ha puesto coso es lo que queria, he realizado un pequeño ejemplo que adjunto.
|
#7
|
|||
|
|||
lo mismo, solo que un poco mas simplificado ...
; saludos PD : seguro que hay tambien alguna manera de hacer para ya rizar el rizo Última edición por coso fecha: 21-06-2008 a las 16:44:00. |
#8
|
|||
|
|||
Bueno he seguido investigando y me he encontrado con un problema.
supongamos esto :
En todos los puntos donde le he pasado un argumento me da este error: Incompatible types: 'Procedure of object' and 'procedure, untyped pointer or untyped parameter' |
#9
|
|||
|
|||
Si, es normal. El array que tu tienes lo has creado para objetos tipo procedure a secas, en tu ultimo codigo estabas intentando meter procedures con argumento alla. Seria como meter un TBitmap en un array de TShapes, por ejemplo. Si lo que quieres es hacer un array con procedures que le mandas argumentos, o con funciones, deberas declararlo de otra manera
lo que se esta realmente guardando en el array es la direccion de memoria donde se encuentra cargada dicha funcion, su puntero o pointer. Para tener varios tipos de funciones (con varios tipos y numero de argumentos) lo mejor es crear un solo tipo con una cadena de argumento y luego parsearlos. Ten en cuenta que es trabajoso, al menos hacerlo la primera vez , por lo que quiza no te acabe a salir a cuenta. Te pongo un ejemplo
PD: en tu codigo, estas usando un array dinamico, esto es, sin indicarle la cantidad de elementos que tiene. No se si se le tiene que asignar o no memoria en este caso, pues es, a lo sumo, un array de enteros. A ver si alguien del foro lo aclara :/ Venga, saludos. Última edición por coso fecha: 21-06-2008 a las 18:36:50. |
#10
|
||||
|
||||
Hola David, disculpa que te pregunte: ¿Van a cambiar mucho esos procedimientos? ¿Puede que en algún momento se agreguen más? ¿Tienen algo en común?
No me convence mucho la idea de tener arrays de procedures. Yo más bien considero que puede ser más indicado emplear una fábrica o Factory. Posiblemente alguna Fabrica abstracta. Habría que estudiarle un poco la idea pero me parece más indicado y certero tener clases "Productos" y dejar que cada una asuma la responsabilidad de hacer su propio algoritmo. Y luego una Fábrica crea la/s clase/s Productos adecuadas. Si no se me entiende la idea, te recomiendo la lectura de estos temas: Wikipedia (Español) Fábrica (o Factoría) Abstracta Fábrica (o Factoría) About.com (Inglés) Factory Patterns Por el tema de que se pueda elegir más de una cosa por hacer... habría que ver de que manera hacerlo. Lo más simple es tener un FOR e ir creando y destruyendo los productos que se necesiten: for cantidad_de_productos hacer: Crear_producto(¿NombreProducto?) Producto.Hacer() LiberarProducto() No se si se entiende la idea. No se si estás puesto con el tema de clases y el uso de patrones. Pero al menos a mi me parece más adecuado el uso de una Fabrica que estar empleando esos arrays. Saludos, |
#11
|
|||
|
|||
No. Yo creo que lo mejor en tu caso son los arrays, incluso la solucion sencilla de fenareth o pcicom ya te sirven.
saludos. |
#12
|
||||
|
||||
Cita:
Si sólo van a existir pocos métodos a realizar el tener así puede ser viable. Mas bien yo ofrecí ese punto de vista por lo que estuve viendo a como se estaba llevando el hilo: funciones y procedimientos con o sin parámetros... muchos corchetes... Imaginate si en vez de esos 4 o 10 son 20. El código puede resultar un tanto ilegible y engorroso. ¿Y si hay métodos que comparten ciertas similitudes? ¿Y si luego es necesario ampliar las posibilidades? Y algo que por el momento no se contempla ¿Y si un proceso o actividad necesita obligadamente de una secuencia determinada? El uso de una fábrica puede facilitar muchas cosas. Por ejemplo, veo que en su ejemplo inicial menciona a CheckEntregas y CheckPedido. ¿Que diferencia a una de otra? ¿Se puede compartir algo en común y aligerar el código? Para situaciones en donde el código a lo largo del tiempo va a ser estable la manera en que ofrecen sus códigos puede resultar viable. Pero para situaciones en donde puede llegar a existir código redundante, o bastante similar, en donde no se prevee la cantidad la cantidad de opciones y "productos" a considerar considero que el uso de una Fábrica es más adecuado. No pretendo imponer mi idea. Mas lo digo para que David analice objetivamente su situación. Saludos, |
#13
|
|||
|
|||
ok. Las discusiones sobre teoria abstracta no me van, puesto que transforman las soluciones en problemas.
saludos. Última edición por coso fecha: 21-06-2008 a las 20:48:44. |
#14
|
||||
|
||||
Cita:
Me da un poco de mal sabor la forma en que escribiste Yo ofrecí un punto de vista solo eso. No se trata de una discusión. ¿Que causan problemas? ¿A que te refieres? Yo simplemente hago un comentario y doy un punto de vista analítico a la situación pero no por ello va a traer problemas. Es posible que mi punto de vista no sea adecuado y esté equivocado. Pero no por ello debo mantenerme callado. Es preferible prepararse y examinar mejor un problema antes de dar un paso. En ocasiones tener un diseño cerrado es muy favorable, y en otras no. La elección de una Fabrica tiene sus desventajas, como muchas cosas de la vida, pero no por ello lo constituye una mala elección. Si he dicho algo malo dime. Tu y yo no sabemos lo que planea David, el verá y analizará las diversas alternativas y optará por la que le es más favorable. Espero que tomes a bien mis comentarios. Saludos, |
#15
|
|||
|
|||
ok. Las discusiones sobre teoria abstracta no me van, puesto que transforman las soluciones en problemas.
saludos. |
#16
|
||||
|
||||
Bajo mi punto de vista, no me ha parecido una discusión sobre "teoría abstracta", sino que ha dado una opción igual que has dado tu y no hacia falta este segundo mensaje repetido, quizás no sea tu intensión, pero suena a: "cierra la boca, me importa una mierda tu opinión" xD
Saludos. |
#17
|
||||
|
||||
Pensé que solo a mi me había sonado a eso...
Delphius siempre ha dado sus opiniones basadas en conceptos más profundos, a veces no nos preocupamos en analizar tan en detalle ciertos problemas, mientras nos sirva la respuesta que nos den hasta ahí lo dejamos... Sus aportaciones son tan valiosas como las tuyas coso y si a David le interesa tomarlas en cuenta qué bien por él. Si no, pues tal vez alguien más que lo lea le interese... Saludos y aquí no pasa nada... todos tan amiguitos como siempre |
#18
|
||||
|
||||
y ahora, que hacemos con las apuestas que habien en esta pelea?, era la estelar de la noche
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#19
|
||||
|
||||
Cita:
que no la estelar de esta noche eran las ramitas?
__________________
Conoce mi blog http://www.edgartec.com |
#20
|
||||
|
||||
Cita:
Es una bromita, viva la paz |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Puede Delphi ejecutar procedures no compiladas | sysmar | Varios | 3 | 26-03-2008 17:13:02 |
Hacer un insert o un update en un campo array | David | Firebird e Interbase | 4 | 27-04-2007 19:14:13 |
Se puede hacer un multi FTP? | JuanErasmo | Internet | 4 | 08-11-2006 16:38:09 |
Se puede hacer esto ??????? | AMINOA2R | Firebird e Interbase | 2 | 21-10-2005 17:50:59 |
se puede hacer | armando | Conexión con bases de datos | 6 | 20-05-2004 05:12:26 |
|