Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-09-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por jachguate
será un verdadero pan para usuarios que quieren introducirse a la programación de componentes que responden a mensajes (del sistema o definidos por tu programa).
Mmmm... sí... quizás.

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
Responder Con Cita
  #2  
Antiguo 03-09-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Cool

Cita:
Empezado por roman
Mmmm... sí... quizás.
mmmm... si. seguro.
Cita:
Empezado por roman
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.
Tenes toda la razón sobre la falta de detalles. Además el estilo de redacción, con todo en un parrafo hace mas dificil captar las ideas.. 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:
Empezado por roman
me cuesta trabajo ver qué relación hay en todo esto con aligerar el ancho de banda para consultas a un servidor SQL Server.
Pues a mi no me ha costado tanto!.
No hay relación alguna!.

Cita:
Empezado por roman
en lugar de usar herencia visual que deja un código mucho más prolijo.
Pienso que una combinación de ambas técnicas podria ser muy poderosa! (sigue dependiendo, claro... )

Cita:
Empezado por roman
En fin, sin más detalles es imposible decir casi nada sensato.
Si.. mejor nos callamos la boca..

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 03-09-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por jachguate
Si.. mejor nos callamos la boca..
¡Hombre! No hay que ser tan drásticos

¿Cómo callarme esta gran duda que tengo?

¿Qué diantres es Centura?

En mi vida había oído hablar de ese lenguaje
Responder Con Cita
  #4  
Antiguo 03-09-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Cool

Cita:
Empezado por roman
¿Qué diantres es Centura?
Pues no se.. pero seguro que no tiene herencia visual..
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 03-09-2004
LucianoRey LucianoRey is offline
Miembro
 
Registrado: feb 2004
Posts: 73
Poder: 23
LucianoRey Va por buen camino
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:
if wParam = 0
Myvalue=ArrayIn[0]
if bConsulta
Enable:=False
elseif wParam=2
ArrayOut[0]:=MyValue
vCambio:=(ArrayIn[0]=ArrayOut[0])
elseif wParam=3
MyValue:=''
if wParam = 0//esto en el caso de botones como inicializar ó grabar
if bConsulta
Hide:=True

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.
Responder Con Cita
  #6  
Antiguo 04-09-2004
LucianoRey LucianoRey is offline
Miembro
 
Registrado: feb 2004
Posts: 73
Poder: 23
LucianoRey Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 04-09-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:03:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi