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 17-01-2008
harpo harpo is offline
Miembro
 
Registrado: jul 2006
Posts: 35
Poder: 0
harpo Va por buen camino
Problema con Toolbar, ToolButtons

Buenas gente,
estoy teniendo problemas con una Toolbar a la que agrego varios TooButtons con imágenes tomadas de una ImageList.
La idea que tengo es modificar la barra de tareas mostrando unos botones u otros según el frame que aparezca en pantalla. Para ello antes de hacer el cambio de pantalla pongo la propiedad Visible de todos los botones a false y luego, una vez ha cambiado de pantalla, a true los que correspondan.
Pues bien, la Toolbar se va al carajo añadiendo botones que no existen y ocultando otros . Si tienen que estar los botones 1, 2, 4 y 5, muestra 1, 2, 2, 6, 4 y 5 ¬¬.
Parece una tontería, pero le he dado mil vueltas y no veo modo de resolverlo... a ver si alguien me puede echar una mano.

Oculto los botones así:

Código:
  for i:=0 to ToolBar1.ButtonCount-1 do
  begin
    ToolBar1.Buttons[i].Visible:=false;
Y los muestro así:
Código:
 with frMain.frToolBar do
  begin
    boNewPatient.Visible:=true;
    boEditPatient.Visible:=true;
    boDeletePatient.Visible:=true;
    boNewStudy.Visible:=true;
    boEditStudy.Visible:=true;
    boEditStudy.Enabled:=true;
    boDeleteStudy.Visible:=true;
    boDeleteStudy.Enabled:=true;
    boCamera.Visible:=true;
    boPrint.Visible:=true;
    boBack.Visible:=true;    
  end;
Gracias por cualquier ayuda
Responder Con Cita
  #2  
Antiguo 17-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Si tienes algún separador en el toolbar, también cuenta como un Toolbutton.

Al mostrar, los muestras todos, es decir, con ese código no mostrará el que tu quieras sino todos a la vez.

Por otro lado estás usando "Toolbar1" y "frToolbar" que parecen componentes distintos.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 17-01-2008
harpo harpo is offline
Miembro
 
Registrado: jul 2006
Posts: 35
Poder: 0
harpo Va por buen camino
Cita:
Si tienes algún separador en el toolbar, también cuenta como un Toolbutton.
No tengo ningún separador

Cita:
Al mostrar, los muestras todos, es decir, con ese código no mostrará el que tu quieras sino todos a la vez.
Por?

Cita:
Por otro lado estás usando "Toolbar1" y "frToolbar" que parecen componentes distintos.
Toolbar1 es el nombre del TToolbar dentro del frame frToolbar. Los botones aparecen como componentes del frame, de ahí el with frMain.frToolbar
Responder Con Cita
  #4  
Antiguo 18-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Ya que tienes un frame, yo haría esto en tu frame:


Espero no te confunda los nombres que he usado, como ves, he puesto los mismos nombres que tú, pero anteponiendo el prefijo "sb" de ShowButtons

Código Delphi [-]

type TShowButtons = set of (sbNewPatient, sbEditPatient, sbDeletePatient, 
    sbNewStudy, sbEditStudy, sbDeleteStudy, sbCamera, sbPrint, sbBack);

type TfrToolbar = class(TFrame)


private 
  FShowButtons :TShowButtons;
  procedure SetShowButtons(Value:TShowButtons);
public
  property ShowButtons : TShowButtons read FShowButtons write SetShowButtons;
end

Implementation

procedure TfrToolbar.SetShowbuttons(Value:TShowButtons);
begin
    FShowButtons := Value;
    boNewPatient.Visible:= sbNewPatient in Value;
    boDeletePatient.Visible:= sbDeletePatient in Value;
    boNewStudy.Visible:= sbNewStudy in Value;
    boEditStudy.Visible  := sbEditStudy in Value;
    boDeleteStudy.Visible:= sbDeleteStudy in Value;
    boCamera.Visible:= sbCamera in Value;
    boPrint.Visible:= sbPrint in Value;
    boBack.Visible:= sbBack in Value;
end;

Ahora ya no tienes que ocultar los botones antes de cambiar ventana.
Cuando cambies de ventana, si en esa ventana debes mostrar los botones NewPatient, DeletePatient, Print y Back, harías esto:
Código Delphi [-]
with frmMain.frtoolbar do
 ShowButtons := [sbNewPatient, sbDeletePatient, sbPrint, sbBack];
Al asignar la propiedad ShowButtons, dentro del frame se ejecutará el procedimiento SetShowButtons que pondrá visible los botones que hayas especificado. El resto de botones los pondrá invisibles.


Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 28-01-2008
harpo harpo is offline
Miembro
 
Registrado: jul 2006
Posts: 35
Poder: 0
harpo Va por buen camino
Perfecto así
Gracias por tu respuesta y perdón por el retraso en responderte
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
Problema con toolbuttons pozillo Varios 4 16-11-2007 17:36:57
toolbar ercrizeporta Varios 3 17-09-2007 18:10:52
ToolBar con SpeedButton andiget Varios 0 27-06-2007 14:52:59
Problema con un toolbar mavm03 C++ Builder 6 02-10-2006 17:57:02
SpeedButtons - ToolButtons jymy788 Varios 2 19-08-2004 17:55:48


La franja horaria es GMT +2. Ahora son las 01:42:47.


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