📄 main.pas
字号:
{*******************************************************************************
* LAN Explorer 1.6 Copyright 2001-2005 zhuwei, all rights reserved.
* e-mail:zw84611@sina.com
*******************************************************************************}
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ToolWin, ComCtrls, ExtCtrls, Menus, StdCtrls, Tabs, ImgList,Inifiles,
Buttons,ShlObj,MultiSearchThreadUnit,ShellApi,CommCtrl, ClipBrd, Spin,
FmxUtils{, TrayIcon}, WinSock, WinInet, ComObj, FileCtrl;
type
TMainForm = class(TForm)
CoolBar1: TCoolBar;
MainMenu: TMainMenu;
MenuTools: TMenuItem;
MenuAbout: TMenuItem;
StatusBar: TStatusBar;
ImageList1: TImageList;
pmListItem: TPopupMenu;
N_Open: TMenuItem;
N_Copy: TMenuItem;
N_Size: TMenuItem;
N_OpenWithNotpad: TMenuItem;
ClientPanel: TPanel;
N_CopyTo: TMenuItem;
BottomPopupMenu: TPopupMenu;
N_SaveAll: TMenuItem;
SaveDlg: TSaveDialog;
MenuView: TMenuItem;
Menu_Tree: TMenuItem;
Menu_Result: TMenuItem;
Menu_About: TMenuItem;
N_BottomOpen: TMenuItem;
N_BottomCopy: TMenuItem;
N_BottomCopyTo: TMenuItem;
N_BottomFileSize: TMenuItem;
N_Property: TMenuItem;
Splitter1: TSplitter;
CliePanel: TPanel;
ClientPageCtrl: TPageControl;
ShareTabSheet: TTabSheet;
BrowseListView: TListView;
LanTreePopupMenu: TPopupMenu;
N_LanTreeRefresh: TMenuItem;
N_SaveFavo: TMenuItem;
N_FindIP: TMenuItem;
Menu_IPForm: TMenuItem;
N3: TMenuItem;
N_Del: TMenuItem;
N_Begin_Search_With: TMenuItem;
ToolBar1: TToolBar;
ToolBtnConfig: TToolButton;
Menu_Help: TMenuItem;
Splitter2: TSplitter;
BottomPanel: TPanel;
BottomPageCtrl: TPageControl;
AllFileTabSheet: TTabSheet;
FindTabSheet: TTabSheet;
FindListView: TListView;
Mp3TabSheet: TTabSheet;
Mp3ListView: TListView;
MovieTabSheet: TTabSheet;
MovieListView: TListView;
LeftPanel: TPanel;
LeftPageCtrl: TPageControl;
SearchTabSheet: TTabSheet;
FavoTabSheet: TTabSheet;
FavoTree: TTreeView;
SearchHostTabSheet: TTabSheet;
Panel1: TPanel;
STPanel: TPanel;
Label1: TLabel;
BtnFind: TSpeedButton;
Edit1: TEdit;
ChoiceRadio: TRadioGroup;
FindTree: TTreeView;
pnlHeader: TPanel;
N_BottomOpenDir: TMenuItem;
N_Delete: TMenuItem;
N4: TMenuItem;
HistoryTabSheet: TTabSheet;
N_Clear: TMenuItem;
N_Sys: TMenuItem;
Menu_Find: TMenuItem;
Menu_Dos: TMenuItem;
N_SaveTree: TMenuItem;
MenuSearch: TMenuItem;
Menu_Search_Config: TMenuItem;
Splitter3: TSplitter;
AllListBox: TListBox;
ShareListView: TListView;
Menu_Nbtstat: TMenuItem;
ToolBtnNbt: TToolButton;
SearchPageCtrl: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
ToolBtnScanPort: TToolButton;
Menu_ScanPort: TMenuItem;
Menu_Ping: TMenuItem;
ToolBtnPing: TToolButton;
Panel3: TPanel;
IpTree: TTreeView;
Panel2: TPanel;
edtIP1: TEdit;
edtIP2: TEdit;
Label2: TLabel;
Label3: TLabel;
ToolButton1: TToolButton;
Panel4: TPanel;
SearchTree: TTreeView;
Panel5: TPanel;
cbBegin: TComboBox;
cbEnd: TComboBox;
Label4: TLabel;
Label5: TLabel;
ToolBar4: TToolBar;
ToolBtnSearcIP: TToolButton;
btnIP: TToolButton;
ToolBtnSendMsg: TToolButton;
Menu_SendMsg: TMenuItem;
N_SendMsg: TMenuItem;
Menu_NbtHistory: TMenuItem;
Splitter4: TSplitter;
Splitter5: TSplitter;
Splitter6: TSplitter;
ToolBar3: TToolBar;
ToolBtnRefresh: TToolButton;
ToolBtnAuto: TToolButton;
ToolPanel: TPanel;
IconCheckBox: TCheckBox;
MenuCheckBox: TCheckBox;
ToolBtnBack: TToolButton;
ToolBtnNext: TToolButton;
ToolButton2: TToolButton;
ToolBtnUp: TToolButton;
cbScanMode: TComboBox;
Label6: TLabel;
cbNewRoot: TCheckBox;
ToolBtnIpHelp: TToolButton;
ToolBtnHostIP: TToolButton;
btnSetAddr: TButton;
btnAddrUp: TSpeedButton;
btnAddrDown: TSpeedButton;
Menu_CopyForm: TMenuItem;
ToolBtnSave: TToolButton;
N_SaveRange: TMenuItem;
Panel7: TPanel;
Label7: TLabel;
cbShare: TCheckBox;
cbFtp: TCheckBox;
cbHttp: TCheckBox;
pmViewBakGrd: TPopupMenu;
N_Paste: TMenuItem;
N_SelectAll: TMenuItem;
N_Refresh: TMenuItem;
N_Favorite: TMenuItem;
N_NewWin: TMenuItem;
MenuItem16: TMenuItem;
N_View: TMenuItem;
N_View_SmallICon: TMenuItem;
N_View_List: TMenuItem;
N_Sort: TMenuItem;
N_Sort_Name: TMenuItem;
N_sort_type: TMenuItem;
N_CuteFtp: TMenuItem;
N_ViewReport: TMenuItem;
N_sort_size: TMenuItem;
Panel8: TPanel;
HistoryTree: TTreeView;
Panel6: TPanel;
Label8: TLabel;
Label9: TLabel;
cbSaveHistory: TCheckBox;
cbSaveOpt: TCheckBox;
seHistoryCount: TSpinEdit;
Splitter7: TSplitter;
procedure FormCreate(Sender: TObject);
//procedure BottomDockPanelEndDock(Sender, Target: TObject; X, Y: Integer);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ShareListViewClick(Sender: TObject);
procedure ShareListViewSelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
procedure ClientPageCtrlChange(Sender: TObject);
procedure N_OpenClick(Sender: TObject);
procedure N_CopyClick(Sender: TObject);
procedure pmListItemPopup(Sender: TObject);
procedure N_SizeClick(Sender: TObject);
procedure N_OpenWithNotpadClick(Sender: TObject);
procedure N_NewWinClick(Sender: TObject);
procedure N_FavoriteClick(Sender: TObject);
procedure SearchTreeClick(Sender: TObject);
procedure FavoTreeClick(Sender: TObject);
procedure N_RefreshClick(Sender: TObject);
procedure N_CopyToClick(Sender: TObject);
procedure N_SaveAllClick(Sender: TObject);
procedure Menu_TreeClick(Sender: TObject);
procedure Menu_ResultClick(Sender: TObject);
procedure Menu_AboutClick(Sender: TObject);
procedure IconCheckBoxClick(Sender: TObject);
procedure AllListBoxDblClick(Sender: TObject);
procedure FindListViewDblClick(Sender: TObject);
procedure Mp3ListViewDblClick(Sender: TObject);
procedure MovieListViewDblClick(Sender: TObject);
procedure N_BottomOpenClick(Sender: TObject);
procedure N_BottomCopyClick(Sender: TObject);
procedure BottomPopupMenuPopup(Sender: TObject);
procedure N_BottomFileSizeClick(Sender: TObject);
procedure N_BottomCopyToClick(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure N_PropertyClick(Sender: TObject);
procedure LanTreePopupMenuPopup(Sender: TObject);
procedure N_LanTreeRefreshClick(Sender: TObject);
procedure N_SaveFavoClick(Sender: TObject);
procedure N_FindIPClick(Sender: TObject);
procedure Menu_IPFormClick(Sender: TObject);
procedure BtnFindClick(Sender: TObject);
procedure ChoiceRadioClick(Sender: TObject);
procedure LeftPageCtrlChange(Sender: TObject);
procedure FindTreeClick(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure N_DelClick(Sender: TObject);
procedure N_SelectAllClick(Sender: TObject);
procedure N_Begin_Search_WithClick(Sender: TObject);
procedure ToolBtnConfigClick(Sender: TObject);
procedure Menu_HelpClick(Sender: TObject);
procedure N_BottomOpenDirClick(Sender: TObject);
procedure N_PasteClick(Sender: TObject);
procedure N_DeleteClick(Sender: TObject);
procedure HistoryTreeClick(Sender: TObject);
procedure N_ClearClick(Sender: TObject);
procedure N_SysClick(Sender: TObject);
procedure Menu_FindClick(Sender: TObject);
procedure Menu_DosClick(Sender: TObject);
procedure N_SaveTreeClick(Sender: TObject);
procedure Menu_Search_ConfigClick(Sender: TObject);
procedure ShareListViewResize(Sender: TObject);
procedure BrowseListViewMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure MenuCheckBoxClick(Sender: TObject);
procedure Menu_NbtstatClick(Sender: TObject);
procedure ToolBtnNbtClick(Sender: TObject);
procedure IpTreeClick(Sender: TObject);
procedure Menu_ScanPortClick(Sender: TObject);
procedure ToolBtnScanPortClick(Sender: TObject);
procedure Menu_PingClick(Sender: TObject);
procedure ToolBtnPingClick(Sender: TObject);
procedure ToolBtnRefreshClick(Sender: TObject);
procedure ToolBtnAutoClick(Sender: TObject);
procedure btnIPClick(Sender: TObject);
procedure ToolBtnSearcIPClick(Sender: TObject);
procedure Menu_SendMsgClick(Sender: TObject);
procedure ToolBtnSendMsgClick(Sender: TObject);
procedure N_SendMsgClick(Sender: TObject);
procedure Menu_NbtHistoryClick(Sender: TObject);
procedure ToolBtnBackClick(Sender: TObject);
procedure ToolBtnNextClick(Sender: TObject);
procedure ToolBtnUpClick(Sender: TObject);
procedure ToolBtnIpHelpClick(Sender: TObject);
procedure ToolBtnHostIPClick(Sender: TObject);
procedure N_Sort_NameClick(Sender: TObject);
procedure N_View_ListClick(Sender: TObject);
procedure N_View_SmallIconClick(Sender: TObject);
procedure btnSetAddrClick(Sender: TObject);
procedure btnAddrUpClick(Sender: TObject);
procedure btnAddrDownClick(Sender: TObject);
procedure Menu_CopyFormClick(Sender: TObject);
procedure ToolBtnSaveClick(Sender: TObject);
procedure N_SaveRangeClick(Sender: TObject);
procedure N_sort_typeClick(Sender: TObject);
procedure cbFtpClick(Sender: TObject);
procedure cbHttpClick(Sender: TObject);
procedure pmViewBakGrdPopup(Sender: TObject);
procedure N_CuteFtpClick(Sender: TObject);
procedure N_ViewReportClick(Sender: TObject);
procedure N_sort_sizeClick(Sender: TObject);
procedure pnlHeaderDblClick(Sender: TObject);
//procedure ToolBtnSeachIPClick(Sender: TObject);
private
{ Private declarations }
ini: Tinifile;
//f: TextFile;
TabSheetX: TTabSheet;
CurRlistItem: TListItem;
TemTreeNode:TTreeNode;
CurBottomListView:TListView;
FileList: TStringList;
CurTree:TTreeView;
FOriginalPageControlWndProc1: TWndMethod;
FOriginalPageControlWndProc3: TWndMethod;
FOriginalPageControlWndProc4: TWndMethod;
FOriginalPageControlWndProc5: TWndMethod;
//TrayIcon: TTrayIcon;
IsDoPrevNext: boolean;
procedure OpenIni;
procedure SaveIni;
procedure OpenFavorite;
procedure SaveFavorite;
procedure MyListViewClick(Sender: TObject);
procedure MyBottomListViewClick(ListView:TListView);
procedure LanTreeClick(LanTree:TTreeView);
procedure PageControlWndProc1(var Message: TMessage);
procedure PageControlWndProc3(var Message: TMessage);
procedure PageControlWndProc4(var Message: TMessage);
procedure PageControlWndProc5(var Message: TMessage);
procedure DisposeLanTree(DTree:TTreeView);
procedure DisposeListView;
procedure DisposeTabData;
procedure DisposeRightList(LV: TListView);
procedure OpenHistory;
procedure SaveHistory;
procedure ChangeBtnStatus;
procedure SaveSearuchResult(LV: TListView; FileName: string);
public
{ Public declarations }
bNotAutoSaveNbt: boolean;
CurDirName, CurGroupName:string;
CurFtpDir, CurFtpSvr: string;
//CurFtpHandle: HINTERNET;
CurListView: TListView;
StrListAll{, StrListSearch, StrListMp3, StrListMovie}: TStringList;
SizeListAll: TStringList;
CurDirItem: TListItem;
IsFtp: boolean;
procedure CheckFile(FileName, MyDir, MyGroup: string; ImageIndex, FileSize: integer);
procedure AddCap(group: string; dir: string);
function GroupFunc(s: string): string;
procedure ShowToolsForm(index: integer);
end;
{type} FileType = (IsFile, IsDir);
{type} OwnerType = (InTreeView, InListView);
PMyTreeItem = ^TMyTreeItem;
TMyTreeItem = record
DirName, Group: string;
TabIndex: integer;
MyClientListView: TListView;
MyRightListItem: TListItem;
end;
PFtpNodeType = ^TFtpNodeType;
TFtpNodeType = record
FtpHandle: HINTERNET;
TabIndex: integer;
MyDir: string;
FtpSvr: string;
MyClientListView: TListView;
MyRightListItem: TListItem;
DisplayDir: string;
end;
PListItem = ^TMyListItem;
TMyListItem = record // RListItem
//dirName,group: string;
index, count: integer;
PrevDirItem, NextDirItem, UpDirItem: TListItem;
FtpHandle: HINTERNET;
FtpDir: string; // root dir may be not '/' /// 05.11.2
end;
PFileItem = ^TMyFileItem;
TMyFileItem = record
ftype: FileType;
size: DWORD;
end;
pTabData = ^TMyTabData;
TMyTabData=record
MyGroup, MyDir:string;
MyRListItem: TListItem;
end;
TExecuteThread=class(TThread)
public
ExeFile, ExeDir:string;
protected
procedure Execute; override;
//Procedure Adddir;
end;
function GetImgIndex(s:string):integer;
var
MainForm : TMainForm;
AppDir : String;
GroupList : array[0..500]of string;
GroupNum,SearchBeginNum,SearchCount,FinishNum,ThreadNum: integer;
CanOpen : Boolean;
//MyItemPtr : PMyTreeItem;
//ListItemPtr : PListItem;
//TabDataPtr : pTabData;
//fPtr : pFileItem;
recursive,stop,bAutoSearch,bSysIcon,bNT: boolean;
OS : OSType;
bk : TBitmap;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -