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

📄 fcontact.pas

📁 siMail, siMail, siMail, siMail
💻 PAS
📖 第 1 页 / 共 2 页
字号:
(*
# (C) Copyright 2003
# Miha Vrhovnik, miha.vrhovnik@cordia.si
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#
# The Initial Developer of the Original Code is Miha Vrhovnik (Slovenia).
# Portions created by Miha Vrhovnik are Copyright (c)2003.
# All Rights Reserved.
#==============================================================================
# Contributor(s):
#==============================================================================
# History: see whats new.txt from distribution package
#==============================================================================
*)
unit fContact;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, GR32_Image, StdCtrls, ExtDlgs, XPMenu, ExtCtrls, ComCtrls,
  Buttons, VirtualTrees, OmniXMLConf, addrBk, MFEdit, Mask, VSTEdit, ActnList,
  ImgList, StrUtils;

type
  TfrmContact = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    Panel1: TPanel;
    cmdOK: TButton;
    cmdCancel: TButton;
    diOpenPicture: TOpenPictureDialog;
    GroupBox1: TGroupBox;
    imgAuthor: TImage32;
    Label8: TLabel;
    txtFirstName: TEdit;
    Label24: TLabel;
    txtMiddleName: TEdit;
    Label10: TLabel;
    txtLastName: TEdit;
    Label23: TLabel;
    txtNickname: TEdit;
    cmdPicture: TButton;
    Label1: TLabel;
    cmboxGender: TComboBox;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    Label2: TLabel;
    txtHomeTelephone: TEdit;
    Label3: TLabel;
    txtHomeMobile: TEdit;
    Label7: TLabel;
    txtHomeFax: TEdit;
    Label6: TLabel;
    txtHomePager: TEdit;
    dtBirthday: TDateTimePicker;
    Label13: TLabel;
    dtAnniversary: TDateTimePicker;
    Label14: TLabel;
    Label9: TLabel;
    Label11: TLabel;
    txtHomeZIP: TEdit;
    Label12: TLabel;
    txtHomeState: TEdit;
    Label5: TLabel;
    txtHomeHomepage: TEdit;
    txtCustom1: TEdit;
    txtCustom2: TEdit;
    txtCustomLabel1: TEdit;
    txtCustomLabel2: TEdit;
    txtWorkDepartment: TEdit;
    txtWorkJobTitle: TEdit;
    txtWorkCompany: TEdit;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label20: TLabel;
    txtWorkExtension: TEdit;
    txtHomeCountry: TEdit;
    Label28: TLabel;
    diOpen: TOpenDialog;
    TabSheet6: TTabSheet;
    txtNotes: TMemo;
    Label15: TLabel;
    Label19: TLabel;
    txtWorkTelephone: TEdit;
    Label21: TLabel;
    txtWorkMobile: TEdit;
    Label22: TLabel;
    txtWorkFax: TEdit;
    Label25: TLabel;
    txtWorkPager: TEdit;
    Label26: TLabel;
    Label27: TLabel;
    txtWorkZIP: TEdit;
    Label31: TLabel;
    txtWorkState: TEdit;
    Label32: TLabel;
    txtWorkCountry: TEdit;
    Label33: TLabel;
    txtWorkHomepage: TEdit;
    Label34: TLabel;
    txtHomeExtension: TEdit;
    lstChat: TVirtualStringTree;
    Label4: TLabel;
    txtEmails: TMemo;
    Label35: TLabel;
    Label36: TLabel;
    cmdChatNew: TButton;
    cmdChatDelete: TButton;
    txtCustomLabel3: TEdit;
    txtCustom3: TEdit;
    Certificates: TTabSheet;
    Label29: TLabel;
    cmboxEmail: TComboBox;
    Label30: TLabel;
    lstCert: TVirtualStringTree;
    cmdCertRemove: TButton;
    cmdCertDefault: TButton;
    cmdCertImport: TButton;
    cmdCertExport: TButton;
    cmdCertProperties: TButton;
    imgPerson: TImage32;
    ActionList1: TActionList;
    actCertImport: TAction;
    actCertProperties: TAction;
    actCertRemove: TAction;
    actCertSetAsDefault: TAction;
    actCertExport: TAction;
    actPersNew: TAction;
    actPersDelete: TAction;
    txtHomeStreet: TMemo;
    txtWorkStreet: TMemo;
    txtCustom4: TEdit;
    txtCustomLabel4: TEdit;
    txtChatId: TMFEdit;
    editorChat: TVSTEditor;
    cmboxChatApp: TMFComboEdit;
    ilChat: TImageList;
    lblClearPicture: TLabel;
    procedure FormShow(Sender: TObject);
    procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean);
    procedure FormHide(Sender: TObject);
    procedure cmdCancelClick(Sender: TObject);
    procedure cmdOKClick(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure actPersDeleteUpdate(Sender: TObject);
    procedure lstChatGetNodeDataSize(Sender: TBaseVirtualTree;
      var NodeDataSize: Integer);
    procedure lstChatClick(Sender: TObject);
    procedure lstChatCreateEditor(Sender: TBaseVirtualTree;
      Node: PVirtualNode; Column: TColumnIndex; out EditLink: IVTEditLink);
    procedure lstChatEditing(Sender: TBaseVirtualTree; Node: PVirtualNode;
      Column: TColumnIndex; var Allowed: Boolean);
    procedure lstChatEdited(Sender: TBaseVirtualTree; Node: PVirtualNode;
      Column: TColumnIndex);
    procedure lstChatGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
      Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
    procedure actPersNewExecute(Sender: TObject);
    procedure actPersDeleteExecute(Sender: TObject);
    procedure lstChatAfterCellPaint(Sender: TBaseVirtualTree;
      TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
      CellRect: TRect);
    procedure cmdPictureClick(Sender: TObject);
    procedure lblClearPictureClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    FScheduleAsNew: Boolean;
    FPerson: TPerson;
    FAddressBook: TAddressBook;
    pictureFileName: String;
    deleteOldPicture: Boolean;
    procedure emailListRemoveEmptyLines;
    { Private declarations }
  public
    { Public declarations }
    procedure LoadPerson;
    procedure SavePerson;
  published
    property ScheduleAsNew: Boolean read FScheduleAsNew write FScheduleAsNew;
    property AddressBook: TAddressBook read FAddressBook write FAddressBook;
    property Person: TPerson read FPerson write FPerson;
  end;

var
  frmContact: TfrmContact;

implementation

uses
  fMain, mailBox, addrBk_frm, gnugettext, defFldrs;

type TTreeChat = record
    app: String;
    id: String;
  end;

type PTreeChat = ^TTreeChat;

{$R *.dfm}

procedure TfrmContact.FormShow(Sender: TObject);
begin
  //translate me
  TranslateComponent(Self);

  PageControl1.ActivePageIndex := 0;
  //read self position & size
  frmMailbox.Profile.Config.ReadControlSettings(Self);

  deleteOldPicture := False;
  LoadPerson;
end;

procedure TfrmContact.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
  if msg.CharCode = 27 then begin
    Self.Close;
    Handled := True;
  end;
end;

procedure TfrmContact.FormHide(Sender: TObject);
begin
  //write self position & size
  frmMailbox.Profile.Config.WriteControlSettings(Self);
end;

procedure TfrmContact.cmdCancelClick(Sender: TObject);
begin
  Self.Close;
end;

procedure TfrmContact.LoadPerson;
var i, j: Integer;
begin
  pictureFileName := '';
  if ScheduleAsNew then begin //clear me
    Self.Caption := _('Contact info') + ' - ' + _('[Add]');
    //clear TEdit
    for j := 0 to PageControl1.PageCount - 1 do begin
      for i := 0 to PageControl1.Pages[j].ControlCount - 1 do begin
        if PageControl1.Pages[j].Controls[i] is TEdit then
          (PageControl1.Pages[j].Controls[i] as TEdit).Text := '';
      end;
    end;
    //general tab
    cmboxGender.ItemIndex := 0;
    txtEmails.Clear;
    imgPerson.Bitmap := imgAuthor.Bitmap;
    //certificates tab
    lstCert.Clear;
    cmboxEmail.Clear;
    //personal tab
    dtBirthday.DateTime := Now;
    dtBirthday.Checked := False;
    dtAnniversary.DateTime := Now;
    dtAnniversary.Checked := False;
    txtCustomLabel1.Text := Format(_('Custom field %d'), [1]);
    txtCustomLabel2.Text := Format(_('Custom field %d'), [2]);
    txtCustomLabel3.Text := Format(_('Custom field %d'), [3]);
    txtCustomLabel4.Text := Format(_('Custom field %d'), [4]);
    lstChat.Clear;
    //work tab
    txtWorkStreet.Clear;
    //home tab
    txtHomeStreet.Clear;
    //notes tab
    txtNotes.Clear;
  end
  else begin //load me
    Self.Caption := _('Contact info') + ' - ' + _('[Edit]');

    with FPerson do begin
      //general tab
      txtFirstName.Text := General.FirstName;
      txtMiddleName.Text := General.MiddleName;
      txtLastName.Text := General.LastName;
      txtNickname.Text := General.NickName;
      cmboxGender.ItemIndex := Integer(General.Gender);
      if General.PhotoName <> '' then begin
        try
          imgPerson.Bitmap.LoadFromFile((AddressBook.Collection as TAddressBooks).PicturesPath + General.PhotoName);
        except
          imgPerson.Bitmap := imgAuthor.Bitmap;
        end;
      end
      else imgPerson.Bitmap := imgAuthor.Bitmap;

      txtEmails.Clear;
      for i := 0 to Emails.Count - 1 do
        txtEmails.Lines.Add(Emails.Emails[i].Email);

       //certificates tab
      lstCert.Clear;
      cmboxEmail.Clear;
      //personal tab
      if Personal.Birthday = 0 then begin
        dtBirthday.Date := Now;
        dtBirthday.Checked := False;
      end
      else begin
        dtBirthday.Date := Personal.Birthday;
        dtBirthday.Checked := True;
      end;

      if Personal.Anniversary = 0 then begin
        dtAnniversary.Date := Now;
        dtAnniversary.Checked := False;
      end
      else begin
        dtAnniversary.Date := Personal.Anniversary;
        dtAnniversary.Checked := True;
      end;

⌨️ 快捷键说明

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