![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Procedure doble Boolean case
Muy bien día a todos y felices fiestas, alguien de ustedes ya resolvió el dilema de como hacer
Digamos tengo 5 o 4 controles y por determinado evento un control queda visible y los demás ocultos, pero para que no se haga extenso el código a ocupar, pensé si existe la forma de crear un Procedure o función de doble Boolean en dónde 1 sea a true o false y el otro su contrario dentro del Procedure con un CASE, dónde lo que esté en 1 opción sea visible y en la otra opción no visible, espero haber sido claro, saludos |
#2
|
||||
|
||||
Yo reconozco que no te acabo de entender...
No se si quieres hacer un procedimiento para escribir menos y activar/desactivar todos los botones "de golpe".
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Buen día más o menos, desactivar todos menos 1, o activar 1 menos lo demás algo así, ejemplo: tengo 4 panel uno sobre otro, al entrar al formulario solo mostrar 1 y los demás ocultos, al precionar 1 Burton, ahora ocultar el visible y activar el 2 un ejemplo, osea el Procedure tendría la opción de colocar cuál panel será el true y los demás estarán en false, espero allá Sido claro
|
#4
|
||||
|
||||
Cita:
Hay varias formas de hacerlo de forma simple, de forma que puedas identificar todos los elementos del grupo.
![]() Con un procedimiento como este:
Puedes visualizar uno y ocultar el resto.
En ejecución será algo así: ![]()
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
|||
|
|||
Cita:
Neftali [Germán.Estévez] [becario] |
#6
|
|||
|
|||
lo que aun no logro comprender es como dejar a todos los paneles ocultos con un boton? o simplemente pondria
OcultarVisualizarPaneles(); asi, pero no funciono y otro problema que tuve es si son 20 paneles y ocupo el panel1 y el panel 5 visbles y los demas no visibles? como podria controlar los que se ven y por ende todos los demas ocultos o enabled les agradesco |
#7
|
||||
|
||||
Hola.
Cita:
Cita:
Ejemplo de uso:
Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#8
|
|||
|
|||
comprendo que seria facil ese codigo pero mi idea era ampliar el codigo anterior, no se complementarlo para poder ejecutar el ocultar todo, o mostrar los paneles requeridos y los demas ocultos. aun sigo buscando la forma de ue sea en un solo procedimiento, se que hay muchos capaces de eso y mas
|
#9
|
||||
|
||||
Hola.
No te entiendo... ¿ Lo que quieres es que solo se muestren algunos y otros permanezcan ocultos ? Pues oculta todos y muestra luego los que desees:
Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#10
|
|||
|
|||
tenia pensado algo as como tu procedimiento, pero con la opcion de ocultar todos
que pudiece quedar algo asi para definir que todos esten ocultos y asi para solo mostar los indicados y todos los demas ocultos
pero en un solo procedimiento se podra ? |
#11
|
||||
|
||||
Eso es un solo procedimiento
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#12
|
|||
|
|||
hola se que es raro pero me puse a pensar un poco y no se pero creo existe una forma mm deja ver si me doy a entender
no se, quiero pensar que puede contener el procedure un if anidado o algo asi si es false no se ve nada si es true se ven todos pero si es true saber cuales no se ocultaran si no se define nada entonces todos se veran mmmmmm se prodra en un solo procedure, creo por algo desde el principo puse doble boolean sera para mi un crack quien pueda ayudarme, y pueden explicarme como subir mi proyecto completo en el foro? muchisimas gracias |
#13
|
||||
|
||||
A ver, estás confundido como cualquier novato, a todos nos ha pasado.
Lee y prueba con atención el ejemplo que te ha dado el compañero ecfisa.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#14
|
||||
|
||||
Tu problema lo puedes dividir en tantas subrutinas como sea necesario para que sea más sencillo de programar y luego puedes agrupar todas esas en un único procedimiento que se comporte como tu quieres e internamente llame a cada una de las opciones que te han propuesto según lo necesites.
Así en tu código verás una única línea con la sintaxis que quieres e internamente usará cualquiera de las opciones que te han propuesto. |
#15
|
||||
|
||||
Cita:
La duda es si debe hacerse así o no (yo creo que no). No siempre "juntar" todo en un procedimniento acaba siendo mejor. Lo que quiero decir es que juntar en un procedimiento "cosas distintas" utilizando más parámetros, aunque a primeras puede parecer mejor, a la larga puede resultar peor. Mezclas cóodigo de cosas distintas y aunque es más corto en líneas, acaba siendo más complejo de programar, de depurar, de leer,... En este caso, en lugar de una cabecera como la anterior, yo optaría por hacer 2 procedimientos (2 cabeceras):
Es posible que luego uno utilice internamente el otro, pero de esta forma es más sencillo de entender y de utilizar. 2 trozos de código pueden dar el mismo resultado, pero no necesariamente quiere dec¡r que sean igual de correctos. No se si me explico...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#16
|
|||
|
|||
Muy buenas tardes, hice una mescolanza de codigos que me funcionaron, pero me gustaria saber si existe forma de reducir el codigo, este es el codigo que gracias a todos ustedes agrupe de esta forma, espero tengan tiempo para echarme la mano.
y de esta forma llamo el proceso,con estas opciones
|
#17
|
|||
|
|||
que tal pues ste es el final del codigo, creen que se puede comprimir mas o ya no se puede, algun aporte para optimizarlo un poco mas, gracias a todos y felices fiestas
y de esta forma lo ejecuto, sus distintas variantes
|
#18
|
|||
|
|||
hola!
En tu código veo que hay una estructura begin/end que queda fuera de todos los bucles, y se puede eliminar (lo he marcado con //* *//), salvo que sea un error y pertenezca a alguno de los bucles.
Por otra parte el primer for ii establece todos los paneles con el valor Visible a TSN, e inmediatamente el segundo for i establece de nuevo los valores Visible a not SiNo, con lo que al final el primer for sería innecesario. En cuanto a la parte lógica del proceso veo lo siguiente: -Si no pasas una lista de paneles, (array de paneles esta vacío), estas actuando sobre todos los paneles y entonces el valor del campo SiNo es irrelevante, puesto que solo se aplica al array de paneles, y en este caso al estar vacío no se va aplicar a ningún panel. -Si por el contrario si se pasa una lista de Paneles, entonces la opción donde el valor de TSN y el valor de SiNo son iguales, es lo mismo que aplicar el valor a todos los paneles, independientemente de la lista que se ha pasado. Por tanto lo ideal es que TSN sea distinto de SiNO y al ser de tipo boolean la única opción es que TSN:=not SiNO y de esta forma solo necesitas pasar una variable con el valor deseado al procedimiento. Y el código puede quedar de esta forma:
y yo añadiría un overload al procedimiento para poder utilizarlo de forma mas fácil cuando no quieras pasar el array:
Y la forma de uso es muy similar a la que ya tenias anteriormente:
Última edición por bucanero fecha: 30-12-2020 a las 17:33:22. Razón: modificar un error en el texto |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
doble pantalla con doble from | emeritos | Varios | 0 | 17-12-2013 14:17:57 |
llamar a procedure desde otra procedure | anubis | Varios | 23 | 04-03-2010 18:44:37 |
puntero a un procedure en un procedure como parametro | fcios | Varios | 2 | 14-03-2009 03:41:22 |
Escanear Doble Cara, Doble Lector | karenthyuliana | Gráficos | 2 | 11-04-2008 17:29:42 |
boolean nulo | Sick boy | Conexión con bases de datos | 7 | 05-12-2003 16:40:37 |
![]() |
|