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

📄 main.pas

📁 vpn网上邻居搜索器 工作组 未打开的工作组 正在搜索的工作组 已打开的工作组 无法打开的工作组 主机 未打开的主机 正在搜索的主机 打开的主机(无须登录) 打开的主机(以gues
💻 PAS
📖 第 1 页 / 共 5 页
字号:
      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 + -