HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Dialógus ablak megjelenítése adatbevitelhez


Intelligens címkék lehetőségei 4. rész

Példaprogram letöltése

14036 bájt

A sorozat előző számaiban elkészített Intelligens címkék esetében minden menüponthoz egy funkciót valósítottunk meg. Mivel azonban a címkékkel összetettebb feladatokat is el lehet végezni – funkciónként több feladattal - ésszerűbb lenne az egyes funkciócsoportokhoz kapcsolódó paramétereket egy csokorban megadni, elkerülendő a menüpontok elszaporodását. A mellékelt példában bemutatjuk, hogyan adhatjuk meg egy funkció elvégzéséhez szükséges adatokat egy dialógus ablakban.

A mellékelt példa fordítása után futtassa le a mellékelt AddRegistry.reg állományt a Rendszerleíró adatbázis bejegyzéseinek elkészítéséhez.
Ahogy a sorozat korábbi részeiben megismerhettük, az Intelligens címkében két osztályt kell megvalósítani. A RecognizerClass osztály Recognize metódusa végzi a felismerést és megjelölést, míg az ActionClass InvokeVerb metódusában valósítjuk meg a megjelenő menüpont mögötti funkciót.
Az osztályok mindegyikéhez létrehoztunk egy-egy GUID számot, melyeket felhasználunk a regisztrációban. Az AddRegistry.reg állomány lefuttatásával helyezzük el a regisztrációs bejegyzéseket a Rendszerleíró adatbázisban, a RemRegistry.reg állomány futtatásával pedig eltávolíthatjuk a létrehozott kulcsokat.
Az Intelligens címkénk mindegyikét COM komponensként kell regisztrálnunk, így a projekt tulajdonságlapján a megfelelő paramétert igazra kell állítani.
Szó felismerése
A Word dokumentum szövegében tetszőleges alkalommal szerepelhet a LEVÉLCÍM szó, a Smart Tag komponensünk minden előfordulást felismer, valamennyi szó kijelölésre kerül. A RecognizeClass osztályban a GetWordPositions metódus keresi meg a szövegben a szó valamennyi előfordulását. Paraméterként a szöveget várja, visszatérési értéke egy ArrayList objektum, mely tartalmazza az előfordulások pozícióit.
ArrayList positions = GetWordPositions(Text);     
Majd amennyiben nem nulla a tömb elemszáma, vagyis előfordul a szó legalább egyszer a szövegben, kijelöljük az(oka)t.
if (positions.Count != 0)
{
  for(int h=0;h<positions.Count;h++)
  {
    RecognizerSite.CommitSmartTag(smartTagName, (Convert.ToInt32(positions[h])+1), 8, RecognizerSite.GetNewPropertyBag());        
  }
}
A kijelölés után a szó fölé mozgatva a kurzort, megjelenik egy menü, az általunk specifikált menüponttal, melynek felirata: Outlook névjegy létrehozása. A menüpontra kattintva megjelenik egy Form, melyben megadhatunk egy tetszőleges nevet, és e-mail címet, melyek felhasználásával – amennyiben a FELVESZ gombbal zárjuk be az űrlapot – egy Névjegy jön létre a Microsoft Outlook alkalmazásunkban.
Lássuk, hogyan készíthetünk egy dialógus ablakot megjelenítő projektet.
Dialógusablak létrehozása
A SmartForm projekt egy Windows-os alkalmazást rejt, melyben a generálandó kimenet egy SmartForm.dll állomány, melyet referenciaként a Smart Tag projektjéhez adunk, majd megjelenítünk. A Form megjelenítése úgy történik, mintha egy alkalmazásban tennénk ugyanezt. Meghívjuk a Form osztály ShowDialog metódusát. Ahhoz, hogy ezt megtehessük, a System.Windows.Forms.dll állományt be kell szerkesztenünk a címke projektjéhez. A Form1.cs forrásállományból el kell távolítani a Main függvény deklarációját.
A megjelenítés tehát a következőként történik:
Form1 f = new Form1();
f.ShowDialog();
A megadott értékekkel feltöltjük a Form1 osztály NAME és ENAME nyilvános tagjait. Ha ezek a tagok értéket kaptak, vagyis nem a MÉGSE gomb megnyomásával zárjuk be az ablakot, akkor elvégezzük a névjegy létrehozásának procedúráját.
if (f.name != "" && f.email != "")
{
Első lépés az Outlook alkalmazás példányosítása a háttérben.
  Outlook.Application oa = new Outlook.Application();
Majd egy MAPI névtér létrehozása.
  Outlook.NameSpace on = oa.GetNamespace("MAPI");
Az Outlook alkalmazásban az olFolderContacts mappa tartalmazza a Névjegyalbum bejegyzéseinek gyűjteményét. Így létrehozunk egy MAPIFolder objektumot, melybe betöltjük ezt a gyűjteményt.
  Outlook.MAPIFolder mf = on.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
Egy bejegyzést a Névjegyalbumban egy ContactItem objektum tárol, melynek property-jeit kell megadni a tulajdonságok feltöltéséhez.
  Outlook.ContactItem ci = (ContactItem)oa.CreateItem(OlItemType.olContactItem);
Az objektum FullName és Email1Address property-jében megadjuk a Form-on specifikált adatokat.
  ci.FullName = f.name;
  ci.Email1Address = f.email;
Mentjük az objektumot, majd betesszük a mappa elemei közé.
  ci.Save();
  mf.Items.Add(ci);
}
A Form bezárása után az Outlook megnyitásával ellenőrizhetjük a névjegy létrejöttét.



Cikksorozat

#IDKategóriaCikk címeSorozat
3643DelphiFormEditor1. rész
3689DelphiProject és modul információk2. rész
3719DelphiMegnyitás, mentés3. rész
3749DelphiKódszerkesztő4. rész
3778DelphiForráskód írása, olvasása5. rész
3809DelphiInterfész a kódszerkesztő ablakhoz6. rész
3839DelphiKijelölt blokkok7. rész
3869DelphiA buffer beállításai8. rész
3899DelphiKörnyezeti és Project opciók9. rész
3929DelphiKurzor a kódszerkesztőben10. rész
3959DelphiKeresés és csere beállításai11. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 385. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |