Funções para retornar o Name do componente
16/07/2008
0
Preciso simplificar uma operação, mas não estou conseguindo desenvolver a função.
Eu tenho 5 CheckBox e preciso que toda vez q o usuario marque este componente ele troque propriedade de fonte, e ao desmarcar a mesma coisa.
procedure TFrmConfirmacao.GRClick(Sender: TObject); begin if GR.Checked then begin GR.Font.Color:=clred; GR.Font.Style:=[fsbold]; end else begin GR.Font.Color:=clBlack; GR.Font.Style:=[]; end; end;
[b:eaeabcac24]porém agora terei um form com 40 CheckBox e não gostaria de montar em cada Evento do componente, gostaria de criar um função que faça isso.[/b:eaeabcac24]
Fico no aguardo de um auxilio
Abraço
Wagner
Wagnermarrane
Posts
16/07/2008
Altingon
for i := 0 to TCVendas.ComponentCount - 1 do begin if TCVendas.Components[i] is TCustomEdit then (TCVendas.Components[i] as TCustomEdit).Clear; end;
Você percorre os formulário e pergunta se o componente em questão é do tipo que vc quer, se for vc faz os procedimentos.
16/07/2008
Wagnermarrane
procedure TFrmCadInscritosJE.MarcarClick(cNome: string); begin if cNome.Checked then begin cNome.Font.Color:=clred; cNome.Font.Style:=[fsbold]; end else begin cNome.Font.Color:=clBlack; cNome.Font.Style:=[]; end; end;
[b:dd3c832022]chamando a função acima da seguinte forma[/b:dd3c832022]
procedure TFrmConfirmacao.GRClick(Sender: TObject); begin MarcarClick(´gr´); // passando NAME do componente. end;
Lembrando q deve ser excutado no evento ONCLICK do componente.
16/07/2008
Rodc
procedure TFrmConfirmacao.GRClick(Sender: TObject); begin if (Sender is TCheckBox) then begin with Sender as TCheckBox do begin if Checked then begin Font.Color:=clred; Font.Style:=[fsbold]; end else begin Font.Color:=clBlack; Font.Style:=[]; end; end; end; end;
16/07/2008
Wagnermarrane
procedure TFrmConfirmacao.GRClick(Sender: TObject); begin if (Sender is TCheckBox) then begin with Sender as TCheckBox do begin if Checked then begin Font.Color:=clred; Font.Style:=[fsbold]; end else begin Font.Color:=clBlack; Font.Style:=[]; end; end; end; end;
Vc esta executando dentro do evento OnClick eu preciso que execute dentro de uma função para ser chamada no evento onclick do componente, tenho 40 componentes deste e e como todos vão se comportar da mesma forma não gostaria de digitar tudo isso em cada componente.
16/07/2008
Rodc
Selecione todos os componentes que deseja alterar, e coloque ´GRClick´ no campo OnClique deles.
16/07/2008
Wagnermarrane
muito obrigado pessoal
procedure TFrmCadInscritosJE.MarcarClick(sender: TObject); begin if (Sender is TFlatCheckBox) then begin with Sender as TFlatCheckBox do begin if Checked then begin Font.Color:=clred; Font.Style:=[fsbold]; end else begin Font.Color:=clBlack; Font.Style:=[]; end; end; end; end;
16/07/2008
Altingon
procedure MarcarClick(checkbox: TCheckBox); procedure TForm1.MarcarClick(checkbox: TCheckBox); begin if checkbox.Checked then begin checkbox.Font.Color:=clred; checkbox.Font.Style:=[fsbold]; end else begin checkbox.Font.Color:=clBlack; checkbox.Font.Style:=[]; end; end; procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin for i:=0 to Form1.ComponentCount-1 do if Form1.Components[i] is TCheckBox then MarcarClick((Form1.Components[i] as Tcheckbox)); end;
Espero ter ajudado
17/07/2008
Robson Fernandes
procedure TFrmConfirmacao.GRClick(Sender: TObject);
begin
if (Sender is TCheckBox) then
begin
with Sender as TCheckBox do
begin
if Checked then
begin
Font.Color:=clred;
Font.Style:=[fsbold];
end
else
begin
Font.Color:=clBlack;
Font.Style:=[];
end;
end;
end;
end;
procedure TFrmConfirmacao.FormCreate(Sender: TObject);
var i: Integer;
begin
// Caso você queira aplicar em todos os checkboxes do form
for i := 0 to Pred(Self.ComponentCount) do
if (Self.Components[i] is TCheckBox) then
TCheckBox(Self.Components[i]).OnClick := GRClick;
{
// Caso você queira que somente alguns checkboxes tenham essa
// rotina, você pode utilizar a propriedade Tag de cada checkbox para
// distinguir. Ex. Quem tiver a propriedade Tag = 1, atribuir o método
for i := 0 to Pred(Self.ComponentCount) do
if (Self.Components[i] is TCheckBox) and (Self.Components[i].Tag = 1) then
TCheckBox(Self.Components[i]).OnClick := GRClick;
}
end;
17/07/2008
Rodc
17/07/2008
Robson Fernandes
Eu sei !
Mas ele pode usar dessa maneira, caso ele queira criar, p. ex., checkboxes em run time.
Certo ??!!
Clique aqui para fazer login e interagir na Comunidade :)