|
Az Outlook határidőnaplójának kezelése programból
Office 15. rész
|
|
Példaprogram letöltése
37223 bájt
|
Az Outlook programozásáról szóló cikkekben eddig csak a levelezéssel kapcsolatos dolgokkal foglalkoztunk, pedig az Outlook nem csupán egy egyszerű levelezőprogram, hanem többek között tartalmaz egy nagyon jól használható határidőnaplót is. Ebben a cikkben azt nézzük meg, hogy ebbe a határidőnaplóba hogyan vehetünk fel új, illetve hogyan törölhetünk felesleges bejegyzéseket.
A feladat amit a példában megvalósítunk az lesz, hogy egy ListView komponensben megjelenítjük a naptárbejegyzéseket. Ha a listából kiválasztunk egy bejegyzést, akkor annak részletes leírása (ha van ilyen) megjelenik egy TRichEdit komponensben. A naptárba vehetünk fel új bejegyzést, és törölhetjük is a kiválasztott elemet.
A naptárbejegyzések lekérdezéséhez létrehoztunk egy GetAppointments nevű eljárást. Megszokhattuk már, hogy ha egy Outlook mappában lévő elemekre van szükségünk, akkor mindenképpen szükségünk lesz egy NameSpace objektumra. A NameSpace objektum GetDefaultFolder függvényével lekérdezzük a Naptár mappa objektumát amit az FFolder változóban tárolunk.
FNamespace:=FOutlook.GetNamespace('MAPI');
FFolder:=FNamespace.GetDefaultFolder(olFolderCalendar);
Töröljük a ListView elemeit.
Egy ciklussal végigmegyünk a mappa elemein. Egy bejegyzést az Item függvénnyel kaphatunk meg, amelynek paramétere a bejegyzés sorszáma, és egy AppointmentItem típusú objektumot ad vissza. Ennek az osztálynak a Subject property-je adja vissza a bejegyezés tárgyát. Ez az a szöveg, ami a naptárban megjelenik. A Start és End property-k adják meg a bejegyzés érvényességi tartományát dátum és idő formátumban.
for i:=1 to FFolder.Items.Count do begin
FAptItem:=FFolder.Items(i);
li:=ListView1.Items.Add; li.Caption:=FAptItem.Subject;
li.SubItems.Add(FAptItem.Start); li.SubItems.Add(FAptItem.End);
end;
end;
Amikor a felhasználó kiválaszt egy bejegyzést a listából, akkor megjelenítjük annak részletes leírását egy RichEdit komponensben. Ezt a funkciót legcélszerűbb a ListView OnSelectItem eseményénél megvalósítanunk.
Először ellenőrizzük, hogy van-e kiválasztott elem:
if Assigned(ListView1.Selected) then begin
NameSpace objektum GetDefaultFolder függvényével megkapjuk a Naptár mappa objektumát.
FNamespace:=FOutlook.GetNamespace('MAPI');
FFolder:=FNamespace.GetDefaultFolder(olFolderCalendar);
Az Items függvénynek van egy paramétere, amely a naptár bejegyzés sorszáma. A függvény visszatérési értéke egy AppointmentItem típusú objektum, amelynek Body property-je tartalmazza a bejegyzés részletes leírását. Ez nem minden esetben van kitöltve, ezért lehetséges, hogy a RichEdit üresen marad az elem kiválasztása után is!
FAptItem:=FFolder.Items(ListView1.Selected.Index+1);
RichEdit1.Text:=FAptItem.Body;
Lekérdezni már tudjuk a bejegyzéseket, most azt nézzük meg, hogy hogyan tudunk új bejegyzést regisztrálni. Az Edit1 komponensben megadott névvel vesszük fel az új bejegyzést.
A CreateItem függvénnyel készítünk egy új AppointMent objektumot, amit az FAptItem változóban tárolunk. A függvény paraméterének olAppointmentItem-nek kell lennie!
FAptItem:=FOutlook.CreateItem(olAppointmentItem);
Az új objektum Subject property-jének értékül adjuk az Edit1.Text property-jét. Ez jelenik meg a naptárban. A Body property-be beírjuk a felvétel időpontját és dátumát. Miután megadtuk a szükséges adatokat a Save metódussal elmentjük azokat.
FAptItem.Subject:=Edit1.text;
FAptItem.Body:='Felvétel időpontja: '+TimeToStr(Time);
FAptItem.Save;
Ha már tudunk bejegyzést hozzáadni a naptárhoz, akkor azt is nézzük meg, hogy hogyan tudjuk törölni a felesleges bejegyzéseket. A már ismert módon lekérdezzük a törölni kívánt elem objektumát, majd a Delete metódussal töröljük azt.
FNamespace:=FOutlook.GetNamespace('MAPI');
FFolder:=FNamespace.GetDefaultFolder(olFolderCalendar);
FAptItem:=FFolder.Items(ListView1.Selected.Index+1);
FAptItem.Delete;
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2001 évkönyv 430. 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!
|