Pengecekan Ejaan dari Kode Delphi Menggunakan MS Word Automation

01

dari 07

Apa itu Otomasi (OLE)? Apa itu Server Otomasi? Apa itu Klien Otomasi?

Misalkan Anda sedang mengembangkan editor HTML seperti Kit HTML. Seperti halnya editor teks lainnya, aplikasi Anda harus mengandung semacam sistem pemeriksaan ejaan. Mengapa membeli komponen pemeriksa ejaan atau menulisnya dari awal saat Anda dapat dengan mudah menggunakan MS Word?

Otomasi OLE

satu aplikasi dapat mengontrol yang lain

klien otomatisasi

server otomatisasi

Automation (juga dikenal sebagai OLE Automation) adalah fitur yang digunakan program untuk mengekspos objek mereka ke alat pengembangan, bahasa makro, dan program lain yang mendukung Automation. Misalnya, Microsoft Outlook dapat mengekspos objek untuk mengirim dan menerima email, untuk penjadwalan, dan untuk manajemen kontak dan tugas.

Dengan menggunakan Otomasi Kata (server), kita dapat menggunakan Delphi (klien) untuk secara dinamis membuat dokumen baru, menambahkan beberapa teks yang ingin kita periksa ejaan, dan kemudian meminta Word memeriksa ejaannya. Jika kami menjaga Microsoft Word diminimalkan, pengguna kami mungkin tidak pernah tahu! Berkat antarmuka OLE Microsoft Word, kami dapat melakukan perjalanan samping dari Delphi dan mencari cara untuk menipu ketika mengembangkan versi editor Notepad kami :)

instagram viewer

Hanya ada satu kesalahan;) Pengguna aplikasi perlu menginstal Word. Tapi jangan biarkan ini menghentikanmu.

Tentu saja, untuk sepenuhnya menguasai penggunaan Otomasi dalam aplikasi Anda, Anda harus memiliki pengetahuan kerja yang terperinci tentang aplikasi yang Anda integrasikan - dalam hal ini MS Word.

Agar program "Office" Anda berfungsi, pengguna harus memiliki aplikasi yang bertindak seperti server Automation. Dalam kasus kami MS Word harus diinstal pada mesin pengguna.

02

dari 07

Menghubungkan ke Word: "Hello Word" Binding Awal vs. Binding Terlambat

Ada beberapa langkah utama dan tiga cara utama untuk mengotomatisasi Word dari Delphi.

Delphi> = 5 - Komponen Server Office XX

Aplikasi TWord

Dokumen TWord

Delphi 3,4 - Binding Awal

Ketik pustaka

Untuk menggunakan perpustakaan jenis Word di Delphi (versi 3 atau 4) pilih Project | Impor Jenis Perpustakaan... menu dan pilih file msword8.olb yang terletak di direktori "Office" Microsoft Office. Ini akan membuat file "Word_TLB.pas" yang merupakan objek terjemahan pascal dari tipe perpustakaan. Termasuk Word_TLB dalam daftar penggunaan unit apa pun yang akan mengakses properti atau metode Word. Merujuk metode Word menggunakan tipe perpustakaan disebut mengikat awal.

Delphi 2 - Binding Terlambat

Mengikat terlambat

harus dihindari, jika mungkin, karena jauh lebih mudah dan lebih cepat untuk menggunakan pustaka jenis - kompiler membantu dengan menangkap kesalahan dalam sumber. Saat menggunakan kata pengikat yang terlambat dinyatakan sebagai variabel tipe Varian. Ini khususnya berarti daripada memanggil metode dan mengakses properti Anda harus tahu apa itu.

04

dari 07

Proyek Pemeriksaan Ejaan - TWordApplication, TWordDocument

Proyek Mantra pada Desain-Waktu
Proyek Mantra pada Desain-Waktu.

Untuk membangun proyek pemeriksa ejaan, kami membutuhkan dua formulir: satu digunakan untuk mengedit teks dan yang lainnya untuk melihat saran ejaan... tapi, mari kita mulai dari awal.

