{ ufChangeColor.dfm – início }

object frmChangeColor: TfrmChangeColor

  Left = 192

  Top = 140

  BorderIcons = [biSystemMenu]

  BorderStyle = bsSingle

  Caption = 'TLabel - Mudança de Cor Automatizada Com Propriedades'

  ClientHeight = 48

  ClientWidth = 549

  Color = clBtnFace

  Font.Charset = DEFAULT_CHARSET

  Font.Color = clWindowText

  Font.Height = -11

  Font.Name = 'MS Sans Serif'

  Font.Style = []

  Icon.Data = {

    0000010001002020100000000000E80200001600000028000000200000004000

    0000010004000000000080020000000000000000000000000000000000000000

    000000008000008000000080800080000000800080008080000080808000C0C0

    C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000

    0000000000000000000000000000000000000000007777770000000000000000

    0000000000000007000000000000000000000000000000070000000000000000

    0000000000777007000000000000000000077070007770070000700000000000

    0077000700787000000007000000000007708000077877000070007000000000

    07088807777777770777000700000000008F88877FFFFF077887700700000000

    00088888F88888FF08870070000000000000880888877778F070007000000007

    77088888880007778F770077777000700008F088007777077F07000000700700

    008F08880800077778F7700000700708888F0880F08F807078F7777700700708

    F88F0780F070F07078F7887700700708888F0780F077807088F7777700700700

    008F0788FF00080888F77000007000000008F0780FFFF0088F77007000000000

    0008F07788000888887700700000000000008F07788888880870007000000000

    00088FF0077788088887000700000000008F888FF00000F87887700700000000

    0708F8088FFFFF88078700700000000007708000088888000070070000000000

    0077007000888007000070000000000000077700008F80070007000000000000

    0000000000888007000000000000000000000000000000070000000000000000

    000000000777777700000000000000000000000000000000000000000000FFFF

    FFFFFFFC0FFFFFFC0FFFFFF80FFFFFF80FFFFE180E7FFC00043FF800001FF800

    000FF800000FFC00001FFE00001FE0000001C000000180000001800000018000

    00018000000180000001FC00001FFC00001FFE00001FFC00000FF800000FF800

    001FF800003FFC180C7FFE380EFFFFF80FFFFFF80FFFFFF80FFFFFFFFFFF}

  OldCreateOrder = False

  Position = poScreenCenter

  PixelsPerInch = 96

  TextHeight = 13

  object lblChangeColor: TLabel

    Left = 88

    Top = 8

    Width = 449

    Height = 25

    AutoSize = False

    Caption = 

      'Este TLabel muda de cor de forma automatizada através de uma pro' +

      'priedade incluída na redefinição local do componente TLabel nest' +

      'e formulário.'

    Font.Charset = DEFAULT_CHARSET

    Font.Color = clWindowText

    Font.Height = -11

    Font.Name = 'MS Sans Serif'

    Font.Style = [fsBold]

    ParentFont = False

    WordWrap = True

  end

  object btnChangeColor: TButton

    Left = 8

    Top = 8

    Width = 75

    Height = 25

    Caption = 'Mudar Cor'

    TabOrder = 0

    OnClick = btnChangeColorClick

  end

end

{ ufChangeColor.dfm – fim }

 

unit ufChangeColor;

 

interface

 

uses

  Forms, Controls, StdCtrls, Classes, Graphics;

 

type

  TSignalLabel = (slDefault, slRed, slGreen);

 

  TLabel = class(StdCtrls.TLabel)

  private

    fColors: array[TSignalLabel] of TColor;

    fSignalLabel: TSignalLabel;

    procedure SetSignalLabel(Value: TSignalLabel);

    procedure InitializeSignalColors;

  public

    constructor Create(AOwner: TComponent); override;

    property SignalLabel: TSignalLabel

       read FSignalLabel write SetSignalLabel default slDefault;

  end;

 

  TfrmChangeColor = class(TForm)

    btnChangeColor: TButton;

    lblChangeColor: TLabel;

    procedure btnChangeColorClick(Sender: TObject);

  end;

 

var

  frmChangeColor: TfrmChangeColor;

 

implementation

 

{$R *.dfm}

 

{ TLabel }

 

procedure TLabel.InitializeSignalColors;

begin

  fColors[slDefault] := clWindowText;

  fColors[slRed]     := clRed;

  fColors[slGreen]   := clGreen;

end;

 

constructor TLabel.Create(AOwner: TComponent);

begin

  inherited Create(AOwner);

  InitializeSignalColors;

end;

 

procedure TLabel.SetSignalLabel(Value: TSignalLabel);

begin

  self.Font.Color := fColors[Value];

  FSignalLabel := Value;

end;

 

{ frmChangeColor }

 

procedure TfrmChangeColor.btnChangeColorClick(Sender: TObject);

begin

  if lblChangeColor.SignalLabel < High(TSignalLabel) then

    lblChangeColor.SignalLabel := Succ(lblChangeColor.SignalLabel)

  else

    lblChangeColor.SignalLabel := Low(TSignalLabel)

end;

 

end.



[As partes desta mensagem que não continham texto foram removidas]

Responder a