Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Speed Button que se quede down como en emule (https://www.clubdelphi.com/foros/showthread.php?t=29748)

Nbull 31-01-2006 18:23:17

Speed Button que se quede down como en emule
 
Hola a tod@s, el problemilla que tengo es que estoy intentando hacer una SpeedBar como la de emule, estoy programando en delphi7 y con los componentes RX.

He puesto una speedBar con speedButtons y lo que quiero es que cuando se pulse uno de estos botones se quede pulsado para mostrar el contenido de la ficha y que cuando se pulse otro botón el que estaba pulsado suba y se quede el otro he puesto el siguiente código pero no me funciona:

Código Delphi [-]
procedure TFPrincipal.SpbutonRedClick(Sender: TObject);
begin
  Spbutonred.Down:=true;
end;

No se si es que tengo que habilitar alguna otra propiedad antes de que el boton se pueda quedar pulsado.:confused:

Gracias y un saludo.

delphi.com.ar 31-01-2006 18:34:29

En ese caso te sugiero usar un TPageControl con la propiedad Style := tsButtons;
Igualmente, si lo quieres hacer con TSpeedButton´s, simplemente puedes poner la cantidad que quieras, y ponerle a todos el mismo GroupIndex, esto hará que funcionen todos en grupo y solo permita que uno de ellos este marcado.

Saludos!

Nbull 31-01-2006 19:15:37

Gracias federico, el problema que tengo es que no se me queda pulsado, ningun boton aunque esten el mismo GroupIndex, no se porque por que si que le pongo true en la propiedad down.

Un saludo

delphi.com.ar 31-01-2006 19:25:46

Cita:

Empezado por Nbull
Gracias federico, el problema que tengo es que no se me queda pulsado, ningun boton aunque esten el mismo GroupIndex, no se porque por que si que le pongo true en la propiedad down.

Es que no tienes que cambiar el valor de Down, cambiará automáticamente:
Código Delphi [-]
program SpeedButtonGroupIndex;

uses
  Forms, Buttons;

var
  i: Integer;
  F: TForm;
begin
  F := TForm.Create(nil);
  try
    for i := 0 to 10 do
      with TSpeedButton.Create(F) do
      begin
        Parent := F;
        Left := i * Width;
        GroupIndex := 1;
      end;

    F.ShowModal;
  finally
    F.Free;
  end;
end.


¿Probaste lo del TPageControl?... ¡Es exactamente lo que quieres hacer!

AzidRain 01-02-2006 00:07:49

Puedes usar el componente TToolBar, que permite hacer exactamente la misma barra del Emule, permite definir grupos de botones que puedan quedar presionados y que solamente uno de ellos pueda estar presionado a la vez (Como en Emule). Yo hice una cosa igualita para utilizarlo como filtrador de un grid y quedo muy bien. (tambien puedes usar el que dice delphi.com pero es mas sencillo el ToolBar)

Nbull 01-02-2006 09:20:34

Gracias a los dos por ayudarme,el problema es que con el groupindex=0 no se queda el boton down en la toolbar de las RX, lo cambie a uno y ya me funcionó.

Con respecto a la PageControl que me comentaste Federico, si la he probado pero no me deja poder colocar los botones más cerca unos de otros o hacer grupos, o por lo menos yo no se como hacerlo, la verdad es que sería una buena opción dado que quiero que cuando pulsen un botón me cambie de ficha. si me explicas como podria hacer eso "si se puede"la verdad es que tomaría esa opción.

Gracias de nuevo y un saludo.


La franja horaria es GMT +2. Ahora son las 12:18:34.

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