Ir para conteúdo
Faça parte da equipe! (2024) ×

Criar componentes em tempo de execução [parte 2]


Inoxybel
 Compartilhar

Posts Recomendados

Esse tópico tem o intuito de deixar o tópico anterior: Clique aqui!

3 Imagens se encontram offline, mas prometo recoloca-las em breve! Espero que isso não dificulte o entendimento.

 

 

No qual eu mostro como criar botões em tempo de execução adicionando novos 'eventos'. Neste eu mostrarei somente como criar e destruir os componentes existentes no delphi, em tempo de execução.

 

 

Para iniciarmos, crie um novo projeto e adicione alguns componentes no form, o meu eu deixei assim:

 

8j7uh.png

 

 

Pois bem, se você tem pouco conhecimento em delphi, abaixo a linha "TForm1 = class(TForm)" está os componentes da aplicação e os eventos de tais que segue essa estrutura:

 

É necessário se cadastrar para acessar o conteúdo.

 

A primeira exigência para criar ou apagar componentes em tempo de execução, e você ter o conhecimento dessas classes existente.

Se você deseja criar um Label, você usará a classe dele, TLabel. Se você deseja criar um botão, você usará a classe TButton, e por aí vai.

 

Você pode adicionar os componentes que você deseja no form para se familiarizar com os nomes das classes deles, depois de um tempinho você conseguirá criar qualquer componente do delphi sem necessidade disso.

 

___________________________________________________________________________

 

Agora iremos criar uma cópia de todos os componentes inseridos no formulário, essa cópia ficará ao lado da 'original', colocada por você utilizando o mouse no início do tópico.

 

Clique duas vezes no evento OnCreate do form:

 

8j8kK.png

 

Agora criaremos nesse evento, novas variáveis do tipo do componente que queremos, como eu inseri 5 componentes, irei criar 5 variáveis.

Para manter um padrão, irei utilizar os mesmos nomes dos originais, mudando apenas o número de identificação final de 1 para 2:

8j8AW.png

 

Agora iremos criar componente por componente, mostrarei primeiro com o Button que é o primeiro da lista, seu usar o 'With / do', do segundo componente em diante eu usarei ele para poupar código.

 

Para deixar o artigo mais curto, comentarei o que cada linha faz no código, e você por si só compreenderá, pois provavelmente já tem noções de Lógica da programação que é a base para programar.

 

Antes, lembro-lhe que quando você clica em um componente, no Object Inspector você encontra várias propriedades, nas quais você pode modifica-las a gosto e etc.

 

O que faremos agora é manipular essas informações direto no código de forma simples, neste mini artigo, usarei as principais, mas você pode testar todas para ampliar seu conhecimento.

 

_____________________________________________________________________________________________________________________________________________________

 

Sobre as duas ultimas linhas, definimos que a posição horizontal (Left) é a mesma do Button1 + 100 pixels, ou seja, pega a posição Left do Button1 e adiciona mais 100.

Na outra definimos a posição Vertical para o mesmo valor da posição (Top) do Button1.

 

E agora criemos o resto:

É necessário se cadastrar para acessar o conteúdo.

 

E o grande resultado:

 

8jcUB.png

 

Adicione XPMan nas uses pra ter a app bonitinha assim.

 

Para apagar, caso tenha criados as variáveis como globais, você pode usar apenas um

É necessário se cadastrar para acessar o conteúdo.

 

Ou usar uma funçãozinha que fiz:

É necessário se cadastrar para acessar o conteúdo.

 

 

Por fim, todos componentes segue essa lógica, se eu esqueci de explicar algo ou errei em alguma parte, fique a vontade para se manifestar no tópico.

Meus brinquedos em WinAPI:

Calculador

MemoryScanner

Faça parte também da DarkProgramming Team!

Link para o comentário
Compartilhar em outros sites

Não a tenho mais. Mas, creio que se ainda tivesse não colocaria, pois aconteceria muito do membro baixar para modificar enquanto lê o tópico ao invés de fazer, o que não é produtivo.

Meus brinquedos em WinAPI:

Calculador

MemoryScanner

Faça parte também da DarkProgramming Team!

Link para o comentário
Compartilhar em outros sites

Com certeza, quis dizer o .pas (somente os códigos, sem form) do projeto, para estudo do projeto completo.

 

LoL '-'

 

@Tópico, Conteudo direto, mas não pude deixar de notar a bela organização do mesmo, obrigado por compartilhar conosco...

 

~Abraços

A Jedi uses the Force for knowledge and defense, never for attack.

-Yoda, Master.

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.