Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
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 07-12-2020
AlejandroCalica AlejandroCalica is offline
Miembro
 
Registrado: nov 2020
Posts: 37
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
  #2  
Antiguo 07-12-2020
AlejandroCalica AlejandroCalica is offline
Miembro
 
Registrado: nov 2020
Posts: 37
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
  #3  
Antiguo 08-12-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por AlejandroCalica Ver Mensaje
...
lo que aun no logro comprender es como dejar a todos los paneles ocultos con un boton?
...
Código Delphi [-]
procedure TForm1.btnHidePanelsClick(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to ControlCount-1 do
    if Controls[i] is TPanel then
       Controls[i].Visible := False;
end;
Cita:
Empezado por AlejandroCalica Ver Mensaje
...
como podria controlar los que se ven y por ende todos los demas ocultos o enabled
...
Código Delphi [-]
procedure TForm1.SomePanelsVisible(const Panels: array of TPanel);
var
  i: Integer;
begin
  for i := Low(Panels) to High(Panels) do
    Panels[i].Visible := True;
end;
Ejemplo de uso:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
   SomePanelsVisible([Panel1, Panel5, Panel9, Panel17]);
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 08-12-2020
AlejandroCalica AlejandroCalica is offline
Miembro
 
Registrado: nov 2020
Posts: 37
Poder: 0
AlejandroCalica Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 08-12-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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:
Código Delphi [-]
procedure TForm1.SomePanelsVisible(const Panels: array of TPanel);
var
  i: Integer;
begin
  // Ocultar todos
  for i := 0 to ControlCount-1 do
    if Controls[i] is TPanel then
       Controls[i].Visible := False;
  // Mostrar los deseados
  for i := Low(Panels) to High(Panels) do
    Panels[i].Visible := True;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 08-12-2020
AlejandroCalica AlejandroCalica is offline
Miembro
 
Registrado: nov 2020
Posts: 37
Poder: 0
AlejandroCalica Va por buen camino
tenia pensado algo as como tu procedimiento, pero con la opcion de ocultar todos

Código Delphi [-]
SomePanelsVisible([]);



que pudiece quedar algo asi para definir que todos esten ocultos y asi para solo mostar los indicados y todos los demas ocultos

Código Delphi [-]
SomePanelsVisible([panel1,panel2]);

pero en un solo procedimiento se podra ?
Responder Con Cita
  #7  
Antiguo 08-12-2020
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por AlejandroCalica Ver Mensaje
pero en un solo procedimiento se podra ?
Eso es un solo procedimiento
Código Delphi [-]
procedure TForm1.SomePanelsVisible(const Panels: array of TPanel);
var
  i: Integer;
begin
  for i := Low(Panels) to High(Panels) do
    Panels[i].Visible := True;
end;
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

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 05:11:51.


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