API (interface de programação de aplicativos) Interface de programação de aplicativos, que deve ser usada em todas as linguagens do computador. O que é uma API? A API é uma maneira de os programas usarem os serviços fornecidos pelo sistema operacional. Filtragem e hardware de teste Ao programar. Portanto, se você pode usar APIs para implementar funções durante a programação, tentamos usá -las.
l Como usar a API do Windows em Delphi
No trabalho diário de desenvolvimento, geralmente usamos as funções da API do Windows, então onde as funções da API existem? Podemos entender dessa maneira que a função da API é encapsulada no arquivo do sistema DLL fornecido pelo sistema Windows. Por exemplo, o procedimento do BEEP que costumamos usar é implementado chamando a MessageBeep no User32.dll no diretório do sistema Windwos; DLPHITHE DLLs usados com mais frequência são: advapi32.dll, kernel32.dll, mpr.dll, versão.dll, comctl32.dll, gdi32.dll, opengl32.dll, user32.dll, wintrust.dll, msimg32.
Então, como Delphi usa essa função da API? Como a função da API existe na DLL do sistema, podemos chamar a função da API, assim como chamamos a DLL que escrevemos. Existem duas maneiras de chamar funções de DLL, uma é o método estático e o outro é o método dinâmico. As APIs que chamam as janelas são todas estáticas, por quê? Isso ocorre porque essas DLLs são os serviços mais básicos fornecidos pelo sistema operacional.
l API e programação diária
A Delphi encapsula a maioria das funções da API do Windows (principalmente na unidade Windows.PAS), que deve ser considerada capaz de realizar a maior parte do nosso trabalho. Mas, às vezes, quando existem requisitos especiais, podemos ter que chamar algumas APIs que não foram encapsuladas por Delphi e, às vezes, até chamam as funções da API que não foram publicadas pelo Windows. Então, como você chama essas funções da API? Como mencionado anteriormente, basta usar chamadas de método estático. Para chamadas mais detalhadas, consulte as informações relevantes.
A chave para chamar essas funções de API não encapsuladas da Delphi é conhecer os parâmetros. Você pode verificar o MSDN mais recente ou informações relacionadas.
L API e VCL
O MFC da Microsoft possui um grande número de APIs do Windows encapsuladas, e o VCL não é exceção. A maior parte da implementação das funções VCL não pode ser separada da API do Windows, diretamente chamada ou simplesmente encapsulada e depois chamada. Por exemplo, a implementação da repintura do TControl (na unidade de controle):
procedimento tControl.Repaint;
var
DC: HDC;
Começar
se (visível ou (csdesigning no componentState) e não (
CSNODESIGNVISSIBLE NO CONTROLSTYLE)) e (pai <> nil) e
Parent.HandLealLocated então
Se csopaque no estilo ControlStyle então
Começar
// O GETDC da DLL é chamado diretamente
Dc: = getdc (parent.handle);
Tentar
// Ligue diretamente ao intersectcliprect de GDI32.dll
IntersectCliPrect (DC, esquerda, superior, esquerda + largura, top +
Altura);
// parent.paintcontrols chama um grande número de APIs
Parent.paintcontrols (DC, self);
Finalmente
// Ligue diretamente ao user32.dll's lançados
Lançou -se (parent.handle, dc);
fim;
fim mais
Começar
// Os dois seguintes são chamados por encapsulamento
Invalidar;
Atualizar;
fim;
fim;
Pode -se observar que existem APIs em todos os lugares no VCL. se preocupa com esses parâmetros irritantes da API.
O que é com? Com (modelo de objeto componente), um modelo de objeto de componente, é um modelo de componente de software com base na plataforma Windows que permite que diferentes objetos independentes se comuniquem entre si sem restrições de linguagem de computação. Essa definição é relativamente abstrata. Os objetos com são acessados por meio de uma interface. O objetivo do objeto COM é realizar o compartilhamento de recursos. Dll).
L VCL e COM
Com é algo que a Microsoft elogiou fortemente, por isso está em toda parte no sistema operacional do Windows. é de tcustomadodataset herdado, a definição de tcustomadodataset é a seguinte:
Tcustomadodataset = classe (tdataset, iunknown,
Registroseteventsvt)
Privado
FrecordSetObject: _RecordSet;
Ffindcursor: _recordset;
FlookUpCursor: _RecordSet;
FlockCursor: _RecordSet;
Frega: IROWSET;
FACCESSOR: IACESSOR;
FROWSETFIND: IROWSETFIND;
FHACCESSOR: HACCESSOR;
FolrecBufSize: Inteiro;
...
fim;
O ADO (Microsoft ActiveX Data Objects), uma coleção de objetos COM que acessam o banco de dados através do provedor Microsoft OLE DB. Por exemplo, estudaremos o processo de implementação do primeiro método de TadoQuery:
TadoQuery.First-> tdataset.first
Os herdos de TadoQuery de tcustomadodataset e tcustomadodataset herdam de tdataset, tdataset.internalfirst define um método virtual e a subclasse tcustomadodataset.internalfirst a substitui. Tcustomadodataset.
Não é difícil descobrir que o TadoQuery. Primeiro é implementado por meio da interface chamando o objeto COM.
L Delphi e Windows Shell
O que é um shell do Windows? O Windows Shell é um ambiente para operação da interface do Windows e também nos fornece uma poderosa escalabilidade para a programação. Usamos o Windows Shells para programar determinadas funções, chamadas de extensões de shell. Por exemplo, se a sua máquina tiver instalada a Winrar, você verá o menu compactado Winrar no menu do clique com o botão direito do mouse na pasta. Essas funções são implementadas através de extensões do Windows Shell.
O shell do Windows é baseado em COM; portanto, todas as extensões de shell devem ser implementadas por meio de interfaces. A Delphi também define muitas interfaces de extensão de shell, na unidade de origem/rtl/win/shlobj.pas no diretório de instalação Delphi7.
Há um exemplo de Virtual ListView no diretório de demonstração da Delphi, que é realizar a navegação em disco através de extensões do Windows Shell.
Incorporar a linguagem de montagem no código também é um recurso importante do Delphi.
A linguagem de montagem é uma linguagem de computador de nível relativamente baixa que está intimamente relacionada ao hardware. Portanto, tentamos não usá -lo na programação diária, mas em algumas ocasiões especiais (como requisitos de alto desempenho e manipulação direta de hardware), ele ainda pode desempenhar um grande papel.
O fim.
(Se você precisar reimprimir, indique a fonte e o autor http://haitian.myrice.com)