![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
No me convence. Realmente creo que el compañero LucianoRey debería repensar un poco su objetivo. Entiendo su necesidad de reusar código pero no me parece adecuado algo así tan general. Creo que a la larga es contraproducente. Realmente es muy difícil de saber sin más detalles de lo que realmente desea. Con la información que nos da la situación es muy confusa; en verdad me cuesta trabajo ver qué relación hay en todo esto con aligerar el ancho de banda para consultas a un servidor SQL Server. Creo que es demasiado abarcar. Aquello de usar los mismos mensajes para determinar si el formulario en sí dice 'alta', 'modificación' o 'consulta' no parece tener nada que ver con el comportamiento que otras componentes puedan tener ante los mensajes. Y no sólo eso; aunque no lo dice, suena a que va a utilizar el mismo formulario para por lo menos tres cosas distintas lo que seguramente implicará un uso extenso de condicionales para mostrar u ocultar determinados controles dependiendo del 'mensaje' que se le mande en lugar de usar herencia visual que deja un código mucho más prolijo. En fin, sin más detalles es imposible decir casi nada sensato. // Saludos |
|
#2
|
|||||
|
|||||
|
Cita:
![]() Cita:
Pero eso no resta calidad al artículo... al contrario, le añade un plus.Con respecto de la idea de reusar código... creo que podria valer la pena en algunos casos, pero habrá que evaluar siempre. Cita:
No hay relación alguna!. Cita:
)Cita:
![]() ![]() ![]() Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#3
|
||||
|
||||
|
Cita:
¿Cómo callarme esta gran duda que tengo? ¿Qué diantres es Centura? En mi vida había oído hablar de ese lenguaje ![]() |
|
#4
|
||||
|
||||
|
Cita:
![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#5
|
|||
|
|||
|
Evento nevo en objeto
Bueno, perdón por la respuesta tan lenta pero con esto de los horarios, mientras yo duermo, ustedes trabajan, que bueno encontrar gente como ustedes .1.- De acuerdo con jachguate, "artículo digno de una revista o de un buen libro de programación en Delphi" , aunque yo no tenga tanta experiencia en esto, ni sea como ustedes de extraordinario. 2.- Centura es uno de tantos lenguajes que han pasado por aqui y la verdad si, menos robusto que Delphi, si tenia herencia visual y en el caso que planteo la definición de este evento era menos complicada, lo definiamos como una constante y ya lo podiamos usar en cualquier componente, aca la diferencia es que no habia un inspector con propiedades y eventos, los eventos los teniamos que llamar escribiendolos, bueno de repente ya no habia soporte en nuestro pais y lo tuvimos que dejar. 3.- Si, la idea es la que tiene Roman, reusar codigo, pero como dije antes estoy en ese proceso interminable del aprendizaje, y con esos consejos pues si lo cambio a lo que ponen como ejemplo. Bueno aqui expongo lo que deseo y lo que hacia en Centura, para aclarar un poco, aunque creo ya lo hicierón ustedes: Si nos pedian una aplicación, en la parte de actualización, usabamos la misma pantalla para alta, modificación y consulta, antes de entrar a esta estaba la que contenia el grid con la lista de registros en la base y sobre esta lo clasico, doble click al renglón-modificacion, boton-alta y boton consulta, que nos llevaba a la del registro completo, como parametros mandabamos: - boton cambio ó consulta = un arreglo con los datos del registro seleccionado, boton alta = un arreglo vacio, - una bandera para indicar si era alta ó modificación, - una bandera para indicar si era consulta, - y un arreglo con el mismo numero de elementos del registro seleccionado, pero en blanco. Ahora, en la forma del registro completo, todos nuestros componentes tenian un evento "Usuario", que mas bien era un mensaje, bueno al llegar a esta forma, habia un evento CreateComplete, que nos indicaba cuando la forma y todos sus componentes ya se habian creado, dentro de este evento enviabamos este mensaje-evento con wParam=X y lParam=X, a todos los componentes incluidos en la forma, cada componente en su evento "Usuario", tenia un codigo que en efecto era : Código:
y algunos mas, con esto cuando entrabas a la forma se enviaba el mensaje 0 y se asignaba en cada componente su valor del registro(de la tablla), si el usuario cambiaba algun(os) dato(s) de la forma y se arrepentia de ello tenia un boton Inicializar que al darle click enviaba el mensaje "Usuario" con 0 a la Forma y esta al recibir el mensaje lo reenviaba a todos sus componentes, esto como ven volvia a poner los valores iniciales y si ademas era consulta deshabilita el componente, si el usuario queria limpiar todos los campos tenia un boton Limpiar que al darle click enviaba el mensaje "Usuario" con 3, si queria grabar el registro al darle click al boton Grabar enviaba el mensaje "Usuario" con 2, esto comparaba el valor inicial del componente con el actual, si no eran iguales entonces tenia caso grabar el registro, en el caso de consultas los botones de Grabar, Inicializar ó cualquier otro que sobrara los desapareciamos de la pantalla, bueno espero haber sido mas claro esta vez. El seguimiento de estos mensajes era como sigue: Forma Inicial - si me llega un evento "Usuario", mensaje a hijos(componentes) Componente - si me llega un evento "Usuario"(siempre del padre), ejecuto acciones si es necesario Componente(acción) - si mi comportamiento cambia mi entorno, mensaje a mi Padre(Forma) En cuanto al ancho de banda con Sql, estaba con la idea (falsa creo), de que usando dbEdit's y dblookupcombo's, mantenia la conexión viva mientras estaba en mi pantalla de modificación ó consulta, por eso la inquietud, me dije, "bueno, mete tus campos a un arreglo, ese arreglo lo mandas a la pantalla de edición y ahi por medio de un evento Usuario lo haces como antes, con eso en lo que consultan ó cambian datos, sueltas la conexión y listo", y no, lo que tengo en mi pantalla es el cache de lo que me trae del servidor, bueno disculpen mi ignorancia, leyendo estos foros y Delphi estoy aprendiendo mas, saludos y otra vez gracias por sus respuestas. P.D. Me han de disculpar la ortografia pero estoy tan acostumbrado a escribir con mayuscula y sin acentos, que no me sale, pero igual, un curso de ortografia no me caera mal. |
|
#6
|
|||
|
|||
|
Evento nuevo en objeto
Mil gracias por todo, ahora voy a mi casa, regreso hasta el lunes pero ya les platicare lo que haga en mi casa, con las sugerencias que me han dado, esto porque en mi casa no tengo internet, estoy por hacer un sistema para un area de programacion y presupuesto, donde capturan una serie de datos respecto a eventos artisticos y culturales que tienen museos, escuelas, teatros, etc., cuantos piensan hacer, cuanta gente creen que va a asistir, despues, cada mes van a alimentar con lo que hayan hecho hasta el momento y sobre eso generar estadisticas, al año los resultados de las metas programadas con lo cumplido, asi que tengo mucho trabajo y muchas cosas que aplicar, saludos y que la pasen bien.
|
|
#7
|
||||
|
||||
|
Creo que simplemente estas retorciendo todo... quizas en Centura esa era la mejor forma de hacerlo, pero antes de tratar de seguir trabajando sobre la misma idea, te recomiendo que revises y trates de comprender la forma que nos sugiere delphi.
Puede ser con controles dbAware, que ya se encargan en buena parte de todo ese rollo. O puede ser con controles no dbAware, pero desde otra perspectiva. Por ejemplo, derivando los que te sirvan comunmente, y haciendo que respondan a alguna Interfaz, que permita al formulario realizar las mismas operaciones... pero sin el envio de mensajes del sistema, sino con una representación mas orientada a objetos. En fin, habrian muchas otras formas de enfrentarlo, en el caso de controles no dbAware. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|