Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-01-2004
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Poder: 21
StartKill Va por buen camino
Enviando y reciviendo parametros

Hola amigos

Estoy haciendo una aplicacion y resulta que uno de mis formularios va ha ser llamado varias veces por otros formularios...

Por ejemplo: tengo un formulario de clientes donde le doy mantenimiento-añade, modifica, elimina.... y tengo otro formulario que llama a este pero quiero desactivar los botones de mantenimiento, Deseo poder enviarle un parametro a dicho formulario(como lo hago?).

En estos momentos estoy superando este inconveniente utilizando variables publicas (antes de cada llamada asigno un valor a VarPublic y de acuerdo al valor activo).

Gracias de antemano

Your friend

StartKill
Lima-Peru

Nota: DELPHInitivamente cada día el Delphi va tomando el mercado
Responder Con Cita
  #2  
Antiguo 28-01-2004
Avatar de orfeo
orfeo orfeo is offline
Miembro
 
Registrado: may 2003
Posts: 99
Poder: 22
orfeo Va por buen camino
no se si te entendi bien...
Queres que el formulario se comporte de distintas formas dependiendo de como y de donde lo llames.

Si es eso, como lo estas haciendo esta bien, si el form se llama form1, podes hacer 'form1.componente.value:=cValor'

Otra que se me ocurre es que hagas una herencia de formularios.

Y otra mas linda y simple es que el formulario lo maneges con estados
+ definis una var global state
+ luego dependiendo de la variable, con un if/case of agas que el form se conporte distindo en cada valor de state.

Última edición por orfeo fecha: 28-01-2004 a las 03:26:00.
Responder Con Cita
  #3  
Antiguo 28-01-2004
Avatar de Nuria
Nuria Nuria is offline
Miembro
 
Registrado: may 2003
Posts: 531
Poder: 22
Nuria Va por buen camino
Hola!

Yo lo que normalmente hago, es lo siguiente:

El formulario tiene una propiedad llamada tag, hay le doy un valor. Cuando me creo el form según el valor que tenga tag, activo unas cosas o otras. Y no me hace falta crearme una varible global.

Código:
Form1.Tag := 1;
Espero que te sirva.

Saludos!
Responder Con Cita
  #4  
Antiguo 28-01-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Yo usaria un procedimiento público:

Código:
 
type
TApertura =(Ver, Modificar, Anadir, Borrar) ; // depende de lo que quieras

procedure TFRMXXX.ModoApertura(const modo:TApertura=Ver );
begin
 if modo = Ver then
 begin 
   // inhablito controles
 end;
 TFRMXXX.ModoActual := modo;
end;

//Así desde cualquier Forma puedes hacer la llamada:
ModoApertura(Ver); ó  ModoApertura() // por defecto a "Ver"
Si necesitas saber el modo actual, puedes usar una variable publica (ModoActual)


Espero te sirva de algo .
Responder Con Cita
  #5  
Antiguo 28-01-2004
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Poder: 21
StartKill Va por buen camino
Muy buenas todas la alternativas, desde lo sencillo a lo aprentemente complicado... todas muy elegantes

Muchas gracias

Your friend

StartKill
Lima-Perú
Responder Con Cita
  #6  
Antiguo 28-01-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
StarKill, te comento que ya alguna vez me "sentí muy listo" haciendo un formulario que se adaptara según el caso; mostraba u ocultaba controles, hacía o no algunas validaciones, buscaba en unas u otras bases, etc. según el caso con la "genial" idea de reutilizar el código.

Pero bastante caro he pagado eso. El resultado fué un complejísimocódigo lleno de ifs-elses y cases que daba dolor de cabeza sólo mirarlo.

En mi caso llegué a la conclusión de que la mejor opción es la herencia de formularios. Dejar el código común en el formulario ancestro y el código de cada caso en el respectivo descendiente. A la larga tendrás un código mucho más entendible y claro y por ende más fácil de mantener.

// Saludos
Responder Con Cita
  #7  
Antiguo 28-01-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Estoy de acuerdo con Roman (y no es de chupamedias ), para mis ABMs yo me cree una clase ancestra con los procedimientos y funciones básicas para el manejo de datos (Búsqueda, alta, modificación y eliminación de registros, etc).

De esta manera simplifico mucho la tarea así como el control de errores. Mas que una alternativa me parece algo a tomar en cuenta.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #8  
Antiguo 29-01-2004
uhilari uhilari is offline
Miembro
 
Registrado: ene 2004
Posts: 21
Poder: 0
uhilari Va por buen camino
Exclamation

Hola a Todos.

Estoy de Acuerdo con roman y gydba, no debemos olvidar que Delphi es Orientado a Objetos, ¿por que no aprovechar esto? usar la herencia de formularios siempre es una mejor opción que crear formularios con muchos Ifs o Cases, estos codigos cada vez se hacen mas grandes y cuando quieras aumentarle alguna otra funcionalidad pues tendras que añadir mas cases o ifs lo cual hace el codigo mas tedioso e inentilegible. Los exorto a usar mas el Object Pascal para reutilizar el codigo

Bye- Suerte
Responder Con Cita
  #9  
Antiguo 29-01-2004
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Poder: 21
StartKill Va por buen camino
Buenas

DELPHInitivamente tienen razón y les agradezco por preocuparse que mi código sea legible en un futuro

A medida que he ido creciendo mi código opté por clasicar algunos formularios comunes de la siguiente forma (hey, no soy un gran maestro hago lo que puedo)

Tengo un solo formulario para dar mantenmiento de tablas referenciales que solo son de 4 campos, mas solo valido mi primarykey y uno otro que no sea null.

Para el mantenimiento de los clientes es otro formulario.

Pero, queria que estos formularios se comporten diferente segun quien lo llame (habiltando botones, un campo mas, un campo menos,... ya saben)

Y ok, perfect, lo consegui con la ayuda de todos Uds.

De seguro que tendre que utilizar herencia mas adelante (a un no esta muy grande my-program, pronto tendre que reutilizar algunos formularios )

Your Friend
StartKill
Lima-Peru
Responder Con Cita
Respuesta



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 18:48:25.


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