PROCEDIMENTO PARA MUDAR FONTE DE QUALQUER BUTTON

18/11/2015

4

Tenho um Form com diversos buttons.
ao levar mouse sobre um button preciso obeter o nome do mesmo e alterar algumas propriedades do mesmo

Exemplo.

procedure RetornaPosicao(Sender: TObject);
begin
XComponente:= TWinControl(Sender).Name; //ESTE RETORNA O NOME DO COMPONENTE - FUNCIONANDO

// OBEJETIVO É APLICAR ESSAS PROPRIEDADES AO COMPONENTE LOCALIZADO
TsBitBtn(XComponente).Font.Style := [fsBold];
TsBitBtn(XComponente).Font.Color := $00282800;
TsBitBtn(XComponente).Font.Size :=15;
end;
end;
Responder

Posts

18/11/2015

Luiz

No formcreate do seu form você pode colocar uma função para mudar onmouseleave dos seus botões.
Isso é apenas para você não ter colocar este evento em cada botão.

Exemplo:

procedure TForm2.FormCreate(Sender: TObject);
var
  i : integer;
begin
 for i := 0 to ComponentCount-1 do // navega por todos os componentes e muda o evento para sua funcao
  begin
   if (Components[i] is TButton) then
     TButton(Components[i]).OnMouseLeave := MudaBotao;
  end;

end;


e ai você deve criar essa procedure "MudaBotao" que no seu caso é a RetonaPosicao.
Exemplo:
procedure TForm2.MudaBotao(Sender: TObject);
var
  componente : string;
begin

  componente := TWinControl(Sender).Name; //ESTE RETORNA O NOME DO COMPONENTE - FUNCIONANDO

//parametros
  TButton(TWinControl(Sender).Owner.FindComponent(componente)).Font.Size := 18;
//etc

end;
Responder