📄 main.pas
字号:
LanTree.Selected.SelectedIndex := 77;
end;
Exe:=TExecuteThread.Create(true);
Exe.exeFile := pMyTreeItem(LanTree.Selected.data)^.dirname;
Exe.exeDir := extractfilepath(Exe.exeFile);
//caption:=exe.exeFile;
Exe.FreeOnTerminate := true;
Exe.Resume;
end;
26,28: // win2000 or nt ,guest forbided ,need login
begin
if LanTree.Selected.ImageIndex = 26
then
begin
LanTree.Selected.ImageIndex := 28;
LanTree.Selected.SelectedIndex := 28;
end
else
begin
LanTree.Selected.ImageIndex := 26;
LanTree.Selected.SelectedIndex := 26;
end;
Exe:=TExecuteThread.Create(true);
Exe.exeFile := LanTree.Selected.Text;
Exe.exeDir := extractfilepath(Exe.exeFile);
//caption:=exe.exeFile;
Exe.FreeOnTerminate := true;
Exe.Resume;
end;
end; //end of case
end;
procedure TMainForm.ShareListViewClick(Sender: TObject);
var
ListIndex, ListCount, i : integer;
ListItem : TListItem;
str : string;
FileInfo : TSHFileInfo;
fPtr : pFileItem;
begin
if ShareListView.Selected=nil then exit;
ListIndex:=PListitem(ShareListView.Selected.Data)^.index;
ListCount:=PListitem(ShareListView.Selected.Data)^.Count;
if ListCount <> -1 then
begin
ClientPageCtrl.ActivePageIndex :=0;
pTabData(ShareTabSheet.Tag).MyDir:= ShareListView.Selected.SubItems[0];
pTabData(ShareTabSheet.Tag).MyGroup:= ShareListView.Selected.SubItems[1];
pTabData(ShareTabSheet.Tag).MyRListItem:= ShareListView.Selected;
CurDirName:= ShareListView.Selected.SubItems[0]+'\';
CurGroupName:=ShareListView.Selected.SubItems[1];
AddCap(CurGroupName, CurDirName);
for i:=1 to BrowseListView.Items.Count do Dispose(pFileItem(BrowseListView.Items[i-1].Data));
BrowseListView.Items.Clear;
//FindIcon-----------------------------------------------------------------
if bSysIcon then
with BrowseListView do
begin
SmallImages:=TImageList.CreateSize(16,16);
SmallImages.Handle:=ShGetFileInfo('',0,FileInfo, SizeOf(FileInfo),
SHGFI_SMALLICON or SHGFI_ICON or SHGFI_SYSICONINDEX );
end
else BrowseListView.SmallImages := ImageList1;
//-------------------------------------------------------------------------
for i:= 1 to ListCount do
begin
ListItem:=BrowseListView.Items.Add;
str := StrListAll.Strings[ListIndex+i-1];
new(fPtr);
if str[length(str)]='\' then
begin
if not bSysIcon then ListItem.ImageIndex := 0
else ListItem.ImageIndex := GetFileIconIndex(str);
delete(str,length(str),1);
fPtr.ftype := IsDir;
end
else
begin
if not bSysIcon then ListItem.ImageIndex := GetImgIndex(str)
else ListItem.ImageIndex := GetFileIconIndex(str);
fPtr.ftype :=IsFile;
end;
ListItem.Data := fPtr;
listitem.Caption := ExtractFileName(str);
end;
end
else //ListCount <> -1 ,old history
begin
ClientPageCtrl.ActivePageIndex :=PListitem(ShareListView.Selected.Data)^.index;
AddCap(pTabData(ClientPageCtrl.ActivePage.tag)^.MyGroup,
pTabData(ClientPageCtrl.ActivePage.tag)^.MyDir);
end;
end;
procedure TMainForm.ShareListViewSelectItem(Sender: TObject;
Item: TListItem; Selected: Boolean);
begin
ShareListViewClick(Self);
end;
procedure TMainForm.ClientPageCtrlChange(Sender: TObject);
begin
{if ClientPageCtrl.ActivePageIndex =0
then RightPageCtrl.ActivePageIndex :=0
else RightPageCtrl.ActivePageIndex :=1;}
AddCap(pTabData(ClientPageCtrl.ActivePage.Tag)^.MyGroup,
pTabData(ClientPageCtrl.ActivePage.Tag).MyDir);
end;
procedure TMainForm.N_OpenClick(Sender: TObject);
begin
MyListViewClick(CurListView);
end;
procedure TMainForm.N_CopyClick(Sender: TObject);
var
FileName : string;
i : integer;
begin
FileName:='';
for i:=1 to CurListView.Items.Count do
if CurListView.Items[i-1].Selected
then FileName:=FileName+CurDirName+CurListView.Items[i-1].Caption+#0;
CopyToClipBoard(FileName, Handle);
end;
//Get File paths form clip board
function GetCopyFileList: boolean; forward;
procedure TMainForm.ListViewPopupMenuPopup(Sender: TObject);
var
i: integer;
begin
N_Open.Enabled := false;
N_Copy.Enabled := false;
N_Size.Enabled := false;
N_OpenWithNotpad.Enabled :=false;
N_Property.Enabled := false;
N_NewWin.Enabled := false;
N_Refresh.Enabled := false;
N_Favorite.Enabled := false;
N_CopyTo.Enabled := false;
N_SelectAll.Enabled := false;
N_Paste.Enabled := false;
N_Delete.Enabled := false;
CurDirName:= pTabData(ClientPageCtrl.ActivePage.Tag).MyDir+'\';
CurGroupName :=pTabData(ClientPageCtrl.ActivePage.Tag).MyGroup;
CurRlistItem :=pTabData(ClientPageCtrl.ActivePage.Tag).MyRListItem;
if ClientPageCtrl.ActivePageIndex=0 then CurListView:=BrowseListView
else CurListView:=(ClientPageCtrl.ActivePage.Components[0] as TListView);
if CurListView.SelCount >0 then
begin
N_Open.Enabled := true;
N_Copy.Enabled := true;
N_Size.Enabled := true;
N_CopyTo.Enabled := true;
if (CurListView.SelCount=1)then
begin
N_Property.Enabled := true;
if(CurListView.Selected.ImageIndex<>0)then N_OpenWithNotpad.Enabled := true;
end;
// for system popup menu use.
FileList.Clear;
for i:=1 to CurListView.Items.Count do
if (CurListView.Items[i-1].Selected) then FileList.Add(CurListView.Items[i-1].Caption);
end;
if CurRListItem<>nil then
begin
N_NewWin.Enabled := true;
N_Refresh.Enabled := true;
N_Favorite.Enabled := true;
N_SelectAll.Enabled := true;
end;
for i:=1 to CurListView.Items.Count do
if (CurListView.Items[i-1].Selected)and(CurListView.Items[i-1].ImageIndex=0)
then N_CopyTo.Enabled := false;
if (CurDirName <> '\')and(GetCopyFileList) then N_Paste.Enabled := true;
N_Delete.Enabled := N_Copy.Enabled;
N_Sys.Enabled := N_Copy.Enabled;
end;
procedure TMainForm.N_SizeClick(Sender: TObject);
var
fulls,msg : string;
i,size,nFile,nFolder : integer;
begin
size:=0;
nFile:=0;
nFolder:=0;
//DirName:=pTabData(ClientPageCtrl.ActivePage.Tag).MyDir+'\';
for i:=1 to CurListView.Items.Count do
begin
if CurListView.Items[i-1].Selected
then
begin
fulls:=CurDirName+CurListView.Items[i-1].Caption;
if CurListView.Items[i-1].ImageIndex<>0 then
begin
size:=size+ GetFileSize(fulls);
inc(nFile);
end
else
begin
size:=size+GetDirectorySize(fulls);
inc(nFolder);
end;
//caption:=fulls;
end;
end;
if nFolder=0 then msg := inttostr(nFile)+' 个文件'
else if nFile=0 then msg:= inttostr(nFolder)+' 个文件夹'
else msg:= inttostr(nFile)+' 个文件,'+inttostr(nFolder)+' 个文件夹';
//ShowMessage(msg+' 共'+FormatFloat('#,###" KB"', size/ 1024)+'('+inttostr(size)+'字节)');
Application.MessageBox(
pchar(msg+' 共'+FormatFloat('#,###" KB"', size/ 1024)+'('+inttostr(size)+'字节)'),
'文件大小',
MB_OK);
end;
procedure TMainForm.N_OpenWithNotpadClick(Sender: TObject);
var
command : string;
FileName : string;
begin
//DirName:=pTabData(ClientPageCtrl.ActivePage.Tag).MyDir+'\';
FileName:=CurListView.Selected.Caption;
command:= 'NotePad.exe '+CurDirName+FileName;
winexec(pchar(command),sw_normal);
end;
procedure TMainForm.N_NewWinClick(Sender: TObject);
var
Exe: TExecuteThread;
begin
Exe:=TExecuteThread.Create(true);
Exe.exeFile := CurDirName+'\';
Exe.exeDir := extractfilepath(Exe.exeFile);
//caption:=exe.exeFile;
Exe.FreeOnTerminate := true;
Exe.Resume;
end;
procedure TMainForm.N_FavoriteClick(Sender: TObject);
var
TemNode : TTreeNode;
//ListItem : TListItem;
f : TextFile;
MyItemPtr : PMyTreeItem;
begin
//caption:=dirname;
if(CurDirName[length(CurDirName)]='\')then delete(CurDirName,length(CurDirName),1);
New(MyItemPtr);
MyItemPtr^.group := CurGroupName;
MyItemPtr^.dirName := CurDirName;
TemNode:=FavoTree.items.AddChild(FavoTree.Items[0],CurDirName);
TemNode.Data := MyItemPtr;
FavoTree.Items[0].Expand(false);
//assignfile(f,'Favorite.txt');
assignfile(f,AppDir+'\Favorite.txt');
if not fileexists(AppDir+'\Favorite.txt')then rewrite(f)
else Append(f);
writeln(f,trimright(CurGroupName));
Writeln(f,CurDirName);
//Flush(f);
CloseFile(f);
end;
procedure TMainForm.SearchTreeClick(Sender: TObject);
begin
LanTreeClick(SearchTree);
end;
procedure TMainForm.FavoTreeClick(Sender: TObject);
begin
LanTreeClick(FavoTree);
end;
procedure TMainForm.N_RefreshClick(Sender: TObject);
var
DirSearcher: TSearchDirThread;
begin
DisposeListViewData(CurListView);
CurListView.Items.Clear;
DirSearcher:=TSearchDirThread.create(true);
DirSearcher.mydir := CurDirName;
DirSearcher.mygroup := CurGroupName;
DirSearcher.myList := CurListView;
//DirSearcher.Rlist :=ShareListView;
DirSearcher.RListItem := pTabData(ClientPageCtrl.ActivePage.Tag).MyRListItem;
DirSearcher.RListItem.ImageIndex := 6;
DirSearcher.ClickType := InListView;
DirSearcher.FreeOnTerminate := true;
DirSearcher.Resume;
end;
procedure TMainForm.N_CopyToClick(Sender: TObject);
var
i,j : integer;
b : boolean;
tems : string;
TemListItem : TListItem;
begin
with CopyToForm do
begin
for j:=CopyListview.Items.Count downto 1 do //should use downto
begin
if CopyListview.Items[j-1].ImageIndex = 24 then CopyListview.Items[j-1].Delete;
end;
Show;
if WindowState = wsMinimized then ShowWindow(Handle, SW_RESTORE);
caption:='拷贝文件';
Label2.Caption:=CurDirName;
//listview1.Items.Clear;
//caption:=inttostr(CurListView.SelCount);
for i:=1 to CurListView.Items.Count do
begin
if CurListView.Items[i-1].Selected
then
begin
tems:= CurDirName+CurListView.Items[i-1].Caption;
b:=false;
for j:=1 to CopyListview.Items.Count do
begin
if tems = CopyListview.Items[j-1].Caption then b:=true;
//if listview1.Items[j-1].ImageIndex = 24 then listview1.Items[j-1].Delete;
end;
if not b then
begin
temListItem:=CopyListview.Items.Add;
temListItem.ImageIndex := 22;
temListItem.Caption := tems;
temListItem.SubItems.Add('尚未开始');
end;
end;
end;
Combobox1.text:=ExtractFilepath(Combobox1.text);
BtnCancel.Caption := '取消';
//speedbutton3.Enabled := true;
ComboBox1.Items.Add(combobox1.text);
Label4.Caption := '共'+inttostr(CopyListView.Items.Count)+'个文件';
end; //end of with
end;
procedure TMainForm.N_SaveAllClick(Sender: TObject);
begin
case BottomPageCtrl.ActivePageIndex of
0: SaveDlg.FileName := 'Lan_log_All('+DateToStr(now)+')';
1: SaveDlg.FileName := 'Lan_log_Search('+DateToStr(now)+')';
2: SaveDlg.FileName := 'Lan_log_Mp3('+DateToStr(now)+')';
3: SaveDlg.FileName := 'Lan_log_Movie('+DateToStr(now)+')';
end;
if (SaveDlg.execute)and(SaveDlg.FileName<>'') then
begin
NewStyleControls := False; //why?
case BottomPageCtrl.ActivePageIndex of
0: AllListBox.Items.SaveToFile(SaveDlg.FileName);
1: StrListSearch.SaveToFile(SaveDlg.FileName);
2: StrListMp3.SaveToFile(SaveDlg.FileName);
3: StrListMovie.SaveToFile(SaveDlg.FileName);
end; //end of case
NewStyleControls := True;
end;
end;
procedure TMainForm.Menu_TreeClick(Sender: TObject);
begin
Menu_Tree.Checked := not Menu_Tree.Checked;
LeftPanel.Visible := Menu_Tree.Checked;
Splitter2.Visible := Menu_Tree.Checked;
Splitter2.Align := alRight;
Splitter2.Align := alLeft;
end;
procedure TMainForm.Menu_ResultClick(Sender: TObject);
begin
Menu_Result.Checked := not Menu_Result.Checked;
BottomPanel.Visible := Menu_Result.Checked;
Splitter1.Visible := Menu_Result.Checked;
Splitter1.Align := altop;
Splitter1.Align := albottom;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -