Ver Mensaje Individual
  #3  
Antiguo 16-12-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
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
Cita:
Empezado por aitorqrv Ver Mensaje
...
Para cambiar el estado de las salidas, me gustaria que variase su estado al pulsar sobre los circulos que representan las salidas que me encienden o me apagan las bonbillas, sin tener que utilizar un checkbox.
Hola aitorqrv.

Te propongo esta idea, con el editor gráfico que prefieras (el que trae Delphi sirve perfectamente) crea dos imágenes .bmp de 16 x 16. Estas imágenes que podrías guardar con los nombres LedOff.bmp y LedOn.bmp por ejemplo, serán: Un circulo pintado de verde oscuro la primera y la otra de verde muy claro para lograr el efecto apagado/encendido.

En el form coloca un TImageList, agrega en la posición 0 a LedOff.bmp y en la 1 LedOn.bmp. Un TPanel con ocho TSpeedButton dentro y los TLabel que precises. Luego mediante Ctrl+mouse selecciona los 8 SpeedButtons y asígnale a todos el mismo evento OnClick.

El código quedaría:
Código Delphi [-]
...
implementation

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
  sp : TSpeedButton;
begin
  for i := 0 to 7 do
  begin
    sp := FindComponent('SpeedButton'+IntToStr(i+1)) as TSpeedButton;
    if Assigned(sp) then
    begin
      sp.Flat := True; 
      sp.Tag  := 0;    // Apagado por defecto
      ImageList1.GetBitmap(sp.Tag, sp.Glyph)
    end;
  end;
end;

procedure TForm1.SpeedButtonsClick(Sender: TObject);
begin
  with Sender as TSpeedButton do
  begin
    Tag   := Integer(not Boolean(Tag));  // encender/apagar
    Glyph := nil;
    ImageList1.GetBitmap(Tag,Glyph);
  end;
end;
El estado de encendido o apagado se almacena en la propiedad Tag de los SpeedButtons y se cambia ante el click sobre el mismo como solicitabas.

El resultado es:


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 16-12-2013 a las 12:32:33.
Responder Con Cita