HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Outlook címlista használata Delphi-ből


Office 14. rész

Példaprogram letöltése

38029 bájt

Soron következő Outlook programozásáról szóló cikkünkben a címlista használatát nézzük át. A címlista a velünk kapcsolatban álló személyek, cégek adatait tartalmazza. Ebből a cikkből megtudhatjuk, hogy hogyan kérdezhetjük le, és hogyan bővíthetjük a címlistát Delphi-ből.
A mellékelt példaprogramban egy ListView komponensben jelenítjük meg a címlistánkban szereplő adatokat. Természetesen nem mindet, hiszen egy-egy elemhez rengeteg adat tartozik.

A címlista lekérdezése valamelyest hasonlít az e-mail lista lekérdezéséhez. Itt is ugyanazokat a műveleteket kell sorban elvégezni, ezért nézzük rögtön a forráskódot. A lista lekérdezéséhez létrehoztunk egy eljárást, mivel ezt több helyről is meg fogjuk majd hívni.

Ahhoz, hogy hozzáférjünk a címlistához szükségünk lesz egy NameSpace objektumra, amit a GetNameSpace függvénnyel kapunk meg. A függvény paramétere "MAPI" kell, hogy legyen! Ezután egy AddressList objektumra lesz szükségünk, amit az AddressLists osztály Item függvényével kaphatunk meg. Az Item függvénynek paraméterként meg kell adni a címlista nevét vagy sorszámát. Az Outlook több címlistát is tud kezelni, magyar nyelvű Outlook-ban az alapértelmezett címlista neve "Névjegyalbum".
  FNameSpace:=FOutlook.GetNameSpace('MAPI');
  FAddressList:=FNameSpace.AddressLists.Item('Névjegyalbum');
Ha megvan az AddressList objektumunk (az AddressList és AddressLists objektum nem azonos!), akkor egy ciklussal végigmegyünk az elemein. A címlista elemei egy-egy AddressEntry osztályban vannak tárolva, amiket viszont az AddressEntries osztályon keresztül érhetünk el az Item függvénnyel.
  for i:=1 to FAddressList.AddressEntries.Count do begin
    FAddressEntry:=FAddressList.AddressEntries.Item(i);
Hozzáadunk egy új elemet a ListView komponenshez, és beleírjuk az éppen kiolvasott AddressEntry (címlista elem) adatait.
    li:=ListView1.Items.Add;
    li.Caption:=FAddressEntry.Name;
    li.SubItems.Add(FAddressEntry.Address);
  end;
end;
Most nézzük meg azt, hogy hogyan adhatunk egy új elemet a címlistánkhoz. Az új cím adatait egy új Form-on keresztül adhatjuk meg. A Form2 Edit1 komponensében tároljuk az új elem nevét, míg az Edit2-ben az e-mail címét. Azért írok szándékosan "elem"-et, mivel a címlista tartalmazhat cég adatot, személyek adatait, valamint az Outlook 2000 verziótól kezdve ún. "Terjesztési listát". Akkor most nézzük a kódot, ami egy új elemet ad hozzá a címlistánkhoz:

Megjelenítjük a Form2-t a ShowModal függvény meghívásával. Ezzel azt érjük el, hogy a program futása addig nem folytatódik, amíg a felhasználó a Form-ot be nem zárta valamilyen módon. A Form2.Button1 komponens ModalResult property-jének értéke mrOK. Ha a felhasználó erre a gombra kattint, akkor a Form2 automatikusan bezáródik, és a ShowModal függvény visszatérési értéke mrOK lesz.
  with Form2 do begin
    if ShowModal=mrOK then begin
Mielőtt hozzáadnánk az új címet a címlistához el kell érnünk, hogy a Névjegyalbum mappa legyen az aktív. Megint kell egy NameSpace objektum, amit ismételten a GetNameSpace függvény segítségével kapunk meg. Ezután a GetDefaultFolder függvényt használjuk, aminek paramétereként az olFolderContacts konstanst adjuk meg.
      FNameSpace:=FOutlook.GetNameSpace('MAPI');
      FNameSpace.GetDefaultFolder(olFolderContacts);
