Ir para conteúdo
🥇 [Exclusivo] Seja um Membro VIP EXTREME! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

TControl, TComponent, TWinControl: Qual a diferença?


Posts Recomendados

1 - Introdução

 

É comum durante a programação em Delphi, encontrarmos referências aos termos TControl, TComponent, entre outros. Se você não é o tipo de programador que se dedica a escrever componentes, tais termos podem parecer totalmente sem importância.

 

img187imageshackusimg18.png

 

No entanto, existe situações em que devemos ter, no mínimo, uma idéia vaga do que eles significam. Um exemplo, são os trechos de códigos que exigem cast (conversão explícita) de um tipo para outro. Vejamos o trecho de código a seguir:

 

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

 

Temos uma variável controle do tipo TComponent. A linha:

 

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

 

atribui a esta variável um TEdit. Esta atribuição é válida, já que TEdit descende de TComponente, como veremos mais adiante. Veja agora a linha:

 

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

 

Aqui o uso do operador as é obrigatório por uma razão simples: um TEdit é um TComponent, mas um TComponent não é um TEdit. Assim, o cast é nossa forma de informar ao compilador que estamos certos de que a variável controle armazena uma referência a um TEdit, e que a conversão pode ser feita sem riscos. Veja agora a última linha:

 

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

 

Este linha não compilará, visto que um TComponent não possui as propriedades e métodos da classe TEdit. TEdit, como veremos no gráfico a seguir, descende de TWinControl.

 

img187imageshackusimg18.png

 

2 - A hierarquia VCL

 

Um TEdit descende de TWinControl, mas, um TLabel descende de TGraphicControl. Porque? Vejamos o gráfico da hierarquia VCL:

 

33nfg2f.jpg

 

Este gráfico nos mostra que tudo em Delphi descende de TObject. Vamos ver se é verdade. Execute o trecho de código a seguir:

 

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

 

Ao executar o código você perceberá que o teste resulta verdadeiro. Agora, respondendo a pergunta do tópico: Um TEdit descende de TCustomControl, que por sua vez descende de TWinControl. Todos os componentes que aceitam entrada do usuário ou que servem como encapsuladores para componentes visuais do Windows descendem de TWinControl. TLabel, por sua vez, descende de TGraphicControl por não receber entrada do usuário e ser considerado um controle de peso leve.

 

img187imageshackusimg18.png

 

3 - TCustomEdit

 

Dissemos que um TEdit descende de TWinControl. Porém, é importante conhecer a classe que faz o elo entre TEdit e TWinControl. Esta classe é chamada de TCustomEdit e serve como base para todos os componentes do tipo texto e serve como ponto inicial para a criação de um TEdit personalizado, ou seja, você pode facilmente estendê-la ou simplesmente redefinir muitos de seus métodos e propriedades.

 

img187imageshackusimg18.png

 

4 - Conclusão

 

Entender a hierarquia VCL é importante não somente para tirar o máximo proveito dos componentes que o Delphi oferece, como também escrever códigos mais compactos e robustos. E, ainda que não seja o seu objetivo, escrever componentes personalizados pode ser um passatempo muito interessante. Você também deveria tentar.

 

img187imageshackusimg18.png

 

Creditos:

 

Lele2

Osmar

Link para o comentário
https://www.webcheats.com.br/topic/717790-tcontrol-tcomponent-twincontrol-qual-a-diferen%C3%A7a/
Compartilhar em outros sites

cara

voce axa que postando esses tutoriais fracos

irá ajudar em alguma coisa pra vc virar geek?

voce tem que ajudar membros, com codes e tudo mais, num é ir ali no outro forum

e pegar uns tutoriais prontos!

 

ajude membros que voce consegue.

 

além de que isso é muito simples é lógica!

Link para o comentário
https://www.webcheats.com.br/topic/717790-tcontrol-tcomponent-twincontrol-qual-a-diferen%C3%A7a/#findComment-3485874
Compartilhar em outros sites

cara

voce axa que postando esses tutoriais fracos

irá ajudar em alguma coisa pra vc virar geek?

voce tem que ajudar membros, com codes e tudo mais, num é ir ali no outro forum

e pegar uns tutoriais prontos!

 

ajude membros que voce consegue.

 

além de que isso é muito simples é lógica!

 

Primeiro: eu nao fui em outro fórum e peguei o post.

Segundo: eu nao estou postando isso para virar Geek eu posto isso porque gosto e se um dia virar geek foi pelos meus post que tiraram as duvidas de alguns membros

Terceiro : eu vou começar postando o básico para ir avançando

Quarto : se eu postasse os codes prontos nao ia ter porque de eu explicar algo ja estaria tudo pronto e vocês nao iam aprender a usar isso em alguma situação

Quinto : eu tiro a duvidas de alguns membros atravez dos meus posts, ou responde eles pelos comentarios ^^ agora senta la claudia

Link para o comentário
https://www.webcheats.com.br/topic/717790-tcontrol-tcomponent-twincontrol-qual-a-diferen%C3%A7a/#findComment-3485973
Compartilhar em outros sites

