API (Interface de programmation d'application) Interface de programmation d'application, qui doit être utilisée dans tous les langages de l'ordinateur. Qu'est-ce qu'une API? L'API est un moyen pour les programmes d'utiliser les services fournis par le système d'exploitation. Test de filtrage et de matériel lors de la programmation. Par conséquent, si vous pouvez utiliser des API pour implémenter des fonctions lors de la programmation, nous essayons de les utiliser.
L Comment utiliser l'API Windows à Delphi
Dans le travail de développement quotidien, nous utilisons souvent les fonctions d'API Windows, alors où existe les fonctions API? Nous pouvons comprendre de cette façon que la fonction API est encapsulée dans le fichier système DLL fourni par le système Windows. Par exemple, la procédure de bip que nous utilisons souvent est implémentée en appelant Messagebeep dans user32.dll dans le répertoire système Windwos; Les DLL les plus fréquemment utilisées sont: advapi32.dll, kernel32.dll, mpr.dll, version.dll, comctl32.dll, gdi32.dll, openGL32.dll, user32.dll, wintrust.dll, MSIMG32.
Alors, comment Delphi utilise-t-il cette fonction API? Étant donné que la fonction API existe dans la DLL système, nous pouvons appeler la fonction API comme nous appelons la DLL que nous avons écrite. Il existe deux façons d'appeler les fonctions DLL, l'une est la méthode statique et l'autre est la méthode dynamique. Les API qui appellent les fenêtres sont toutes statiques, pourquoi? En effet, ces DLL sont les services les plus élémentaires fournis par le système d'exploitation.
L API et programmation quotidienne
Delphi résume la plupart des fonctions de l'API Windows (principalement dans l'unité Windows.pas), ce qui doit être dit pour accomplir la plupart de nos travaux. Mais parfois, lorsqu'il existe des exigences particulières, nous devrons peut-être appeler des API qui n'ont pas été encapsulées par Delphi, et parfois même d'appeler des fonctions d'API qui n'ont pas été publiées par Windows. Alors, comment appelez-vous ces fonctions API? Comme mentionné précédemment, utilisez simplement des appels de méthode statique. Pour les appels plus détaillés, veuillez vous référer aux informations pertinentes.
La clé pour appeler ces fonctions API non encapsulées de Delphi est de connaître les paramètres. Vous pouvez consulter les dernières informations MSDN ou connexes.
L API et VCL
Le MFC de Microsoft a un grand nombre d'API Windows encapsulé, et VCL ne fait pas exception. La plupart de la mise en œuvre des fonctions VCL ne peut pas être séparée de l'API Windows, soit directement appelée ou simplement encapsulée puis appelée. Par exemple, la mise en œuvre de Repainte de TControl (dans l'unité de contrôle):
procédure tControl.repaint;
var
DC: HDC;
Commencer
if (visible ou (csdesigning dans composantState) et non (
csnoDesignVisible dans ControlStyle)) et (parent <> nil) et
Parent.Handleallocated alors
Si Csopaque dans ControlSyle, alors
Commencer
// GetDC de DLL est appelé directement
Dc: = getdc (parent.handle);
Essayer
// appelle directement GDI32.DLL IntersectCliprect
IntersectCliprect (DC, gauche, haut, gauche + largeur, haut +
Hauteur);
// Parent.paintControls appelle un grand nombre d'API
Parent.paintControls (DC, self);
Enfin
// appelle directement User32.dll
Libéréc (parent.handle, DC);
fin;
fin d'autre
Commencer
// Les deux suivants sont appelés par encapsulation
Invalider;
Mise à jour;
fin;
fin;
On peut voir qu'il y a des API partout dans VCL. se souciez de ces paramètres API ennuyeux.
Qu'est-ce que com? Com (Modèle d'objet composant), un modèle d'objet composant, est un modèle de composant logiciel basé sur la plate-forme Windows qui permet à différents objets indépendants de communiquer entre eux sans aucune contrainte de langage informatique. Cette définition est relativement abstraite. Les objets COM sont accessibles via une interface. Le but de COM est de réaliser le partage des ressources. .
L VCL et COM
COM est quelque chose que Microsoft a été fortement loué, il est donc partout dans le système d'exploitation Windows. provient de tCustomAdodataset hérité, la définition de tCustomAdodataset est la suivante:
TCustomAdodataset = classe (tdataset, iunknown,
RecordSetEventsVt)
Privé
FrecordSetObject: _recordSet;
FfindCursor: _recordSet;
Flookupcursor: _recordSet;
FlockCursor: _RecordSet;
Frowset: Irowset;
CONCESSEUR: IACCESSEUR;
FrowsetFind: irowsetFind;
Fhaccessor: Haccessor;
FolerecBufSize: entier;
…
fin;
ADO (Microsoft ActiveX Data Objets), une collection d'objets COM qui accèdent à la base de données via le fournisseur Microsoft OLE DB. Par exemple, nous étudierons le processus de mise en œuvre de la première méthode de Tadoquery:
Tadoquery.first-> tdataset.first-> tdataset.internalfirst-> tCustomAdodataset.internalFirst-> RecordSet15.
Tadoquière hérite de TCustomAdodataSet, et TCustomAdodataset hérite de TDATASET, TDATASET.InternalFirst définit une méthode virtuelle, et la sous-classe TCustomAdodataset.internalFirst le remplace. TCustomAdodataSet.
Il n'est pas difficile de constater que Tadoquery. premier est finalement implémenté via l'interface appelant l'objet com.
L Delphi et Shell Windows
Qu'est-ce qu'un shell Windows? Le shell Windows est un environnement pour le fonctionnement de l'interface Windows, et il nous offre également une puissante évolutivité pour la programmation. Nous utilisons des shells Windows pour programmer certaines fonctions, appelées extensions de shell. Par exemple, si votre machine a installé Winrar, vous verrez le menu Winrar compressé dans le menu avec le bouton droit dans le dossier. Ces fonctions sont implémentées via des extensions de shell Windows.
Le shell Windows est basé sur COM, donc toutes les extensions de shell doivent être implémentées via l'interface. Delphi définit également de nombreuses interfaces d'extension de shell, dans l'unité source / rtl / win / shlobj.pas dans le répertoire d'installation Delphi7.
Il y a un exemple de Virtual ListView dans le répertoire de démonstration de Delphi, qui est de réaliser la navigation sur le disque à travers les extensions de shell Windows.
L'intégration du langage d'assemblage dans le code est également une caractéristique majeure de Delphi.
Le langage d'assemblage est un langage informatique de niveau relativement bas qui est étroitement lié au matériel. Par conséquent, nous essayons de ne pas l'utiliser dans la programmation quotidienne, mais à certaines occasions spéciales (telles que les exigences de performances élevées et la manipulation du matériel direct), il peut toujours jouer un grand rôle.
La fin.
(Si vous avez besoin de réimprimer, veuillez indiquer la source et l'auteur http://haitian.myrice.com)