⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abfwabdemomain.~pas

📁 一个非常好的OUTLOOK EXPRESS接口控件
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
    if i >= abfWAB.Items.Count then i := abfWAB.Items.Count - 1;
    RefreshListView(i);
  end else
    RefreshListView(-1);
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.abfWABDeletingItem(Sender: TObject;
  var AllowDelete: Boolean);
begin
  AllowDelete := MessageDlg('Delete "' +
    abfWAB.Items[lvItems.Selected.Index].DisplayName +
    '" item?', mtConfirmation, [mbYes, mbNo], 0) = mrYes;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.lvItemsDblClick(Sender: TObject);
begin
  tbtnProperties.Click;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.lvItemsChange(Sender: TObject; Item: TListItem;
  Change: TItemChange);
begin
  if Change = ctState then RefreshButtons;
end;

//------------------------------------------------------------------------------
// Shows drop-down popup menu

procedure TfrmWabDemoMain.tbtnNewClick(Sender: TObject);
var
  APoint: TPoint;
begin
  SendCancelMode(nil);
  APoint := tbtnNew.ClientToScreen(Point(0, tbtnNew.ClientHeight));
{$IfDef D4}
  if pmNew.IsRightToLeft then Inc(APoint.X, tbtnNew.Width);
{$EndIf D4}
  pmNew.Popup(APoint.X, APoint.Y);
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.tbtnPropertiesClick(Sender: TObject);
var
  i: Integer;
begin
  if Assigned(lvItems.Selected) then
  begin
    abfWAB.OnChangeAddressBook := nil;
    try
      i := lvItems.Selected.Index;
      if abfWAB.ItemDetails(i) then RefreshListView(i);
    finally
      abfWAB.OnChangeAddressBook := abfWABChangeAddressBook;
    end;
  end;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.tbtnDeleteClick(Sender: TObject);
var
  IndexesArr: Variant;
  Len, i, a: Integer;
  SavePos: Integer;