como calcular porcentagem?

gerando número aleatório?

 

que membro que vai ficar fazendo isso!

se voce nao reparou, a maioria das perguntas é sobre adress, selectdirectory, resource, coisas de hack mesmo.

e postar isso serve para..???

 

não ajuda ngm

 

e dizer, ir em outro forum pegar, significa que nao foi vc que fez, vc copiou de algm.

 

se for postar, poste tutoriais feitos por vc, e sobre os assuntos que eu citei!

 

 

@para nao floodar

vou editar aqui mesmo..

 

foi só uma dica, pois as mais pedidas foi o que eu disse.

agora se vc quiser ficar postando esse negoço ai

continue, só estou dizendo que nao vale a pena!

 

só se for para ganhar posts!

Link para o comentário
https://www.webcheats.com.br/topic/717790-tcontrol-tcomponent-twincontrol-qual-a-diferen%C3%A7a/#findComment-3486019
Compartilhar em outros sites

como calcular porcentagem?

gerando número aleatório?

 

que membro que vai ficar fazendo isso!

se voce nao reparou, a maioria das perguntas é sobre adress, selectdirectory, resource, coisas de hack mesmo.

e postar isso serve para..???

 

não ajuda ngm

 

e dizer, ir em outro forum pegar, significa que nao foi vc que fez, vc copiou de algm.

 

se for postar, poste tutoriais feitos por vc, e sobre os assuntos que eu citei!

 

Essa area pede para fazer somente post relacionados a hacker ?

E por que em vez de vim chorar num dos meus tópicos nao vai fazer o seu ?

e eu ja postei como criar um treiner e como criar uma dll você que nao viu ^^

Agora da para parar de vir reclamar dos meus tópicos ja que o essa parte do forum me permite postar qualquer coisa relacionada a Delphi ^^

Link para o comentário
https://www.webcheats.com.br/topic/717790-tcontrol-tcomponent-twincontrol-qual-a-diferen%C3%A7a/#findComment-3486048
Compartilhar em outros sites

cara

voce axa que postando esses tutoriais fracos

irá ajudar em alguma coisa pra vc virar geek?

voce tem que ajudar membros, com codes e tudo mais, num é ir ali no outro forum

e pegar uns tutoriais prontos!

 

ajude membros que voce consegue.

 

além de que isso é muito simples é lógica!

 

tutoriais fracos

Engano seu, isso ai é muito útil.

Eu mesmo, nos últimos jogos que criei, uso muito esse básico da OOP.

Basta usar a criatividade que você consegue fazer coisas incríveis com poucas linhas de código.

 

voce tem que ajudar membros, com codes e tudo mais

Dando códigos prontos sem explicar nada?

 

se voce nao reparou, a maioria das perguntas é sobre adress, selectdirectory, resource, coisas de hack mesmo.

e postar isso serve para..???

Ajudar quem realmente quer aprender a programar, e não só a copiar hacks de meia tigela.

 

 

Bom lele2, não sei se você copiou isso, não me interessa.

E, diferente dos seus outros tópicos, ficou bom.Parabéns.

Link para o comentário
https://www.webcheats.com.br/topic/717790-tcontrol-tcomponent-twincontrol-qual-a-diferen%C3%A7a/#findComment-3491501
Compartilhar em outros sites

Isto é muito útil ²

Eu nem sabia disto, O conteudo está muito bom mesmo, vou ler depois!

Como luxfer disse, o que adianta passar códigos prontos para membros que não querem aprender e só copiar.

lele2 postou um conteudo muito interessante para estudo, sendo que poucos não gosta de aprender ^^.

4I1ShmNRGyg2k.webp

Link para o comentário
https://www.webcheats.com.br/topic/717790-tcontrol-tcomponent-twincontrol-qual-a-diferen%C3%A7a/#findComment-3491633
Compartilhar em outros sites

Muito interessante, eu nem sabia o qe era isso, só lia e fingia qe n via, juro, kk'

gostei da tua inciativa, merece ta na quicklist...

Link para o comentário
https://www.webcheats.com.br/topic/717790-tcontrol-tcomponent-twincontrol-qual-a-diferen%C3%A7a/#findComment-3491732
Compartilhar em outros sites

Concordo com vocês esses sao tutoriais para você aprender e quem nao der conta de fazer tal coisa eu ajudarei e se ela nao der conta mesmo assim ai eu passaria a source e ajudaria ela ate ela entender

Link para o comentário
https://www.webcheats.com.br/topic/717790-tcontrol-tcomponent-twincontrol-qual-a-diferen%C3%A7a/#findComment-3502777
Compartilhar em outros sites

Ficou Bom.

É Bem Básico, Mas Ajuda Muita Gente.

Pois É Mais Fácil Aprender o Básico.

Do Que Aprender o Avançado sem Saber o Básico.

Obrigado Por Compartilhar.

look_by_denwc-d4wlgc0.png

Link para o comentário
https://www.webcheats.com.br/topic/717790-tcontrol-tcomponent-twincontrol-qual-a-diferen%C3%A7a/#findComment-3503057
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
×
×
  • 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.