Dark Skyllen 7 #1 Postado 19 Janeiro, 2011 Componentes em Run-Time Irei dar uma breve explicação de como criar componentes no delphi em run-time, ou seja, enquanto o código roda. Primeiro temos que entender que cada componente do delphi pertence à uma classe do mesmo, ou seja, um Edit pertence à classe TEdit, que possui todas as suas funções e propriedades. Um label pertence à classe TLabel e assim por diante. Com isso, podemos criar facilmente os componentes "no braço", dentro do próprio código. Veja um exemplo: with TLabel.Create(Self) do begin Name := 'lbTopo'; {Nome do componente} Caption := 'Criamos um label no topo do formulário!'; {Caption} Align := alTop; {Se alinha ao topo} Font.Color := clRed; {Fonte cor vermelha} Font.Style := [fsBold]; {Negrito} Parent := Form1; {Seleciona qual será a janela de controle} Alignment := taCenter; {Alinhar ao centro} end; Aqui temos um exemplo básico de criação de um Label que se posiciona sempre no topo do formulário. Se precisarmos utilizar esse label mais tarde, podemos utilizar o seguinte código. TLabel(FindComponent('lbTopo')).Caption := 'Mudei o caption do label!'; Essa função retorna o objeto encontrado, passando o nome como parâmetro. Então com ela, podemos alterar as propriedades do nosso componente. Se quiser, pode fazer com que uma variável do tipo TLabel receba o componente, fazendo apenas: var mLabel: TLabel; begin mLabel := TLabel(FindComponent('lbTopo')); mLabel.Visible := False; end; Também podemos adicionar funções aos nossos componentes, nos seus eventos, como no exemplo abaixo: Primeiro criamos nossa procedure, com os parâmetros corretos procedure TForm1.TrocaCor(Sender: TObject); Begin try (Sender as TLabel).Font.Color := clGreen; except on E: Exception do showMessage('O objeto sender não é compatível com o objeto requerido! Erro: '+E.Message); end; end; Se o objeto que estiver tentando acessar a procedure não for do tipo TLabel, ele retorna com a mensagem de erro. Depois, para que tudo funcione, devemos adicionar a função ao evento do nosso componente: OnClick := TrocaCor; E pronto, nosso label está criado e funcionando no formulário. Lembrando que podemos criar qualquer tipo de componente e ajeitá-lo de acordo com nosso software. Qualquer dúvida, fiquem a vontade para postar. Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
zaksz 144 #2 Postado 19 Janeiro, 2011 Olá, Blz , tava caçando isso faz uns tempinhos . Compartilhar este post Link para o post Compartilhar em outros sites
haxyy 0 #3 Postado 11 Dezembro, 2012 Muito bom! Compartilhar este post Link para o post Compartilhar em outros sites