01
07
(OLE) Otomasyonu nedir? Otomasyon Sunucusu nedir? Otomasyon İstemcisi nedir?
Diyelim ki bir HTML düzenleyicisi geliştiriyorsunuz HTML Kiti. Diğer herhangi bir metin editörü gibi, uygulamanız bir tür yazım denetimi sistemi içermelidir. MS Word'ü kolayca kullanabileceğinizde neden yazım denetimi bileşenleri satın alabilir veya sıfırdan yazabilirsiniz?
OLE Otomasyonu
bir uygulama diğerini kontrol edebilir
otomasyon istemcisi
otomasyon sunucusu
Otomasyon (OLE Otomasyonu olarak da bilinir), programların nesnelerini geliştirme araçlarına, makro dillere ve Otomasyonu destekleyen diğer programlara maruz bırakmak için kullandığı bir özelliktir. Örneğin, Microsoft Outlook nesneleri e-posta gönderme ve alma, zamanlama ve kişi ve görev yönetimi için açığa çıkarabilir.
Word Automation (sunucu) kullanarak, dinamik olarak yeni bir belge oluşturmak, yazım denetimi yapmak istediğimiz bazı metinler eklemek ve daha sonra Word'ün yazım denetimini yapmak için Delphi'yi (istemci) kullanabiliriz. Microsoft Word'ü simge durumuna küçültüyorsak, kullanıcılarımız asla bilemeyebilir! Microsoft Word'ün OLE arayüzü sayesinde, Delphi'den bir yan geziye çıkabilir ve Not Defteri düzenleyici sürümümüzü geliştirirken hile yapmanın yollarına bakabiliriz :)
Yalnızca bir aksaklık vardır;) Uygulama kullanıcılarının Word'ü yüklemeleri gerekir. Ama bunun seni durdurmasına izin verme.
Tabii ki, uygulamalarınızda Otomasyon kullanımında tamamen ustalaşmak için, entegre ettiğiniz uygulamalarla ilgili ayrıntılı çalışma bilgisine sahip olmalısınız - bu durumda MS Word.
"Office" programlarınızın çalışması için kullanıcının Otomasyon sunucusu gibi davranan uygulamaya sahip olması gerekir. Bizim durumumuzda, MS Word'ün kullanıcının makinesine yüklenmesi gerekmektedir.
02
07
Word'e Bağlanma: "Merhaba Kelime" Erken Ciltleme vs. Geç bağlama
Delphi'den Word'ü otomatikleştirmenin birkaç ana adımı ve üç ana yolu vardır.
Delphi> = 5 - Office XX Sunucu Bileşenleri
TWordApplication
TWordDocument
Delphi 3,4 - Erken Ciltleme
Tür kitaplıkları
Word'ün tür kitaplığını Delphi'de (sürüm 3 veya 4) kullanmak için Project | Tür Kitaplığı… menüsünü içe aktarın ve Microsoft Office'in "Office" dizininde bulunan msword8.olb dosyasını seçin. Bu, tür kitaplığının nesne pascal çevirisi olan "Word_TLB.pas" dosyasını oluşturur. Dahil etmek Word_TLB Word özelliklerine veya yöntemlerine erişecek herhangi bir birimin kullanım listesinde. Tür kitaplığını kullanarak Word yöntemlerine başvurma denir erken bağlama.
Delphi 2 - Geç Bağlama
Geç bağlama
tür kitaplıklarını kullanmak çok daha kolay ve hızlı olduğu için, mümkünse kaçınılmalıdır - derleyici kaynaktaki hataları yakalamaya yardımcı olur. Geç bağlama kullanılırken Word, Varyant türünün bir değişkeni olarak bildirilir. Bu, özellikle yöntemleri ve erişim özelliklerini çağırmaktan ziyade ne olduklarını bilmeniz anlamına gelir.
04
07
Yazım Denetimi Projesi - TWordApplication, TWordDocument
Yazım denetimi projesi oluşturmak için iki forma ihtiyacımız olacak: biri metni düzenlemek için diğeri de yazım önerilerini görmek için kullanılır... ama en baştan başlayalım.
Delphi'yi başlatın. Boş bir formla (varsayılan olarak form1) yeni bir proje oluşturun. Bu, MS Word projesi ile yazım denetimindeki ana form olacaktır. Bir tane ekle TMemo (Standart sekme) ve iki TButtons forma. Notlar satırları özelliğini doldurarak bir metin ekleyin. Tabii ki, bazı yazım hatalarıyla. Sunucular sekmesini seçin ve ekleyin TWordApplication ve TWordDocument forma. TWordApplication bileşeninin adını WordApplication1'den WordApp'a, WordDocument1'den WordDoc'a değiştirin.
TWordUygulama, TWordDocument
Yayınlanan mülk ConnectKind yeni başlatılan bir Word örneğine mi yoksa zaten çalışmakta olan mevcut bir örneğe mi bağlanacağımızı kontrol etmek için kullanılır. ConnectKind'i ckRunningInstance olarak ayarlayın.
Word'de bir dosya açtığımızda veya oluşturduğumuzda, bir Belge nesnesi oluştururuz. Word'ü otomatikleştirirken yaygın olarak kullanılan bir görev, belgedeki bir alanı belirtmek ve daha sonra metin eklemek ve yazım denetimi gibi bir şey yapmaktır. Belgedeki bitişik bir alanı temsil eden nesneye Aralık denir.
05
07
Yazım Denetimi Projesi - Yazım Denetimi / Değiştir
Fikir, Memo'daki metinde dolaşmak ve onu boşlukla ayrılmış kelimelere ayrıştırmaktır. Her kelime için, yazım denetimi yapmak için MS Word diyoruz. Word'ün Otomasyon modeli, bazı Aralıklarda bulunan metnin yazımını denetlemenizi sağlayan SpellingErrors yöntemini içerir.
Aralık, yalnızca ayrıştırılmış kelimeyi içerecek şekilde tanımlanır. SpellingErrors yöntemi, yanlış yazılmış sözcüklerden oluşan bir koleksiyon döndürür. Bu koleksiyon sıfırdan fazla kelime içeriyorsa devam ediyoruz. Yanlış yazılan sözcüğü ileten GetSpellingSuggestions yöntemine yapılan bir çağrı, önerilen değiştirme sözcüklerinin bir SpellingSuggestions koleksiyonunu doldurur.
Bu koleksiyonu Yazım Denetimi formuna iletiyoruz. Bu, projemizdeki ikinci form.
Bir projeye yeni bir form eklemek için Dosya | Yeni form. 'FrSpellCheck' ismine sahip olmasına izin verin. Bu forma üç TBitBtn bileşeni ekleyin. İki EditBox ve bir ListBox. Üç Etikete daha dikkat edin. "Sözlükte değil" etiketi, edNID düzenleme kutusuna "bağlanmıştır". EdNID yanlış yazılmış sözcüğü görüntüler. LbSuggestions liste kutusu, SpellingSuggestions koleksiyonundaki öğeleri listeler. Seçilen yazım önerisi edReplaceWith düzenleme kutusuna yerleştirilir.
Üç BitButtonu yazım denetimini iptal etmek, Geçerli sözcüğü yoksaymak ve yanlış yazılmış kelimeyi edReplaceWith düzenleme kutusundaki ile değiştirmek için kullanılır. BitBtn bileşenleri ModalResult özelliği, kullanıcının neyi tıklattığına bakılırken kullanılır. "Yoksay" düğmesinin ModalResult özelliği mrIgnore, "Değiştir" mrOk ve "İptal" olarak mrAbort olarak ayarlanmıştır.
FrSpellCheck, sReplacedWord adında bir Genel dize değişkenine sahiptir. Bu değişken, kullanıcı "Değiştir" düğmesine bastığında edReplaceWith içindeki metni döndürür.
07
07
Thesaurus? Thesaurus!
Bonus olarak projenin kullanacağı kod vardır Word'ün Eş Anlamlılar Sözlüğü. Eşanlamlılar sözlüğünü kullanmak oldukça kolaydır. Metni ayrıştırmıyoruz, seçilen kelime için CheckSynonyms yöntemi çağrılıyor. Bu yöntem kendi seçim iletişim kutusunu görüntüler. Yeni bir kelime seçildikten sonra, orijinal kelimenin yerine Word Belgeleri Aralığı içeriği kullanılır.