begin
  if lvItems.SelCount > 0 then
  begin
    SavePos := lvItems.Selected.Index;
    if lvItems.SelCount > 1 then
    begin
      if MessageDlg('Delete these items?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
      begin
        abfWAB.OnChangeAddressBook := nil;
        abfWAB.OnDeletingItem := nil;
        try
          if lvItems.Items.Count <> lvItems.SelCount then
          begin
            Len := lvItems.SelCount;
            a := 0;
            IndexesArr := VarArrayCreate([0, Len - 1], varInteger);
            for i := 0 to lvItems.Items.Count - 1 do
            if lvItems.Items[i].Selected then
            begin
              IndexesArr[a] := lvItems.Items[i].Index;
              Inc(a);
            end;
            abfWAB.DeleteItems(IndexesArr);
          end
          else
            abfWAB.DeleteAllItems;
        finally
          abfWAB.OnDeletingItem := abfWABDeletingItem;
          abfWAB.OnChangeAddressBook := abfWABChangeAddressBook;
        end;
        if SavePos >= abfWAB.Items.Count then SavePos := abfWAB.Items.Count - 1;
        RefreshListView(SavePos);
      end
    end else
    begin
      abfWAB.OnChangeAddressBook := nil;
      try
        abfWAB.DeleteItems(SavePos);
      finally
        abfWAB.OnChangeAddressBook := abfWABChangeAddressBook;
      end;
      if SavePos >= abfWAB.Items.Count then
      SavePos := abfWAB.Items.Count - 1;
      RefreshListView(SavePos);
    end;
  end;
end;{procedure TfrmMain.tbtnDeleteClick}

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.tbtnFindPeopleClick(Sender: TObject);
begin
  abfWAB.Find;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.tbtnSelectAddressesClick(Sender: TObject);
begin
  abfWABAddrDlg.Execute;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.pmMainPopup(Sender: TObject);
begin
  RefreshButtons;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miNewContactClick(Sender: TObject);
var
  i: Integer;
begin
  abfWAB.OnChangeAddressBook := nil;
  try
    i := abfWAB.NewContact;
    if i < 0 then Exit;
    i := abfWAB.GetItemIndex(abfWAB.Contacts[i].EntryID);
    if i >= 0 then RefreshListView(i);
  finally
    abfWAB.OnChangeAddressBook := abfWABChangeAddressBook;
  end;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miNewGroupClick(Sender: TObject);
var
  i: Integer;
begin
  abfWAB.OnChangeAddressBook := nil;
  try
    i := abfWAB.NewGroup;
    if i < 0 then Exit;
    i := abfWAB.GetItemIndex(abfWAB.Groups[i].EntryID);
    if i >= 0 then RefreshListView(i);
  finally
    abfWAB.OnChangeAddressBook := abfWABChangeAddressBook;
  end;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miSelectAllClick(Sender: TObject);
var
  i: Integer;
begin
  with lvItems.Items do
  begin
    BeginUpdate;
    try
      for i := 0 to lvItems.Items.Count - 1 do
        if not lvItems.Items[i].Selected then
          lvItems.Items[i].Selected := True;
    finally
      EndUpdate;
    end;
  end;
  RefreshButtons;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miRefreshClick(Sender: TObject);
var
  SavePos: Integer;
begin
  if lvItems.Selected <> nil then
    SavePos := lvItems.Selected.Index
  else
    SavePos := -1;
  abfWAB.Refresh;
  RefreshListView(SavePos);
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miFileClick(Sender: TObject);
begin
  SwitchWABMode;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miCurrWABClick(Sender: TObject);
begin
  abfWAB.WABMode := wmCurrentWAB;
  abfWAB.Open;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miWABFileClick(Sender: TObject);
begin
  dlgOpenWABFile.FileName := abfWAB.FileName;
  if dlgOpenWABFile.Execute then
  begin
    abfWAB.WABMode := wmWABFile;
    abfWAB.FileName := dlgOpenWABFile.FileName;
    abfWAB.Open;
  end;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miExitClick(Sender: TObject);
begin
  Close;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miProfileClick(Sender: TObject);
begin
  abfWAB.SetMeContact(-1, True);
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miProfileFolderClick(Sender: TObject);
begin
  abfWAB.AddToFolder := wafProfileFolder;
  miProfileFolder.Checked := True;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miSharedFolderClick(Sender: TObject);
begin
  abfWAB.AddToFolder := wafSharedFolder;
  miSharedFolder.Checked := True;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miAllContentsClick(Sender: TObject);
var
  SaveState: Boolean;
begin
  SaveState := abfWAB.Active;
  abfWAB.ContentsFilter := wcfAllContents;
  miAllContents.Checked := True;
  abfWAB.Active := SaveState;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miProfileContactsClick(Sender: TObject);
var
  SaveState: Boolean;
begin
  SaveState := abfWAB.Active;
  abfWAB.ContentsFilter := wcfProfileFolderOnly;
  miProfileContacts.Checked := True;
  abfWAB.Active := SaveState;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miSharedContactsClick(Sender: TObject);
var
  SaveState: Boolean;
begin
  SaveState := abfWAB.Active;
  abfWAB.ContentsFilter := wcfSharedFolderOnly;
  miSharedContacts.Checked := True;
  abfWAB.Active := SaveState;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miOptionsClick(Sender: TObject);
begin
  SwitchWABMode;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miUseProfilesClick(Sender: TObject);
begin
  abfWAB.EnableProfiles := not miUseProfiles.Checked;
  abfWAB.Open;
  miUseProfiles.Checked := abfWAB.EnableProfiles;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.miAboutClick(Sender: TObject);
begin
  abfApplicationAbout(Application.Title);
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.rmUseOutlookChange;
begin
  tmRegistryTimer.Enabled := True;
end;

//------------------------------------------------------------------------------

procedure TfrmWabDemoMain.tmRegistryTimerTimer(Sender: TObject);
var
  TempBool: Boolean;
begin
  if IsWindowEnabled(Self.Handle) then
  begin
    tmRegistryTimer.Enabled := False;

    TempBool := abfIsOutlookSharedMode;
    if FUseOutlook <> TempBool then
    begin
      FUseOutlook := TempBool;
      abfWAB.Open;
    end;
  end;
end;

//------------------------------------------------------------------------------

end{unit abfWABForm}.


 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -