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

📄 unit1.pas

📁 FMA is a free1 powerful phone editing tool allowing users to easily manage all of the personal data
💻 PAS
📖 第 1 页 / 共 5 页
字号:
unit Unit1;

{
*******************************************************************************
* Descriptions: Main Unit for FMA
* $Source: /cvsroot/fma/fma/Unit1.pas,v $
* $Locker:  $
*
* Todo:
*   - Replace all 'name + [ + number + ]' with ContactNumberByTel and ContactNumberByName
*   - split implementation to different smaller units
*
* Change Log:
* $Log: Unit1.pas,v $
*
*******************************************************************************
}

interface

{$R WinXP.res}

uses
{$IFDEF VER150}
  XPStyleActnCtrls,
{$ELSE}
  ThemeMgr, TntThemeMgr,
{$ENDIF}
  Windows, TntWindows, Messages, SysUtils, TntSysUtils, Variants, Classes, TntClasses, Graphics, TntGraphics,
  Controls, TntControls, Forms, TntForms, Dialogs, TntDialogs, StdCtrls, TntStdCtrls, ComCtrls, TntComCtrls,
  UniTntCtrls, ExtCtrls, TntExtCtrls, ToolWin, ActnList, TntActnList, Menus, TntMenus, ShellAPI, uSMS, ImgList,
  DateUtils, ActnMan, ActnCtrls, ActnMenus, AppEvnts, StdActns, TntStdActns, Placemnt, Registry, WinSock, IniFiles,
  Buttons, TntButtons, VirtualTrees, uObex, uExploreView, uWaitComplete, LMDCustomComponent, LMDOneInstance,
  LMDControl, LMDBaseControl, LMDBaseGraphicControl, LMDGraphicControl, LMDBaseMeter, LMDCustomProgressFill,
  LMDProgressFill, LMDHookComponent, LMDFMDrop, WSocket, WBluetoothSocket, WIrCOMMSocket, mmsystem, uAccessoriesMenu,
  uMissedCalls, uKeyPad, CoolTrayIcon, WebUtil, jpeg, AMixer, LMDFill, WebUpdate, aw_SCtrl, CPort, uScriptEditor,
  uContactSync, uChatSMS, GR32_Image, uFiles, uSyncCalendar, PBFolderDialog, uSIMEdit, uMEEdit, uMsgView, uInfoView,
  uXML, uSyncPhonebook, uSyncBookmarks, uVCard, uLog, uLogger, uMessageData, SEProgress, USBMonitor, ActiveX;

const
  LongOperationsTimeout = 45000; // 45 seconds (for searching in phone book, sending messages etc.)

  __fma_objcall = 'FmaInternalObjectCall'; // do not localize

  FMA_HANDLEMESSAGE = WM_USER + 100;

  FmaMessagesRootFlag      = $200000; // used for both FmaMessagesPhoneRootFlag and FmaMessagesFmaRootFlag testing
  FmaMessagesRootMask      = $E00000;

  FmaMessagesPhoneRootFlag = FmaMessagesRootFlag;
  FmaMessagesFmaRootFlag   = FmaMessagesRootFlag or $100000; // see FmaMessagesRootMask
  FmaMessageFolderFlag     = $080000; // added to Explorer.Node's stateindex

  FmaSMSSubFolderFlag      = FmaMessagesFmaRootFlag or FmaMessageFolderFlag;
  FmaNodeSubitemsMask      = $0F0000;

