FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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 |
#2
|
||||
|
||||
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. |
#3
|
||||
|
||||
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; Saludos! |
#4
|
||||
|
||||
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" Espero te sirva de algo . |
#5
|
||||
|
||||
Muy buenas todas la alternativas, desde lo sencillo a lo aprentemente complicado... todas muy elegantes
Muchas gracias Your friend StartKill Lima-Perú |
#6
|
||||
|
||||
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 |
#7
|
|||
|
|||
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 :. |
#8
|
|||
|
|||
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 |
#9
|
||||
|
||||
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 |
|
|
|