吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 839|回复: 13
上一主题 下一主题
收起左侧

[其他原创] 从零开始打造一款(吾爱破解-北冥神功_文件管理器)之一基础搭建

  [复制链接]
跳转到指定楼层
楼主
冥界3大法王 发表于 2026-5-8 12:11 回帖奖励
本帖最后由 冥界3大法王 于 2026-5-8 16:34 编辑

从零开始打造一款(吾爱破解-北冥神功_文件管理器)之一基础搭建

费话说完直接开干!
RAD Studio 13.1 绿色版.html  https://share.weiyun.com/sQa6Xrrs
Delphi 13.1 精简绿色版.html  https://share.weiyun.com/d1VKfW7f
注册机应版主姥佛爷要求已经和谐。。。请自行探索~~

上来你需要电脑上安装Delphi+ 资源管理器的组件( https://www.jam-software.com/shellbrowser_delphi)
上面提供几个下载了!安装过程就略过了!
为了配合我们完成任务,我们还需要几个安装几个得力干将!VS Code 和 一些AI大模型 。
等我忙完了,B着做个语音视频吧。。。

我们的总体设计思路是这样的: 抄、扒、挪、改、修!不断的和AI对话完成目标。
具体就是觉得哪个文件管理器有特色功能,我们就试着模仿借鉴一下、它的一些插件什么的、尽可能多的拿来用用不重新画轱辘完成创意和改良。









目前已实现功能皆在截图中。。。多标签。。。下方详。


模仿PicaView实现的右键预览图片功能哟~~


还有全屏看图,和使用(space/PageDown/Right/下一张) PageUp/Up上一张,ESC退出图片浏览器就不一一截图了。


首先万事开头难,我们上来必须有一个合理的规划,这样才能有了好的架构,设计出比较丰满的功能:
我们的整体思路上面已经交待了一部分,下面具体来实现:
Delphi的开发速度那是相当相当的牛逼和恐怖,尤其在Windows平台上快速构建IDE(主界面)那是向来相当的霸道的快速,不像使用VS2022+MFC(时你拖动一个TAB
后面对应的不能再行编辑和修改,只能用代码来完成)



New=>Windows VCL Application - Delphi

把工程模式选择为=》发布(这样一会F9编译出的就不是调试版本了)
拖入 一个 MainMenu1,拖入一个 PageControl1,  拖入一个StatusBar1

再把PageControl1的对齐设置为平铺撑满整个窗口
StatusBar1对齐设置默认为居底不用设置
最后再拖入一个JamExplorerBrowser1 把对齐设置为平铺撑满整个窗口

这样用时不到30秒,整体框架就搭建好了。

你可以直接F9编译一下:

默认就是这样的,因为没有设置,所以没有 后退、前进、返回上一级按钮、地址栏,搜索栏

双击MainMenu1依次添加上面的 菜单项。。(找到Caption输入文字)
如果想出现下一级菜单按Ctrl+Right。。。再次依次输入
如果想出现水平菜单分割线还是找到Caption再输入 - (减号键)


依次找到上面的 【新建标签 】双击写入完成的事件代码
[Pascal] 纯文本查看 复制代码
procedure TForm35.NewTab1Click(Sender: TObject);
var
  TabSheet: TTabSheet;
  Browser, SrcBrowser: TJamExplorerBrowser;
begin
  SrcBrowser := GetActiveBrowser;
  TabSheet := TTabSheet.Create(PageControl1);
  TabSheet.PageControl := PageControl1;
  Browser := TJamExplorerBrowser.Create(TabSheet);
  Browser.Parent := TabSheet;
  Browser.Align := alClient;
  Browser.VisiblePanes := [epNavigation, epAddressBar, epHistory, epSearchEdit, epRefreshButton];
  Browser.OnPathChanged := JamExplorerBrowser1PathChanged;
  Browser.ShowHidden := True;
  if Assigned(SrcBrowser) then
    Browser.Path := SrcBrowser.Path
  else
    Browser.Path := '我的电脑';
  TabSheet.Caption := ExtractFileName(ExcludeTrailingPathDelimiter(Browser.Path));
  if TabSheet.Caption = '' then
    TabSheet.Caption := Browser.Path;
  PageControl1.ActivePage := TabSheet;
  UpdateStatus;
end;



private
    function GetActiveBrowser: TJamExplorerBrowser;
    function GetActiveTabSheet: TTabSheet;
下面:
[Delphi] 纯文本查看 复制代码
function TfrmMain.GetActiveBrowser: TJamExplorerBrowser;
var
  ts: TTabSheet;
  i: Integer;
begin
  Result := nil;
  ts := GetActiveTabSheet;
  if ts <> nil then
  begin
    for i := 0 to ts.ControlCount - 1 do
      if ts.Controls[i] is TJamExplorerBrowser then
      begin
        Result := TJamExplorerBrowser(ts.Controls[i]);
        Break;
      end;
  end;
end;


下面再添加函数:
function TForm35.GetActiveTabSheet: TTabSheet;
begin
  if PageControl1.ActivePage <> nil then
    Result := PageControl1.ActivePage
  else
    Result := nil;
end;



procedure TForm35.JamExplorerBrowser1PathChanged(Sender: TObject);
var
  Browser: TJamExplorerBrowser;
  ts: TTabSheet;
  i: Integer;
begin
  if Sender is TJamExplorerBrowser then
  begin
    Browser := TJamExplorerBrowser(Sender);
    for i := 0 to PageControl1.PageCount - 1 do
    begin
      if PageControl1.Pages.ControlCount > 0 then
      begin
        if PageControl1.Pages.Controls[0] = Browser then
        begin
          ts := PageControl1.Pages;
          ts.Caption := ExtractFileName(ExcludeTrailingPathDelimiter(Browser.Path));
          if ts.Caption = '' then
            ts.Caption := Browser.Path;
          Break;
        end;
      end;
    end;
    UpdateStatus;
  end;
end;

procedure TForm35.UpdateStatus;
var
  Browser: TJamExplorerBrowser;
begin
  Browser := GetActiveBrowser;
  if Assigned(Browser) then
  begin
    StatusBar1.Panels[0].Text := 'Path: ' + Browser.Path;
  end;
end;

最后,我再把设置一下该控件/组件 默认的显示内容,按F9编译看下效果吧。
这次 NewTab就正常了。






免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
gujiu520 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
hubin07 发表于 2026-5-8 12:39
支持原创,楼主厉害
3#
chaojiak47 发表于 2026-5-8 12:42
4#
hellovirus 发表于 2026-5-8 12:48
5#
虚幻魔王 发表于 2026-5-8 13:08
北冥大魔王,你这在折腾啥?
6#
宜城小站 发表于 2026-5-8 13:12
感谢楼主分享原创,现在使用 TC 还不太习惯
7#
gujiu520 发表于 2026-5-8 13:16
我去牛逼了 但是用不惯暂时
8#
goneby007 发表于 2026-5-8 13:20
楼主我是来给你加油的
9#
iawyxkdn8 发表于 2026-5-8 13:24
感谢分享!
10#
小鸟会飞 发表于 2026-5-8 13:51
技术大佬 真厉害感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-5-9 09:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表