Létrehozzuk az új címlista elemet a CreateItem függvény segítségével. A CreateItem függvényről is volt már szó egy korábbi cikkben, ezért most elég csak annyi, hogy a paramétere olContactItem kell, hogy legyen. Az eredmény egy ContactItem objektum lesz, amiben megadhatjuk az új bejegyzés adatait. A FullName property-ben a személy vagy cég teljes nevét kell megadnunk, míg az Email1Address property-ben az e-mail címet.
      FContactItem:=FOutlook.CreateItem(olContactItem);
      FContactItem.FullName:=Edit1.Text;
      FContactItem.Email1Address:=Edit2.Text;
Mivel most több adatot nem szeretnénk felvenni, ezért meghívjuk a Save metódust, amely elmenti az adatokat a címlistába. A ListView-ben lévő listánkat is frissíteni kell, ezért meghívjuk a fent ismertetett GetAddressList eljárást. Ha jól végeztük el a dolgunkat, akkor a listában már szerepelnie kell az új címnek!
      FContactItem.Save;
      GetAddressList;
    end;
  end;
end;
Szó volt arról, hogy az Outlook egyszerre több címlistát is tud kezelni. Ha szükségünk van ezeknek a címlistáknak a nevére, akkor az alábbi kódot felhasználva könnyedén szert tehetünk ezekre. A GetAddressList eljárás egy ComboBox-ba olvassa be a címlisták neveit:

Ismételten szükségünk lesz NameSpace osztályra, aminek AddressLists property-jében vannak tárolva a címlisták.
    FNameSpace:=FOutlook.GetNameSpace('MAPI');
Az AddressLists osztály Count függvényével lekérdezhetjük, hogy hány címlistánk van, míg az Item függvénnyel a megadott nevű vagy sorszámú címlistát kapjuk meg. Az Item függvény egy AddressList osztályt ad eredményül, melynek Name property-je megadja a címlista nevét, amit hozzáadunk a ComboBox elemeihez.
    for i:=1 to FNameSpace.AddressLists.Count do begin
      FAddressList:=FNameSpace.AddressLists.Item(i);
      ComboBox1.Items.Append(FAddressList.Name);
    end;
  ComboBox1.ItemIndex:=0;
end;


Cikksorozat

#IDKategóriaCikk címeSorozat
1063DelphiInterbase 6 alkalmazása Delphi-ben1. rész
1072DelphiInterbase 6 alkalmazása Delphi-ben2. rész
1084DelphiInterbase 6 alkalmazása Delphi-ben3. rész
1092DelphiTIBTable komponens4. rész
1102DelphiTIBTransaction komponens5. rész
1111DelphiTIBQuery komponens6. rész
1120DelphiTIBStoredProc komponens7. rész
1128DelphiTIBDataSet komponens8. rész
1141DelphiTIBSQL komponens9. rész
1150DelphiTIBSQLMonitor komponens10. rész
1159DelphiTIBUpdateSQL komponens11. rész
1167DelphiIBEvents komponens12. rész
1177DelphiIBDatabaseInfo komponens használata13. rész
1183DelphiTIBConfigService komponens14. rész
1192DelphiTIBSecurityService komponens15. rész
1204DelphiTIBServerProperties komponens16. rész
1213DelphiTIBBackupService komponens17. rész
1222DelphiTIBRestoreService komponens18. rész
1231DelphiTIBValidationService komponens19. rész
1240DelphiTIBStatisticalService komponens20. rész
1249DelphiTIBLogService komponens21. rész
1258DelphiTIBUninstall komponens22. rész
1267DelphiInterBase Express komponenscsomag23. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2001 évkönyv 422. 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 |