📄 formmainunit.~pas
字号:
unit FormMainUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ImgList, ComCtrls, CommCtrl, ToolWin, StdCtrls, ExtCtrls, DB,
ADODB, ShellApi, AppEvnts, RxRichEd, ExtDlgs, FileCtrl, Clipbrd, Printers,
richEdit, Comobj, DBTables, Buttons, OleCtrls, SHDocVw, RXShell, RxCombos,
IniFiles, MShtml, ShlObj, XPMenu;
type
PNodeInfos = ^TNodeInfos;
TNodeInfos = record
AutoID, ParentID: Integer; //当前节点编号,父层编号
InfoTypeName: string; //当前节点名
end;
PMostInfos = ^TMostInfos;
TMostInfos = record
name, url: string;
end;
TFormMain = class(TForm)
MainMenu1: TMainMenu;
menu_File: TMenuItem;
menu_Exit: TMenuItem;
menu_HELP: TMenuItem;
menu_About: TMenuItem;
CoolBar1: TCoolBar;
PageScroller1: TPageScroller;
ToolBar1: TToolBar;
ImageListMainToolBar: TImageList;
StatusBar1: TStatusBar;
Panel1: TPanel;
Splitter1: TSplitter;
Panel2: TPanel;
Splitter2: TSplitter;
FileList: TListView;
TypeTreePopupMenu: TPopupMenu;
SubMenu_TypeAdd: TMenuItem;
SubMenu_TypeDel: TMenuItem;
FileListPopupMenu: TPopupMenu;
SubMenu_FileOpenOther: TMenuItem;
SubMenu_FileOpenSelf: TMenuItem;
N1: TMenuItem;
SubMenu_FileExport: TMenuItem;
SubMenu_FileImport: TMenuItem;
EditPopupMenu: TPopupMenu;
SubMenu_EditCopy: TMenuItem;
SubMenu_EditPaste: TMenuItem;
SubMenu_EditCut: TMenuItem;
N2: TMenuItem;
SubMenu_EditSave: TMenuItem;
SubMenu_EditSaveAS: TMenuItem;
ADOConnection1: TADOConnection;
TypeQuery: TADOQuery;
SubMenu_TreeAddRoot: TMenuItem;
N3: TMenuItem;
SubMenu_TreeExpandAll: TMenuItem;
SubMenu_TreeEdit: TMenuItem;
SubMenu_TreeCloseNode: TMenuItem;
ApplicationEvents1: TApplicationEvents;
SaveDialog1: TSaveDialog;
ToolbarImages: TImageList;
SubMenu_EditInsert: TMenuItem;
OpenPictureDialog1: TOpenPictureDialog;
SubMenu_EditInsertTAB: TMenuItem;
SubMenu_EditInsertSysTime: TMenuItem;
SubMenu_EditInsertHR: TMenuItem;
N6: TMenuItem;
SubMenu_EditInsertFileLink: TMenuItem;
SubMenu_EditInsertDirLink: TMenuItem;
N9: TMenuItem;
SubMenu_EditInsertText: TMenuItem;
SubMenu_EditInsertOLE: TMenuItem;
OpenDialog1: TOpenDialog;
richEdit: TRxRichEdit;
Bmp1: TMenuItem;
N4: TMenuItem;
SubMenu_EditTools: TMenuItem;
SubMenu_EditToolsPntSel: TMenuItem;
SubMenu_EditToolsPntTxt: TMenuItem;
N5: TMenuItem;
SubMenu_EditToolsCodeColor: TMenuItem;
SubMenu_EditToolsSaveAsImg: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N10: TMenuItem;
Panel3: TPanel;
Panel4: TPanel;
SpeedButton4: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton1: TSpeedButton;
CountTotalCpt: TLabel;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton7: TToolButton;
tbEditMode: TToolButton;
tbWbMode: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
ToolButton14: TToolButton;
ToolButton15: TToolButton;
ToolButton17: TToolButton;
WebBrowser1: TWebBrowser;
RxTrayIcon1: TRxTrayIcon;
TrayIconPopupmenu: TPopupMenu;
Submenu_TrayIconShow: TMenuItem;
Submenu_TrayIconAbout: TMenuItem;
N13: TMenuItem;
Submenu_TrayIconExit: TMenuItem;
SubMenu_FileDelete: TMenuItem;
menu_Tools: TMenuItem;
menu_BackRestore: TMenuItem;
menu_ComZip: TMenuItem;
menu_RepairDB: TMenuItem;
mbookPopupMenu: TPopupMenu;
SubMenu_mbookView: TMenuItem;
SubMenu_mbookAdd: TMenuItem;
SubMenu_mbookDel: TMenuItem;
N11: TMenuItem;
SubMenu_mbookRename: TMenuItem;
Panel9: TPanel;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TypeTree: TTreeView;
TabSheet2: TTabSheet;
Panel5: TPanel;
Label1: TLabel;
txtIndex: TEdit;
ResultList: TListView;
TabSheet4: TTabSheet;
Panel6: TPanel;
Label2: TLabel;
Panel7: TPanel;
Panel8: TPanel;
SpeedButton6: TSpeedButton;
SpeedButton5: TSpeedButton;
MbList: TListView;
PageScroller2: TPageScroller;
StandardToolBar: TToolBar;
CutButton: TToolButton;
CopyButton: TToolButton;
PasteButton: TToolButton;
UndoButton: TToolButton;
ToolButton10: TToolButton;
FontName: TComboBox;
ToolButton11: TToolButton;
FontSize: TEdit;
UpDown1: TUpDown;
ToolButton6: TToolButton;
FontColor: TColorComboBox;
ToolButton8: TToolButton;
BoldButton: TToolButton;
ItalicButton: TToolButton;
UnderlineButton: TToolButton;
ToolButton16: TToolButton;
LeftAlign: TToolButton;
CenterAlign: TToolButton;
RightAlign: TToolButton;
ToolButton20: TToolButton;
BulletsButton: TToolButton;
TabSheet3: TTabSheet;
MostTree: TTreeView;
Panel10: TPanel;
Panel11: TPanel;
btnOrgMost: TSpeedButton;
btnAddMost: TSpeedButton;
Panel12: TPanel;
Label3: TLabel;
MostPopupMenu: TPopupMenu;
SubMenu_MostOpenDef: TMenuItem;
SubMenu_MostOpenIE: TMenuItem;
SubMenu_MostOpenSelf: TMenuItem;
N14: TMenuItem;
SubMenu_MostSendToDesktop: TMenuItem;
SubMenu_MostOrgLink: TMenuItem;
N15: TMenuItem;
SubMenu_MostExToFloder: TMenuItem;
SubMenu_MostExHTML: TMenuItem;
SubMenu_MostAddLink: TMenuItem;
SubMenu_MostOpenWeb: TMenuItem;
N12: TMenuItem;
menu_Update: TMenuItem;
Timer1: TTimer;
N16: TMenuItem;
SubMenu_EditToolsSp: TMenuItem;
XPMenu1: TXPMenu;
procedure FormShow(Sender: TObject);
procedure TypeTreeExpanding(Sender: TObject; Node: TTreeNode;
var AllowExpansion: Boolean);
procedure TypeTreeClick(Sender: TObject);
procedure SubMenu_TypeDelClick(Sender: TObject);
procedure SubMenu_TypeAddClick(Sender: TObject);
procedure SubMenu_TreeAddRootClick(Sender: TObject);
procedure SubMenu_TreeExpandAllClick(Sender: TObject);
procedure TypeTreeEdited(Sender: TObject; Node: TTreeNode;
var S: string);
procedure SubMenu_TreeEditClick(Sender: TObject);
procedure menu_ExitClick(Sender: TObject);
procedure SubMenu_TreeCloseNodeClick(Sender: TObject);
procedure menu_AboutClick(Sender: TObject);
procedure SubMenu_EditSaveClick(Sender: TObject);
procedure ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
procedure SubMenu_EditCopyClick(Sender: TObject);
procedure SubMenu_EditCutClick(Sender: TObject);
procedure SubMenu_EditPasteClick(Sender: TObject);
procedure SubMenu_EditSaveASClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FontNameChange(Sender: TObject);
procedure FontSizeChange(Sender: TObject);
procedure BoldButtonClick(Sender: TObject);
procedure ItalicButtonClick(Sender: TObject);
procedure UnderlineButtonClick(Sender: TObject);
procedure LeftAlignClick(Sender: TObject);
procedure CenterAlignClick(Sender: TObject);
procedure RightAlignClick(Sender: TObject);
procedure BulletsButtonClick(Sender: TObject);
procedure CutButtonClick(Sender: TObject);
procedure CopyButtonClick(Sender: TObject);
procedure PasteButtonClick(Sender: TObject);
procedure UndoButtonClick(Sender: TObject);
procedure richEditURLClick(Sender: TObject; const URLText: string;
Button: TMouseButton);
procedure SubMenu_EditInsertTABClick(Sender: TObject);
procedure SubMenu_EditInsertSysTimeClick(Sender: TObject);
procedure SubMenu_EditInsertHRClick(Sender: TObject);
procedure SubMenu_EditInsertFileLinkClick(Sender: TObject);
procedure SubMenu_EditInsertDirLinkClick(Sender: TObject);
procedure SubMenu_EditInsertTextClick(Sender: TObject);
procedure richEditMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Bmp1Click(Sender: TObject);
procedure SubMenu_EditInsertOLEClick(Sender: TObject);
procedure SubMenu_EditToolsPntSelClick(Sender: TObject);
procedure SubMenu_EditToolsPntTxtClick(Sender: TObject);
procedure SubMenu_EditToolsCodeColorClick(Sender: TObject);
procedure SubMenu_EditToolsSaveAsImgClick(Sender: TObject);
procedure SubMenu_FileImportClick(Sender: TObject);
procedure SubMenu_FileExportClick(Sender: TObject);
procedure SubMenu_FileOpenOtherClick(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure FileListDblClick(Sender: TObject);
procedure TypeTreeChange(Sender: TObject; Node: TTreeNode);
procedure SpeedButton4Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure tbEditModeClick(Sender: TObject);
procedure tbWbModeClick(Sender: TObject);
procedure ToolButton13Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure SubMenu_FileOpenSelfClick(Sender: TObject);
procedure Submenu_TrayIconShowClick(Sender: TObject);
procedure SubMenu_FileDeleteClick(Sender: TObject);
procedure menu_BackRestoreClick(Sender: TObject);
procedure menu_ComZipClick(Sender: TObject);
procedure menu_RepairDBClick(Sender: TObject);
procedure Panel5Resize(Sender: TObject);
procedure txtIndexChange(Sender: TObject);
procedure txtIndexKeyPress(Sender: TObject; var Key: Char);
procedure txtIndexEnter(Sender: TObject);
procedure ResultListDblClick(Sender: TObject);
procedure MbListDblClick(Sender: TObject);
procedure SubMenu_mbookViewClick(Sender: TObject);
procedure SubMenu_mbookAddClick(Sender: TObject);
procedure SubMenu_mbookDelClick(Sender: TObject);
procedure SubMenu_mbookRenameClick(Sender: TObject);
procedure FontColorChange(Sender: TObject);
procedure SubMenu_MostOpenDefClick(Sender: TObject);
procedure SubMenu_MostOpenIEClick(Sender: TObject);
procedure MostTreeDblClick(Sender: TObject);
procedure SubMenu_MostOpenSelfClick(Sender: TObject);
procedure SubMenu_MostOpenWebClick(Sender: TObject);
procedure SubMenu_MostSendToDesktopClick(Sender: TObject);
procedure SubMenu_MostExToFloderClick(Sender: TObject);
procedure SubMenu_MostExHTMLClick(Sender: TObject);
procedure SubMenu_MostAddLinkClick(Sender: TObject);
procedure SubMenu_MostOrgLinkClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);
procedure menu_UpdateClick(Sender: TObject);
procedure SubMenu_EditToolsSpClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
procedure GetFontNames;
function searchChildNode(ParentID: integer): boolean; //搜索其下是否存在子节点
procedure initTypeTree(Tree: TTreeView; Node: TTreeNode; ParentID: Integer); //初始化分类树
procedure ExpandTypeTree(Tree: TTreeView; node: TTreeNode); //展开分类树的节点
procedure AddTypeNode(Sender: TObject; isRoot: boolean);
procedure NodeExpandAll(Node: TTreeNode);
procedure NodeColAdd(Node: TTreeNode);
procedure DisplayText(Node: Tobject);
procedure ExecPrintText;
procedure DBOLDSaveToFile(fileName: string; FID: Integer);
procedure SetEditMode(isRichEdit: boolean);
procedure showHtml(fileName: string);
procedure InitMbList;
function GetSysFolder(aRoot: integer): string;
public
tmpFileName: string;
InfoID: Integer;
InfoTitle: string;
NodeInfos: PNodeInfos;
MostInfos: PMostInfos;
procedure DisplayFileList(IID: integer);
procedure readMostToTree;
procedure AddFavorite(IE: TWebBrowser); overload;
procedure AddFavorite(aName, aURL: string); overload;
procedure SendMostToDesktop(aName, aURL: string);
procedure DeleteTmpFile;
end;
var
FormMain : TFormMain;
implementation
uses FormInputDialogsUnit, sndkey32, FastStrings, FormSetCodeColorUnit,
FormRichESaveToBmpUnit, xStreams, FastStringFuncs,
FormWaitForTmpFileUnit, FormBackrestUnit, FormReMBBooknameUnit,
FormAddMostUnit, FormOrgMostUnit, PublicU, FormUpdateUnit,
FormSplashUnit; //, FormVoiceTextUnit;
{$R *.dfm}
procedure TFormMain.DeleteTmpFile;
var
K : Integer;
vSearchRec : TSearchRec;
Paths : string;
sp : string;
begin
Paths := GetExePath + 'files';
sp := Paths;
sp := sp + '\*.*';
K := FindFirst(sp, faAnyFile, vsearchRec);
while k = 0 do
begin
if (length(vSearchRec.Name) > 1) and (vSearchRec.Name <> '..') and
(vSearchRec.Attr and faDirectory = 0) then
begin
if ansicomparetext(vSearchRec.Name, 'Most.ini') <> 0 then
deleteFile(Paths + '\' + vSearchRec.Name);
end;
K := FindNext(vSearchRec);
end;
FindClose(vSearchRec);
end;
procedure TFormMain.AddFavorite(IE: TWebBrowser);
procedure CreateUrl(AUrlPath, AUrl: PChar);
var
URLfile : TIniFile;
begin
URLfile := TIniFile.Create(string(AUrlPath));
URLfile.WriteString('InternetShortcut', 'URL', string(AUrl));
URLfile.Free;
end;
var
AddFav : function(Handle: THandle;
UrlPath: PChar; UrlPathSize: Cardinal;
Title: PChar; TitleSize: Cardinal; FavIDLIST: pItemIDList): Bool; stdcall;
FDoc : IHTMLDocument2;
UrlPath, url, title: array[0..MAX_PATH] of char;
H : HWnd;
pidl : pItemIDList;
FRetOK : Bool;
begin
FDoc := IHTMLDocument2(IE.Document);
if FDoc = nil then
exit;
StrPCopy(Title, FDoc.Get_title);
StrPCopy(url, FDoc.Get_url);
if Url <> '' then
begin
H := LoadLibrary(PChar('shdocvw.dll'));
if H <> 0 then
begin
SHGetSpecialFolderLocation(0, CSIDL_FAVORITES, pidl);
AddFav := GetProcAddress(H, PChar('DoAddToFavDlg'));
if Assigned(AddFav) then
FRetOK := AddFav(Handle, UrlPath, Sizeof(UrlPath), Title,
Sizeof(Title), pidl);
end;
FreeLibrary(h);
if FRetOK then
CreateUrl(UrlPath, Url);
end;
end;
procedure TFormMain.AddFavorite(aName, aURL: string);
procedure CreateUrl(AUrlPath, AUrl: PChar);
var
URLfile : TIniFile;
begin
URLfile := TIniFile.Create(string(AUrlPath));
URLfile.WriteString('InternetShortcut', 'URL', string(AUrl));
URLfile.Free;
end;
var
AddFav : function(Handle: THandle;
UrlPath: PChar; UrlPathSize: Cardinal;
Title: PChar; TitleSize: Cardinal; FavIDLIST: pItemIDList): Bool; stdcall;
UrlPath, url, title: array[0..MAX_PATH] of char;
H : HWnd;
pidl : pItemIDList;
FRetOK : Bool;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -