Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-05-2010
escorpionrojo43 escorpionrojo43 is offline
Miembro
 
Registrado: abr 2010
Posts: 89
Poder: 15
escorpionrojo43 Va por buen camino
Talking Ayuda para Simplificar codigo

Hola Companeros del Club. primero que nada soy novato en esto. el punto es que estoy haciendo un programa hasta el momento todo marcha bien pero mi codigo esta un poco grande y se que se puede simplificar, espero que me ayuden, el caso es que tengo 16 botones y a cada uno lo tengo con estas sentencias

procedure TTMSForm1.AdvGlowButton6Click(Sender: TObject);
begin
with AdvToolBarPager1 do
begin
AdvPages[0].TabVisible:=false;
AdvPages[1].TabVisible:=false;
AdvPages[2].TabVisible:=false;
AdvPages[3].TabVisible:=false;
AdvPages[4].TabVisible:=false;
AdvPages[5].TabVisible:=false;
AdvPages[6].TabVisible:=false;
AdvPages[7].TabVisible:=false;
AdvPages[8].TabVisible:=false;
AdvPages[9].TabVisible:=true;
AdvPages[10].TabVisible:=false;
AdvPages[11].TabVisible:=false;
AdvPages[12].TabVisible:=false;
AdvPages[13].TabVisible:=false;
AdvPages[14].TabVisible:=false;
AdvPages[15].TabVisible:=false;
ActivePageIndex:=9;
end;
end;

lo que quiero es que todos los AdvPages tengan la propiedad TabVisible:=false y que al dar click en el boton correspondiente se ponga como TabVisible:=true pero que al darle click a otro boton todos se pongan invisible a exepcion del que seleccione.

espero de su ayuda y gracias por prestarle atencion a un novato como yo.
Responder Con Cita
  #2  
Antiguo 08-05-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Y por que no ponerlo dentro de un ciclo for para optimizar el códico , algo así:
Código Delphi [-]
var indice:Byte;
begin
  for  indice:=0  to 15 do
   begin
       AdvPages[indice].TabVisible:=false;
   end;
  ...
  ...
end;
.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 08-05-2010 a las 16:08:59.
Responder Con Cita
  #3  
Antiguo 08-05-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
hola...

mira... algo así creo que te puede servir... (Mientras escribia mi larguero rgstuamigo te logró responder con menos chachara )

Código Delphi [-]
procedure mostrarPage(PageIndex);
  procedure ocultarpages();
    var i : integer;
  begin
    for i := 0 to AdvPages.tabcount -1 do //No se si sera tabcount pero aqui va el total de las paginas
    begin
      AdvToolBarPager1.AdvPages[i].TabVisible := false;
    end
  end;
begin
  ocultarpages();
  AdvToolBarPager1.AdvPages[PageIndex].TabVisible := True;
  AdvToolBarPager1.ActivePageIndex := PageIndex;
end;

Para llamarlo... tendrias que agregar en cada boton algo como...

Código Delphi [-]
  mostrarPage(9);

ahora... lo que podrias hacer (no se si es correcto pero lo hago) es que podrias modificar el atributo tag de cada boton para que tenga el index que quieres mostrar y así todos los botones podrian llamar al mismo procedimiento...

Código Delphi [-]
  mostrarPage(TButton(Sender).tag);

ahora... este comportamiento que quieres se me parece mucho al del TJvPageList que en escencia es un pagecontrol sin tabs... pára navegar por el se usa el TJvPageListTreeView... donde haces en forma de arbol los links de navegación para el TJvPageList... es sencillo de manejar... todos estos componentes hacen parte de la JVCL por si quieres echarle un ojo...
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #4  
Antiguo 08-05-2010
escorpionrojo43 escorpionrojo43 is offline
Miembro
 
Registrado: abr 2010
Posts: 89
Poder: 15
escorpionrojo43 Va por buen camino
[quote=rgstuamigo;363284]Y por que no ponerlo dentro de un ciclo for para optimizar el códico , algo así:
Código Delphi [-]var indice:Byte; begin for indice:=0 to 15 do begin AdvPages[indice].TabVisible:=false; end; ... ... end;

.
Perdona mi ignoracia es que como dije al pricipio soy nuevo en esto.
este ciclo for tengo que ponerlo en cada boton? y en los ... que se supone que tengo que poner?

Gracias.!
Responder Con Cita
  #5  
Antiguo 08-05-2010
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 23
José Luis Garcí Va camino a la fama
tambien puedes crear una función o procedure, pasarla parámetros, etc.

Mira en la búsqueda y el mismo procedimiento que te dio rgstuamigo te serviría

este es tu código original

Código Delphi [-]
procedure TTMSForm1.AdvGlowButton6Click(Sender: TObject);
begin
with AdvToolBarPager1 do
begin
AdvPages[0].TabVisible:=false;
AdvPages[1].TabVisible:=false;
AdvPages[2].TabVisible:=false;
AdvPages[3].TabVisible:=false;
AdvPages[4].TabVisible:=false;
AdvPages[5].TabVisible:=false;
AdvPages[6].TabVisible:=false;
AdvPages[7].TabVisible:=false;
AdvPages[8].TabVisible:=false;
AdvPages[9].TabVisible:=true;
AdvPages[10].TabVisible:=false;
AdvPages[11].TabVisible:=false;
AdvPages[12].TabVisible:=false;
AdvPages[13].TabVisible:=false;
AdvPages[14].TabVisible:=false;
AdvPages[15].TabVisible:=false;
ActivePageIndex:=9;
end;
end;

y este el que te propongo
Código Delphi [-]
Function MiAdvPAges(Page, Max:integer;Acivo:boolean);
var indice:Byte;
begin
  with AdvToolBarPager1 do
  begin
    for  indice:=0  to Max do
    begin
       AdvPages[indice].TabVisible:=Activo;
     end;
    ActivePageIndex:=PAge;  
   end;
end;

Te he puesto un ejemplo sin probarlo, pero creo que debería funcionar y la llamada desde un botón seria

Código Delphi [-]
MiAdvPAges(9, 15, False);

Seria lo mismo que tu has expuesto
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #6  
Antiguo 08-05-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
los tres hemos dicho lo mismo... por eso dije que rsgtuamigo ya habia contestado...
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #7  
Antiguo 08-05-2010
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 23
José Luis Garcí Va camino a la fama
Red face

Cierto Movorack, pero Es que no había visto tu respuesta, debido a problemas de mi conexión, cuando le doy a bajar para seguir viendo la página, de cuando en cuando se me coloca directamente al final de la página.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #8  
Antiguo 08-05-2010
escorpionrojo43 escorpionrojo43 is offline
Miembro
 
Registrado: abr 2010
Posts: 89
Poder: 15
escorpionrojo43 Va por buen camino
Gracias a todos por la informacion me ha ayudado vastante.
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
Ayuda con código para copiar radenf API de Windows 3 24-03-2009 12:12:30
ayuda para elaborar un codigo josi Varios 2 22-09-2008 15:34:02
ayuda codigo para leer el puerto com1 happy-word Varios 1 22-08-2008 17:41:44
Ayuda para extraer el codigo fuente de un HTML Lerak Internet 2 12-04-2008 15:43:42
Ayuda con código para password radenf Varios 7 29-10-2007 23:02:18


La franja horaria es GMT +2. Ahora son las 21:50:03.


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