type
  TConfirmation = (cfNone, cfYesToAll, cfNoToAll);
  TFindContactMode = (fcByNumber, fcByName);
  TFindContactResult = (frNone, frIrmcSync, frPhonebook, frSIMCard);

  TFmaHandleMessage = record
    Msg: Cardinal;
    Message: PChar;
    Length: Longint;
    Result: Longint;
  end;

  PFmaExplorerNode = ^TFmaExplorerNode;
  TFmaExplorerNode = record
    Data: Pointer;
    Text: WideString;
    ImageIndex, StateIndex: Integer;
    isFile: boolean;
    SpecialImages: Cardinal;
    { specialImages:Cardinal = $ ST M1 M2 NC
        ST - standard imageIndex
        M1 - mouseOver1 imageIndex
        M2 - mouseOver2 imageIndex
        NC - not connected imageIndex }
    SpecialImagesFlags: Byte;
    { specialImagesFlags:Byte = $ FL
        FL - flags::
          $01: use image and perform action on click
          $02: use mouseOver1 image
          $04: use disconnected image
          $08: use mouseOver1 image if disconnected (in combination with 4)
          $10: use mouseOver2 image if disconnected (in combination with 4)
          $20: perform action if disconnected  (in combination with 4)
          $40: ignore ThreadSafe's Busy state on perform action
          $80: show SpecialImages as number

        // action that should be performed has to be set in ExplorerNewClick }
  end;

  TStartupOptions = record
    NoObex,NoIRMC,NoGroups,NoFolders,NoProfiles,NoCalls,NoAlarms,NoBaloons,NoClock: boolean;
  end;
  TProximityOptions = record
    AwayLock,NearUnlock,RunSS: boolean;
    AwayMusicMode,NearMusicMode: integer;
  end;
  TTextMessageOptions = record
    NoPopup,NoBaloon,MoveToArchive,FullWarning: boolean;
  end;
  TCallOptions = record
    NoPopup,NoBaloon: boolean;
  end;

  TProfileLoadCallback = procedure (Pos,Max: Integer);

  TForm1 = class(TTntForm)
    StatusBar: TTntStatusBar;
    CoolBar: TCoolBar;
    ActionList1: TTntActionList;
    ActionConnectionConnect: TTntAction;
    ActionConnectionDisconnect: TTntAction;
    ImageList1: TImageList;
    ActionContactsDownload: TTntAction;
    Splitter1: TTntSplitter;
    PopupMenu1: TTntPopupMenu;
    Refresh3: TTntMenuItem;
    ActionConnectionDownload: TTntAction;
    ActionSMSArchiveMsg: TTntAction;
    ActionSelectAll: TTntAction;
    ActionDelete: TTntAction;
    ActionSMSMoveMsgToArchive: TTntAction;
    ActionSMSNewMsg: TTntAction;
    ActionContactsNewMsg: TTntAction;
    NewMessage2: TTntMenuItem;
    ActionSMSReplyMsg: TTntAction;
    ActionSMSForwardMsg: TTntAction;
    ActionConnectionToggle: TTntAction;
    ActionContactsVoiceCall: TTntAction;
    Call1: TTntMenuItem;
    Timer1: TTimer;
    ApplicationEvents1: TApplicationEvents;
    trayMenu: TTntPopupMenu;
    Connect1: TTntMenuItem;
    NewMessage1: TTntMenuItem;
    MainMenu1: TTntMainMenu;
    Connection1: TTntMenuItem;
    Connect2: TTntMenuItem;
    Disconnect1: TTntMenuItem;
    Refresh1: TTntMenuItem;
    N5: TTntMenuItem;
    Exit1: TTntMenuItem;
    Action2: TTntMenuItem;
    MessagetoContact1: TTntMenuItem;
    NewMessage3: TTntMenuItem;
    Reply2: TTntMenuItem;
    Forward2: TTntMenuItem;
    Delete2: TTntMenuItem;
    N8: TTntMenuItem;
    CopytoArchive1: TTntMenuItem;
    MovetoArchive2: TTntMenuItem;
    N9: TTntMenuItem;
    SelectAll1: TTntMenuItem;
    Help1: TTntMenuItem;
    About1: TTntMenuItem;
    ImageList2: TImageList;
    ActionAbout: TTntAction;
    ActionWindowRestore: TTntAction;
    ShowRestore1: TTntMenuItem;
    Exit2: TTntMenuItem;
    FormStorage1: TFormStorage;
    ActionToolsOptions: TTntAction;
    Tools1: TTntMenuItem;
    Options1: TTntMenuItem;
    ActionConnectionMonitor: TTntAction;
    Monitor1: TTntMenuItem;
    ActionConnectionAutoConnect: TTntAction;
    AutoConnect1: TTntMenuItem;
    tbStandard: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    RefreshToolButton: TToolButton;
    ScriptControl: TawScriptControl;
    ActionToolsEditScript: TTntAction;
    EditScript1: TTntMenuItem;
    ObexOpenDialog: TTntOpenDialog;
    ActionConnectionAbort: TTntAction;
    N16: TTntMenuItem;
    Abort1: TTntMenuItem;
    ActionToolsUpload: TTntAction;
    Upload1: TTntMenuItem;
    ToolButton13: TToolButton;
    ActionToolsPostNote: TTntAction;
    Postanote1: TTntMenuItem;
    LMDOneInstance1: TLMDOneInstance;
    LMDFMDrop: TLMDFMDrop;
    tbProfile: TToolBar;
    cbProfile: TTntComboBox;
    ToolButton11: TToolButton;
    ActionSMSDownloadInbox: TTntAction;
    ActionToolsEditProfile: TTntAction;
    WBtSocket: TWBluetoothSocket;
    WIrSocket: TWIrCOMMSocket;
    ActionSMSExport: TTntAction;
    ExportSMS1: TTntMenuItem;
    SaveDialog1: TTntSaveDialog;
    ToolButton14: TToolButton;
    ActionSyncPhonebook: TTntAction;
    StartSyncPhoneBook1: TTntMenuItem;
    Sync1: TTntMenuItem;
    ToolButton16: TToolButton;
    ActionMissedCalls: TTntAction;
    ActionMissedCalls1: TTntMenuItem;
    ActionToolsKeyPad: TTntAction;
    KeyPad1: TTntMenuItem;
    ActionExit: TTntAction;
    ActionContactsExportME: TTntAction;
    ExportContacts1: TTntMenuItem;
    ActionToolsEditProfile1: TTntMenuItem;
    SaveDialog2: TTntSaveDialog;
    ActionToolsPostBookmark: TTntAction;
    Postbookmark1: TTntMenuItem;
    CoolTrayIcon1: TCoolTrayIcon;
    ImageList3: TImageList;
    ActionWindowMinimize: TTntAction;
    FmaOnSFNet1: TTntMenuItem;
    ActionToolsChangeProfile: TTntAction;
    ActionToolsDownload: TTntAction;
    ObexSaveDialog: TTntSaveDialog;
    Download2: TTntMenuItem;
    PanelExplorer: TTntPanel;
    PanelFolders: TTntPanel;
    SpeedButton1: TTntSpeedButton;
    ViewExplorer1: TTntMenuItem;
    ActionConnectionExplorer: TTntAction;
    SyncPhoneClock1: TTntMenuItem;
    ActionExplorerUpFolder: TTntAction;
    ActionContactsNewPerson: TTntAction;
    newcontact1: TTntMenuItem;
    Properties1: TTntMenuItem;
    tbMessages: TToolBar;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    ToolButton29: TToolButton;
    ToolButton30: TToolButton;
    tbCalls: TToolBar;
    ToolButton17: TToolButton;
    ToolButton10: TToolButton;
    ActionEditGoUp: TTntAction;
    ActionEditGoDown: TTntAction;
    FramePanel: TTntPanel;
    PanelTest: TTntPanel;
    TntPageControl1: TTntPageControl;
    TntTabSheet2: TTntTabSheet;
    Memo3: TTntMemo;
    Button3: TTntButton;
    cbTerminal: TTntComboBox;
    TntTabSheet1: TTntTabSheet;
    Label1: TTntLabel;
    Image: TTntImage;
    Label4: TTntLabel;
    Label5: TTntLabel;
    Memo2: TTntMemo;
    Memo1: TTntMemo;
    Button1: TTntButton;
    Button2: TTntButton;
    Edit2: TTntEdit;
    RadioButton1: TTntRadioButton;
    RadioButton2: TTntRadioButton;
    cbObex: TTntComboBox;
    Button10: TTntButton;
    Button11: TTntButton;
    TntTabSheet3: TTntTabSheet;
    Label2: TTntLabel;
    Label3: TTntLabel;
    TntEdit1: TTntEdit;
    TntEdit2: TTntEdit;
    Button4: TTntButton;
    Button5: TTntButton;
    Button6: TTntButton;
    Button7: TTntButton;
    Button8: TTntButton;
    Button9: TTntButton;
    Button12: TTntButton;
    DescrPanel: TTntPanel;
    Panel1: TTntPanel;
    ToolButton21: TToolButton;
    AudioMixer1: TAudioMixer;
    lblCurrentPage: TTntLabel;
    PopupMenu2: TTntPopupMenu;
    ShowExplorer1: TTntMenuItem;
    N14: TTntMenuItem;
    ImageList4: TImageList;
    LMDFill1: TLMDFill;
    View1: TTntMenuItem;
    MsgPreview1: TTntMenuItem;
    ActionViewMsgPreview: TTntAction;
    Timer2: TTimer;
    FmaOnTheWeb1: TTntMenuItem;
    FmaOnTheWeb2: TTntMenuItem;
    ActionContactsAddContact: TTntAction;
    EditOwnCard1: TTntMenuItem;
    ActionContactsOwn: TTntAction;
    N6: TTntMenuItem;
    SyncOutlook1: TTntMenuItem;
    SyncBookmarks1: TTntMenuItem;
    N13: TTntMenuItem;
    FmaOnForums1: TTntMenuItem;
    N22: TTntMenuItem;
    CheckforUpdate1: TTntMenuItem;
    N25: TTntMenuItem;
    N26: TTntMenuItem;
    SendOutboxMessages1: TTntMenuItem;
    ToolButton3: TToolButton;
    ToolButton25: TToolButton;
    ActionConnectionSendOutboxMsgs: TTntAction;
    ActionToolsKeybLock: TTntAction;
    ToggleKeyboardLock1: TTntMenuItem;
    pbRSSI: TLMDProgressFill;
    pbPower: TLMDProgressFill;
    Label6: TTntLabel;
    ActionSMSImport: TTntAction;
    ActionContactsImportME: TTntAction;
    Export1: TTntMenuItem;
    ImportSMS1: TTntMenuItem;
    ImportContacts1: TTntMenuItem;
    DebugTools1: TTntMenuItem;
    Timer3: TTimer;
    FmaWebUpdate1: TFmaWebUpdate;
    ActionSyncWithOutlook: TTntAction;
    N29: TTntMenuItem;
    swprofile1: TTntMenuItem;
    ActionSwitchUserProfile: TTntAction;
    ToolButton15: TToolButton;

⌨️ 快捷键说明

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