----- Dalam program jaringan, kita sering menghadapi situasi di mana pengguna diharuskan memasukkan alamat IP. Namun Delphi tidak memberi kita kontrol yang dapat digunakan untuk memasukkan string IP, jadi kita harus menggunakan kontrol Tedit (kotak teks satu baris) untuk menerima string IP yang dimasukkan oleh pengguna. Namun, menggunakan Tedit untuk memasukkan string IP bukanlah ide yang baik karena sangat merepotkan untuk ditangani. Faktanya, ada kontrol Windows di samping kita yang khusus untuk memasukkan string IP, seperti yang ditunjukkan pada gambar. Kontrol IP akan menolak string IP ilegal (hanya angka antara 0..255 yang dapat dimasukkan di setiap bagian); ini memungkinkan Anda dengan mudah mendapatkan nilai IP (bilangan bulat 32-bit) yang sesuai dengan string IP di kontrol menghemat kesulitan dalam mengkonversi antara string IP dan nilai IP; selain itu, Anda juga dapat membatasi rentang IP yang dapat dimasukkan dalam kontrol IP. Pada artikel ini, saya akan memperkenalkan kepada Anda bagaimana menggunakan kontrol IP Windows dalam program Delphi kami.
---- Ada dua pustaka tautan dinamis yang sangat penting di Windows: commctrl.dll dan comctl32.dll, yang merupakan pustaka kontrol khusus Windows (Kontrol Umum Windows). Pustaka kontrol khusus berisi banyak kontrol Windows yang umum digunakan, seperti Statusbar, Coolbar, HotKey, dll. di Delphi, sebagian besar kontrol ini telah dikemas sebagai kontrol visual. Setelah Microsoft meluncurkan Internet Explorer 3, beberapa kontrol baru ditambahkan ke perpustakaan kontrol kustom, termasuk kontrol IP Windows (kontrol edit Alamat IP).
---- Inisialisasi perpustakaan kontrol khusus Windows
---- Windows menyediakan dua fungsi API, InitCommonControls dan InitCommonControlsEx, untuk menginisialisasi pustaka kontrol khusus. Dari namanya, tidak sulit untuk melihat hubungan antara kedua fungsi API ini: fungsi API ini merupakan penyempurnaan dari fungsi API sebelumnya. Jika Anda ingin menggunakan kontrol IP dalam program Anda, Anda harus menggunakan InitCommonControlsEx untuk menyelesaikan inisialisasi pustaka dan kelas kontrol kustom. Prototipe fungsi InitCommonControlsEx adalah sebagai berikut (sintaks Pascal):
----...
---- Buat kontrol IP
----...
---- Gunakan kontrol IP. Dalam program ini, kami berkomunikasi dengan kontrol IP dengan mengirimkan pesan ke sana. Kontrol IP dapat merespons enam pesan berikut. Pesan-pesan ini dan artinya ditunjukkan pada tabel di bawah ini:
----...
---- Jika Anda ingin mendapatkan nilai IP yang sesuai dengan string IP di kontrol IP, Anda harus mengirim pesan IPM_GETADDRESS ke kontrol IP, dan Anda perlu menggunakan alamat integer 32-bit sebagai parameter terakhir SendMessage .
----...
---- Pesan pemberitahuan kontrol IP
---- Ketika string IP diubah atau fokus input ditransfer, kontrol IP akan mengirimkan pesan pemberitahuan IPN_FIELDCHANGED ke jendela induknya. Dalam kebanyakan kasus, kita dapat mengabaikan pesan notifikasi ini. Berikut contoh penanganan pesan notifikasi IPN_FIELDCHANGED:
Prosedur Tform1.WndProc(var Msg: TMessage);var p:PNMHDR;begininherited; jika Msg.Msg=WM_NOTIFYlalu mulai p:=Pointer(Msg.lParam); jika p^.code=IPN_FIELDCHANGED lalu mulai{...pemrosesan Kontrol IP Pesan notifikasi IPN_FIELDCHANGED...} end;end;end;