API (Antarmuka Pemrograman Aplikasi) Antarmuka Pemrograman Aplikasi, yang harus digunakan dalam semua bahasa komputer. Apa itu API? API adalah cara bagi program untuk menggunakan layanan yang disediakan oleh sistem operasi. Penyaringan uji dan perangkat keras saat pemrograman. Oleh karena itu, jika Anda dapat menggunakan API untuk mengimplementasikan fungsi selama pemrograman, kami mencoba menggunakannya.
l Cara menggunakan API Windows di Delphi
Dalam pekerjaan pengembangan harian, kita sering menggunakan fungsi API Windows, jadi di mana fungsi API ada? Kita dapat memahami cara ini bahwa fungsi API dienkapsulasi dalam file sistem DLL yang disediakan oleh sistem Windows. Misalnya, prosedur bip yang sering kami gunakan diimplementasikan dengan memanggil pesan di user32.dll di direktori sistem Windwos; DLLS yang paling sering digunakan adalah: advapi32.dll, kernel32.dll, mpr.dll, versi.dll, comctl32.dll, gdi32.dll, opengl32.dll, user32.dll, wintrust.dll, msimg32.
Jadi bagaimana Delphi menggunakan fungsi API ini? Karena fungsi API ada dalam sistem DLL, kita dapat memanggil fungsi API seperti yang kita sebut DLL yang kita tulis. Ada dua cara untuk memanggil fungsi DLL, satu adalah metode statis dan yang lainnya adalah metode dinamis. API yang panggilan jendela itu semuanya statis, mengapa? Ini karena DLL ini adalah layanan paling dasar yang disediakan oleh sistem operasi.
l api dan pemrograman harian
Delphi merangkum sebagian besar fungsi API Windows (terutama di Windows.pas Unit), yang harus dikatakan dapat mencapai sebagian besar pekerjaan kami. Tetapi kadang -kadang ketika ada persyaratan khusus, kita mungkin harus memanggil beberapa API yang belum dienkapsulasi oleh Delphi, dan kadang -kadang bahkan menyebut fungsi API yang belum diterbitkan oleh Windows. Jadi, bagaimana Anda menyebut fungsi API ini? Seperti yang disebutkan sebelumnya, cukup gunakan panggilan metode statis. Untuk panggilan yang lebih rinci, silakan merujuk ke informasi yang relevan.
Kunci untuk menyebut fungsi API yang tidak dienkapsulasi ini dari Delphi adalah mengetahui parameternya. Anda dapat memeriksa MSDN terbaru atau informasi terkait.
L API dan VCL
MFC Microsoft memiliki sejumlah besar API Windows yang dienkapsulasi, dan VCL tidak terkecuali. Sebagian besar implementasi fungsi VCL tidak dapat dipisahkan dari API Windows, baik dipanggil secara langsung atau hanya dienkapsulasi dan kemudian dipanggil. Misalnya, implementasi pengecatan ulang TControl (di unit kontrol):
Prosedur tconstrol.repaint;
var
DC: HDC;
Mulai
if (visible atau (csdesigning in componentstate) dan not (
csnodesignvisible di controlstyle)) dan (orangtua <> nil) dan
Parent.handleallocated kemudian
Jika csopaque di controlStyle maka
Mulai
// getDC DLL dipanggil secara langsung
DC: = getDC (Parent.Handle);
Mencoba
// langsung hubungi GDI32.dll's Intersectcliprect
Intersectcliprect (DC, kiri, atas, kiri + lebar, atas +
Tinggi);
// Parent.PaintControls memanggil sejumlah besar API
Parent.PaintControls (DC, Self);
Akhirnya
// Langsung hubungi user32.dll's dirilisc
Dirilis (Parent.Handle, DC);
akhir;
akhir yang lain
Mulai
// Dua berikut dipanggil dengan enkapsulasi
Membatalkan;
Memperbarui;
akhir;
akhir;
Dapat dilihat bahwa ada API di mana -mana di VCL. Peduli tentang parameter API yang menjengkelkan itu.
Apa itu com? COM (Model Objek Komponen), model objek komponen, adalah model komponen perangkat lunak berdasarkan platform Windows yang memungkinkan berbagai objek independen untuk berkomunikasi satu sama lain tanpa kendala bahasa komputasi. Definisi ini relatif abstrak. Objek COM diakses melalui antarmuka. Tujuan dari objek COM adalah untuk mewujudkan berbagi sumber daya. .
l vcl dan com
COM adalah sesuatu yang telah dipuji oleh Microsoft sebelumnya, jadi di mana -mana di sistem operasi Windows. berasal dari tcustomadodataset yang diwarisi, definisi tcustomadodataset adalah sebagai berikut:
Tcustomadodataset = kelas (tdataset, iunknown,
RecordsetEventsVt)
Pribadi
FrecordsetObject: _Recordset;
FFindCursor: _Recordset;
FlookupCursor: _Recordset;
FlockCursor: _Recordset;
Frowset: irowset;
Faccessor: Iaccessor;
FrowsetFind: IrowsetFind;
Fhaccessor: Haccessor;
Folerecbufsize: integer;
...
akhir;
ADO (Microsoft ActiveX Data Objects), kumpulan objek COM yang mengakses database melalui penyedia DB Microsoft OLE. Misalnya, kami akan mempelajari proses implementasi metode pertama Tadoquery:
Tadoquery.first-> tdataset.first-> tdataset.internalfirst-> tcustomadodataset.internalfirst-> recordset15
Tadoquery mewarisi dari tcustomadodataset, dan tcustomadodataset mewarisi dari tdataset, tdataset. Internalfirst mendefinisikan metode virtual, dan subclass tcustomadodataset.INternalfirst menindasnya. TcustomadodataSet.
Tidak sulit untuk menemukan bahwa Tadoquery.Peng pertama pada akhirnya diimplementasikan melalui antarmuka yang memanggil objek COM.
l delphi dan windows shell
Apa itu shell windows? Windows Shell adalah lingkungan untuk operasi antarmuka Windows, dan juga memberi kita skalabilitas yang kuat untuk pemrograman. Kami menggunakan shell windows untuk memprogram fungsi -fungsi tertentu, yang disebut ekstensi shell. Misalnya, jika mesin Anda telah menginstal WinRar, Anda akan melihat menu WinRar Compressed di menu klik kanan di folder. Fungsi -fungsi ini diimplementasikan melalui ekstensi shell windows.
Windows Shell berbasis COM, sehingga semua ekstensi shell harus diimplementasikan melalui antarmuka. Delphi juga mendefinisikan banyak antarmuka ekstensi shell, di unit Sumber/RTL/WIN/SHLOBJ.PAS di direktori instalasi Delphi7.
Ada contoh ListView Virtual di Direktori Demo Delphi, yaitu mewujudkan penjelajahan disk melalui Windows Shell Extensions.
Menyematkan bahasa perakitan dalam kode juga merupakan fitur utama dari Delphi.
Bahasa perakitan adalah bahasa komputer tingkat rendah yang terkait erat dengan perangkat keras. Oleh karena itu, kami mencoba untuk tidak menggunakannya dalam pemrograman harian, tetapi dalam beberapa kesempatan khusus (seperti persyaratan kinerja tinggi dan manipulasi perangkat keras langsung), ia masih dapat memainkan peran besar.
Akhir.
(Jika Anda perlu cetak ulang, harap tunjukkan sumber dan penulis http://haitian.myrice.com)