Mulai Delphi. Buat proyek baru dengan satu formulir kosong (form1, secara default). Ini akan menjadi bentuk utama dalam pemeriksaan ejaan dengan proyek MS Word. Tambahkan satu TMemo (Tab standar) dan dua TButtons ke formulir. Tambahkan beberapa teks ke Memo yang mengisi properti Lines. Tentu saja, dengan beberapa kesalahan ketik. Pilih tab Server dan tambahkan Aplikasi TWord dan Dokumen TWord ke formulir. Ubah nama komponen TWordApplication dari WordApplication1 ke WordApp, WordDocument1 ke WordDoc.

Aplikasi TWord, Dokumen TWord

Properti yang dipublikasikan ConnectKind digunakan untuk mengontrol apakah kita terhubung ke turunan Word yang baru diluncurkan atau ke turunan yang sudah ada yang sudah berjalan. Setel ConnectKind ke ckRunningInstance.

Ketika kita membuka atau membuat file di Word, kita membuat objek dokumen. Tugas umum saat menggunakan kata otomatis adalah menentukan area dalam dokumen dan kemudian melakukan sesuatu dengannya, seperti menyisipkan teks dan memeriksanya. Objek yang mewakili area yang berdekatan dalam dokumen disebut Range.

05

dari 07

Proyek Pemeriksa Ejaan - Periksa / Ganti Ejaan

Dapatkan Ejaan Saran di Design-Time
Dapatkan Ejaan Saran di Design-Time.

Idenya adalah untuk loop melalui teks dalam Memo dan mem-parsingnya menjadi kata-kata yang dibatasi ruang. Untuk setiap kata, kami memanggil MS Word untuk mengeja periksa. Model Otomasi Kata berisi metode SpellingErrors yang memungkinkan Anda memeriksa ejaan teks yang terkandung dalam beberapa Rentang.

Rentang didefinisikan hanya berisi kata yang baru saja diuraikan. Metode SpellingErrors mengembalikan koleksi kata yang salah eja. Jika koleksi ini mengandung lebih dari nol kata, kami beralih. Panggilan ke metode GetSpellingSuggestions, menyampaikan kata yang dieja salah, mengisi koleksi SpellingSuggestions dari kata-kata pengganti yang disarankan.

Kami meneruskan koleksi ini ke formulir Periksa Ejaan. Itu adalah bentuk kedua dalam proyek kami.

Untuk menambahkan formulir baru ke proyek, gunakan File | Bentuk baru. Biarkan ia memiliki nama 'frSpellCheck'. Tambahkan tiga komponen TBitBtn pada formulir ini. Dua EditBox-es dan satu ListBox. Perhatikan tiga Label lagi. Label "Not in dictionary" "terhubung" dengan kotak edit edNID. EdNID hanya menampilkan kata yang salah eja. Kotak daftar lbSuggestions akan mencantumkan item dalam koleksi SpellingSuggestions. Saran ejaan yang dipilih ditempatkan di kotak edit edReplaceWith.

Tiga BitButtons digunakan untuk Membatalkan pemeriksaan ejaan, Abaikan kata saat ini dan untuk Ubah kata yang salah eja dengan yang ada di kotak edit edReplaceWith. Properti BitBtn komponen ModalResult digunakan ketika merujuk pada apa yang diklik pengguna. Tombol "Abaikan" memiliki properti ModalResult yang disetel ke mrIgnore, "Ubah" ke mrOk dan "Batalkan" ke mrAbort.

FrSpellCheck memiliki satu variabel string Publik yang disebut sReplacedWord. Variabel ini mengembalikan teks di edReplaceWith ketika pengguna menekan tombol "Ubah".

07

dari 07

Kamus? Kamus!

Sebagai bonus, proyek memiliki kode untuk digunakan Tesaurus Kata. Menggunakan tesaurus ini cukup mudah. Kami tidak menguraikan teks, karena kata yang dipilih metode CheckSynonim dipanggil. Metode ini menampilkan dialog pilihan sendiri. Setelah kata baru dipilih, konten Rentang Dokumen Word digunakan untuk mengganti kata asli.