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 07-12-2020
AlejandroCalica AlejandroCalica is offline
Miembro
 
Registrado: nov 2020
Posts: 35
Poder: 0
AlejandroCalica Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 07-12-2020
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.
Responder Con Cita
  #3  
Antiguo 07-12-2020
AlejandroCalica AlejandroCalica is offline
Miembro
 
Registrado: nov 2020
Posts: 35
Poder: 0
AlejandroCalica Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 07-12-2020
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por AlejandroCalica Ver Mensaje
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

Hay varias formas de hacerlo de forma simple, de forma que puedas identificar todos los elementos del grupo.
  • Todos dentro de un panel (que no tiene porqué ser visible)
  • Todos los elementos con el mismo TAG
  • ...
Si tienes definidos una serie de paneles en el formulario TODOS con la propiedad TAG=1 como estos:





Con un procedimiento como este:

Código Delphi [-]
procedure TForm2.OcultarVisualizarPaneles(APanel: TPanel);
var
  i:integer;
begin
  // Recorre todos los paneles
  for i := 0 to (ComponentCount - 1) do begin
    // Está marcado con el TAG=1
    if TPanel(Components[i]).Tag = 1 then begin
      // El del parámetro lo dejamos visible
      if (TPanel(Components[i]) = APanel) then
        TPanel(Components[i]).Visible := True
      // el resto los ocultamos...
      else
        TPanel(Components[i]).Visible := False;
    end;
  end;
end;


Puedes visualizar uno y ocultar el resto.

Código Delphi [-]
procedure TForm2.Button1Click(Sender: TObject);
begin
  OcultarVisualizarPaneles(Panel1)
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
  OcultarVisualizarPaneles(Panel2)
end;

procedure TForm2.Button3Click(Sender: TObject);
begin
  OcultarVisualizarPaneles(Panel3)
end;


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.
Responder Con Cita
  #5  
Antiguo 07-12-2020
AlejandroCalica AlejandroCalica is offline
Miembro
 
Registrado: nov 2020
Posts: 35
Poder: 0
AlejandroCalica Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Hay varias formas de hacerlo de forma simple, de forma que puedas identificar todos los elementos del grupo.
  • Todos dentro de un panel (que no tiene porqué ser visible)
  • Todos los elementos con el mismo TAG
  • ...
Si tienes definidos una serie de paneles en el formulario TODOS con la propiedad TAG=1 como estos:





Con un procedimiento como este:

Código Delphi [-]
procedure TForm2.OcultarVisualizarPaneles(APanel: TPanel);
var
  i:integer;
begin
  // Recorre todos los paneles
  for i := 0 to (ComponentCount - 1) do begin
    // Está marcado con el TAG=1
    if TPanel(Components[i]).Tag = 1 then begin
      // El del parámetro lo dejamos visible
      if (TPanel(Components[i]) = APanel) then
        TPanel(Components[i]).Visible := True
      // el resto los ocultamos...
      else
        TPanel(Components[i]).Visible := False;
    end;
  end;
end;


Puedes visualizar uno y ocultar el resto.

Código Delphi [-]
procedure TForm2.Button1Click(Sender: TObject);
begin
  OcultarVisualizarPaneles(Panel1)
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
  OcultarVisualizarPaneles(Panel2)
end;

procedure TForm2.Button3Click(Sender: TObject);
begin
  OcultarVisualizarPaneles(Panel3)
end;


En ejecución será algo así:


muchas gracias es lo que buscaba te lo agradesco
Neftali [Germán.Estévez]
[becario]
Responder Con Cita
  #6  
Antiguo 07-12-2020
AlejandroCalica AlejandroCalica is offline
Miembro
 
Registrado: nov 2020
Posts: 35
Poder: 0
AlejandroCalica Va por buen camino
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
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

Temas Similares
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


La franja horaria es GMT +2. Ahora son las 13:26:16.


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