天天看点

C++ Builder XE10 开发安卓app如何加载和创建地址簿Address Book

    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();

    }

}

继续阅读