Você está aqui: Delphi ::: Win32 API (Windows API) ::: Passos Iniciais

O que são funções de Callback do Windows (Windows Callback Functions) e como usá-las em programas Delphi

Quantidade de visualizações: 11451 vezes
O Delphi é um dos ambientes mais amigáveis quando o assunto é chamar funções da API do Windows ou localizadas em DLLs. O problema é que, muitas vezes, as funções da API do Windows, tais como EnumFontFamilies, exigem que o programador forneça um ponteiro para um função. No caso de EnumFontFamilies, esta função será chamada para cada fonte encontrada e que pertença à família de fontes especificada. Veja sua assinatura na documentação da API do Windows:

Este trecho de código ou resolução de exercício faz parte do Super Pack 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos em Java, Python, VisuAlg, Portugol, Delphi, C#, C, C++, VB.NET, Golang, Pascal, Ruby, PHP, e várias outras linguagens.

Aprenda a programar resolvendo problemas do mundo real. Tudo em português, com comentários em português.

Quero Ser Apoiador(a)


Então, nós chamamos a função EnumFontFamilies() e esta, por sua vez, chama a função fornecida para o parâmetro lpEnumFontFamProc a cada fonte encontrada. É aqui que nossa discussão reside. O parâmetro lpEnumFontFamProc recebe um ponteiro para uma função definida pelo programador e tal função é chamada de função de Callback.

Note que a maioria das funções de enumeração do Windows nos permitem fornecer dados adicionais por meio do parâmetro lParam. Além disso, nós somos os responsáveis pela criação da função de Callback no Delphi. Veja um trecho de código no qual listamos todas as fontes pertencentes a uma determinada família de fonte:

Este trecho de código ou resolução de exercício faz parte do Super Pack 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos em Java, Python, VisuAlg, Portugol, Delphi, C#, C, C++, VB.NET, Golang, Pascal, Ruby, PHP, e várias outras linguagens.

Aprenda a programar resolvendo problemas do mundo real. Tudo em português, com comentários em português.

Quero Ser Apoiador(a)


Estude este código atentamente e note como usamos o parâmetro lParam da função de Callback para passar a referência a um Memo. Esta técnica nos permite acessar elementos do formulário a partir da função de Callback.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.

Link para compartilhar na Internet ou com seus amigos:

Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 31 usuários muito felizes estudando em nosso site.