Fórum Cor do TLabel em tempo de excução #510369
12/02/2015
0
como posso obter esse valor.
Marcos Silva
Curtir tópico
+ 0Posts
12/02/2015
Wanderson Cortes
Gostei + 0
12/02/2015
Marcos Silva
Gostei + 0
13/02/2015
Wanderson Cortes
Gostei + 0
13/02/2015
Marcos Silva
procedure TfrmPrincipal.O3Click(Sender: TObject); var Numero: Integer; Nome : String; Cor : TColor; begin Numero:= ActiveControl.Tag; Nome := Pchar(ActiveControl.Hint); Cor := ???? end;
Gostei + 0
14/02/2015
Douglas
procedure TfrmPrincipal.O3Click(Sender: TObject); var Numero: Integer; Nome : String; Cor : TColor; begin Numero:= ActiveControl.Tag; Nome := Pchar(ActiveControl.Hint); Cor := ???? end;
Olá Mssilva, tudo bem?
Utilize o Sender, assim saberá o objeto que requisitou a ação. O código fica da seguinte forma abaixo:
procedure TfrmPrincipal.O3Click(Sender: TObject); var Numero: Integer; Nome : String; Cor : TColor; begin Numero:= ActiveControl.Tag; Nome := Pchar(ActiveControl.Hint); Cor := Tlabel(sender).font.color; end;
Gostei + 0
15/02/2015
Marcos Silva
procedure TfrmPrincipal.Opcao3Click(Sender: TObject); var Numero: Integer; Nome : String; Cor : TColor; begin Numero:= ActiveControl.Tag; Nome := Pchar(ActiveControl.Hint); Cor := Tlabel(sender).font.color; end;
Opcao3 é um item de um popupmenu, acho que não ficou claro o meu primeiro exemplo.
Na realidade o que quero é se o Tlabel ou Tedit estiver com a cor azul o código acima não seja executado por exemplo.
O usuário vai clicar no TLabel é se cor X faça se não....
Gostei + 0
19/02/2015
Douglas
Gostei + 0
19/02/2015
Douglas
procedure TfrmPrincipal.Opcao3Click(Sender: TObject); var Numero: Integer; Nome : String; Cor : TColor; begin Numero:= ActiveControl.Tag; Nome := Pchar(ActiveControl.Hint); Cor := Tlabel(sender).font.color; end;
Opcao3 é um item de um popupmenu, acho que não ficou claro o meu primeiro exemplo.
Na realidade o que quero é se o Tlabel ou Tedit estiver com a cor azul o código acima não seja executado por exemplo.
O usuário vai clicar no TLabel é se cor X faça se não....
Mssilva, então o código que te passei lhe atende. Você teria que pegar a cor de referência e montar a situação.
Exemplo:
procedure TfrmPrincipal.Opcao3Click(Sender: TObject);
var
Numero: Integer;
Nome : String;
Cor : TColor;
begin
Numero:= ActiveControl.Tag;
Nome := Pchar(ActiveControl.Hint);
Cor := Tlabel(sender).font.color;
if cor = clHighlight then
begin
// Faz o que você quer!
end;
end;
Gostei + 0
19/02/2015
Marcos Silva
Gostei + 0
20/02/2015
Marcos Silva
Tem uma outra ideia?
Gostei + 0
21/02/2015
Douglas
Tem uma outra ideia?
Sim, entender o que você quer fazer, pois você disse anteriormente que a rotina teria que funcionar quando: "Opcao3 é um item de um popupmenu, acho que não ficou claro o meu primeiro exemplo. Na realidade o que quero é se o Tlabel ou Tedit estiver com a cor azul o código acima não seja executado por exemplo."
Vejamos se eu entendi, você quer varrer o seu formulário a partir do momento que você clicar na terceira opção do popmenu atrás dos labels ou edits de cor azul para decidir o que fazer, correto?
Se for isso, o código fica da seguinte maneira abaixo:
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
for I := 0 to ComponentCount - 1 do
begin
if TLabel(Components[i]) is TLabel then
begin
if TLabel(Components[i]).Font.Color = clRed then
begin
//Faz o que você quer!
end;
end;
end;
end;
Gostei + 0
23/02/2015
Marcos Silva
Já tinha resolvido com um código parecido, más vou verificar se esse é melhor para a minha necessidade é posto o resultado assim que possível.
Grato pela a sua ajuda.
Gostei + 0