TAddressBookSource *fCurrentSource;
// Add a newly created contact to Address Book
void __fastcall TForm1::ActionAddContactExecute(TObject *Sender) {
TAddressBookContact *Contact;
TContactEmails *eMails;
Contact = AddressBook1->CreateContact(fCurrentSource);
__try {
try {
Contact->FirstName = edtFirstName->Text;
Contact->LastName = edtLastName->Text;
// Add a photo if selected
if (!Image1->Bitmap->Size.IsZero()) {
TBitmapSurface *photo = new TBitmapSurface();
__try {
photo->Assign(Image1->Bitmap);
Contact->Photo = photo;
Image1->Bitmap->SetSize(0, 0);
}
__finally {
photo->Free();
}
}
// Add the work mail
eMails = new TContactEmails();
__try {
eMails->AddEmail(TContactEmail::TLabelKind::Work,
edtWorkMail->Text);
Contact->EMails = eMails;
}
__finally {
eMails->Free();
}
AddressBook1->SaveContact(Contact);
}
catch (const EAddressBookException& E) {
ShowMessage("Cannot create the contact. " + E.Message);
}
// Add the contact to the selected group, if any
try {
if ((ComboBox1->ItemIndex > -1) && (ComboBox1->ItemIndex <
fGroups->Count)) {
AddressBook1->AddContactIntoGroup
(fGroups->Items[ComboBox1->ItemIndex], Contact);
}
}
catch (const EAddressBookException& E) {
ShowMessage("Cannot add the created contact to the group . " +
E.Message);
}
ListViewContacts->BeginUpdate();
AddListViewItem(Contact);
TabControl1->ActiveTab = TabItemContacts;
}
__finally {
Contact->Free();
ListViewContacts->EndUpdate();
ClearAddContactForm();
}
}
// Fill the Combo box with existed group names
void __fastcall TForm1::FillGroupList(TAddressBookSource *Source) {
int i;
fGroups = new TAddressBookGroups();
AddressBook1->AllGroups(Source, fGroups);
__try {
ComboBox1->BeginUpdate();
ComboBox2->BeginUpdate();
ComboBox1->Clear();
ComboBox2->Clear();
for (i = 0; i < fGroups->Count; i++) {
ComboBox1->Items->Add(fGroups->Items[i]->Name);
ComboBox2->Items->Add(fGroups->Items[i]->Name);
}
}
__finally {
ComboBox1->Visible = (fGroups->Count != 0);
ComboBox2->Visible = ComboBox1->Visible;
btnRemoveGroup->Visible = ComboBox1->Visible;
ComboBox2->EndUpdate();
ComboBox1->EndUpdate();
}
}