quarta-feira, 23 de janeiro de 2013

Instância como parâmetro


... Caros colegas, nessa semana estive com uma questão que gostaria de compartilhar;

Tenho um formulário, dentro do mesmo tenho um botão e no onClick do botão tenho o seguinte código;

var
  MeuBotao: TButton;
begin
  MeuBotao:= TButton.create(Self)
  try
    MeuBotao.parent:=  Self;
    MeuBotao.Caption:= 'Jucelio Moura';
    MostraCaptionBotao(MeuBotao); 
  finally
    MeuBotao.free;
  end;
end;

Tenho uma procedure chamada MostraCaptionBotao

procedure MostraCaptionBotao(ABotao: TButton);
begin
  ShowMessage(ABotao.Caption);
end;

Até ai tudo bem, porém sei que posso instanciar TButton dessa forma;

with TButton.Create(Self) do
  begin
    try
      Parent:= Self;
      Caption:= 'Jucelio Moura';
      MostraCaptionBotao(?); 
    finally
      free;
    end;
  end;

- O que passo como parâmetro para MostraCaptionBotao ?, Self nesse caso é o formulário.

- A solução é a seguinte;

with TButton.Create(Self) do
  begin
    try
      Parent:= Self;
      Caption:= 'Jucelio Moura';
      MostraCaptionBotao(TButton(Self.Components[ComponentIndex]));
    finally
      Free;
    end;
  end;


Nenhum comentário:

Postar um comentário