Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Einzelne Kontakte mit Delphi aus Outlook 2007 /2010 löschen (https://www.delphipraxis.net/171204-einzelne-kontakte-mit-delphi-aus-outlook-2007-2010-loeschen.html)

wolves232 25. Okt 2012 15:22


Einzelne Kontakte mit Delphi aus Outlook 2007 /2010 löschen
 
Hallo,

ich möchte gerne mit delphi outlook kontakte verwalten.

speichern und laden geht ... aber wie kann ich in einer listview ein markierten eintrag aus

Outlook löschen ?





Speicher Befehl:
-------------------------------------------------------------------------------

Delphi-Quellcode:
procedure TFormMain.ButtonSaveClick(Sender: TObject);
var
   Stream                : TFileStream;
   Pfad1, Pfad2, PfadAll : string;
   Vorname, Nachname     : string;
   gefunden              : Boolean;
   i                     : Integer;
begin
  Vorname := EditFirstName.Text;
  Nachname := EditLastName.Text;
  gefunden := False;

  if (EditFirstName.Text <> '') or (EditLastName.Text <> '') then
  begin
    gefunden := false;
    for i := 0 to ListView.Items.Count - 1 do
    if (ListView.Items[i].Caption = EditFirstName.Text) and (ListView.Items[i].SubItems[0] = EditLastName.Text)then
    begin
      gefunden := true;
      case MessageDlg('Kontakt schon vorhanden' + #13#10#13#10 +
        'Trotzdem erstellen ?', mtInformation, [mbYes, mbNo], 0) of
        mrYes:
          begin
            gefunden := False;
          end;
        mrNo:
          begin
            gefunden := True;
          end;
      end;
      break;
    end;
    if gefunden = False then
    begin
      with ListView.Items.Add do
      begin
        Caption := EditFirstName.Text ;
        SubItems.Add(EditLastName.Text);
        SubItems.Add(EditPosition.Text);
        SubItems.Add(EditCompany.Text );
        SubItems.Add(EditStreet.Text);
        SubItems.Add(EditCity.Text);
        SubItems.Add(EditPostcode.Text);
        SubItems.Add(EditCountry.Text);
        SubItems.Add(EditPhone.Text);
        SubItems.Add(EditMobile.Text);
        SubItems.Add(EditInternet.Text);
        SubItems.Add(EditEMail.Text );
        SubItems.Add(EditFax.Text );
      end;
    end
    else
    begin
      ShowMessage('Kontakt wurde nicht erstellt');
      Exit;
    end;
  end;
  begin
    LabelUser.Caption := GetCurrentUserName;
    LabelUser.Caption := Copy(LabelUser.Caption, 1, 4);
    Pfad1 :='C:\Users\';
    Pfad2 :='\Documents\Kontakte.csv';
    PfadAll := Pfad1+LabelUser.Caption+Pfad2;
    Stream := TFileStream.Create(PfadAll, fmCreate);
    Stream.WriteComponentRes('', ListView);
    Stream.Free;
  end;
  NewContactItem;
  begin
    EditFirstName.Text := '';
    EditLastName.Text := '';
    EditPosition.Text := '';
    EditCompany.Text  := '';
    EditStreet.Text   := '';
    EditCity.Text     := '';
    EditPostcode.Text := '';
    EditCountry.Text  := '';
    EditPhone.Text    := '';
    EditMobile.Text   := '';
    EditInternet.Text := '';
    EditEMail.Text    := '';
    EditFax.Text      := '';
  end;
  GroupBoxListView.Caption := Format('%d Einträge',[ListView.Items.Count]);
end;
Lade Befehl:
-------------------------------------------------------------------------------

Delphi-Quellcode:
procedure TFormMain.FormCreate(Sender: TObject);
var
  outlook, NameSpace, Contacts, Contact: OleVariant;
  i: Integer;
begin
  LabelUser.Caption := GetCurrentUserName;
  MemoMessage.Lines.Add('');
  MemoMessage.Lines.Add(' Herzlich');
  MemoMessage.Lines.Add(' Willkommen');
  outlook := CreateOleObject('Outlook.Application');
  NameSpace := outlook.GetNameSpace('MAPI');

  Contacts := NameSpace.GetDefaultFolder(olFolderContacts);
  for i := 1 to Contacts.Items.Count do
  begin
    Contact := Contacts.Items.Item(i);
   begin
    with ListView.Items.Add do
    begin
      Caption := Contact.FirstName ;
      SubItems.Add(Contact.LastName);
      SubItems.Add(Contact.JobTitle);
      SubItems.Add(Contact.CompanyName);
      SubItems.Add(Contact.BusinessAddressStreet);
      SubItems.Add(Contact.BusinessAddressCity);
      SubItems.Add(Contact.BusinessAddressPostalCode);
      SubItems.Add(Contact.BusinessAddressCountry);
      SubItems.Add(Contact.BusinessTelephoneNumber);
      SubItems.Add(Contact.MobileTelephoneNumber);
      SubItems.Add(Contact.BusinessHomePage);
      SubItems.Add(Contact.Email1Address);
      SubItems.Add(Contact.BusinessFaxNumber);
    end;
   end;
   Outlook := UnAssigned;
  end;
  GroupBoxListView.Caption := Format('%d Einträge',[ListView.Items.Count]);
end;
------------------------------------------------------------------------------------

wäre schön wenn mir einer helfen könnte

wolves232 7. Feb 2013 11:02

AW: Einzelne Kontakte mit Delphi aus Outlook 2007 /2010 löschen
 
ich habs hinbekommen


procedure TFormMain.Loeschfunktion;
var
outlook, NameSpace, Contacts : OleVariant;
entfernen : Integer;
begin
outlook := CreateOleObject('Outlook.Application');
NameSpace := outlook.GetNameSpace('MAPI');
Contacts := NameSpace.GetDefaultFolder(olFolderContacts);
entfernen := StrToInt(ListView.Items[Auswahl].SubItems[14]);
Contacts.Items.Item(entfernen).Delete;
entfernen := ListView.Items.Count;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz