`
aaqxhaa
  • 浏览: 5124 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

100行代码实现简单目录浏览器制作

阅读更多

给大家分享使用Lae软件开发工具开发小应用程序的过程,希望大家喜欢!

界面部分我们用lae软件开发工具实现,无需写代码,业务逻辑部分使用Lae软件开发平台自带的LuaIDE编辑器,使用100行lua代码完成简单目录浏览器的制作。



 

  lae软件下载地址:

  https://github.com/ouloba/laetool.git

  lae软件下载地址(国内):https://pan.baidu.com/s/1ckMy0Q

  相关视频:

  http://www.tudou.com/listplay/aly7NDWz_sQ/AaqZ81jIt-k.html

  教程:

  lae界面开发工具入门介绍之一<<spanse-mark="1">新建工程篇>

  lae界面开发工具入门之介绍二--<<spanse-mark="1">渲染组件篇>

  lae界面开发工具入门之介绍三--<<spanse-mark="1">布局篇>

  lae界面开发工具入门之介绍四--?<<spanse-mark="1">秘籍篇-拷贝粘贴>

  lae界面开发工具入门之介绍五--<<spanse-mark="1">秘籍篇-杂项>

  lae界面开发工具入门之介绍六--<<spanse-mark="1">秘籍篇-状态篇>

  关于lae工具问题单独介绍!

  --lua代码

  lua编辑器 csdn下载

  github下载地址,csdn没有更新版本功能,这里改为git,可实时获得最新的版本下载地址:

  --目录浏览器下载地址

  https://github.com/ouloba/folder-explorer.git

  --辅助接口

  LXZDoFile("LXZHelper.lua");

  LXZDoFile("serial.lua");

  --每帧调用,root窗口status中IsActive设置为true,即可触发OnUpdate事件。local functionOnUpdate(window, msg, sender)

  UpdateWindow();end

  --更新目录子目录或者文件列表localfunction UpdateDirectry(dir)

  local root = HelperGetRoot();

  --set current dir.

  lfs.chdir(dir);

  HelperSetWindowText(root:GetLXZWindow("directry"),dir);

  --

  local items =root:GetLXZWindow("folders:area:items"); --目录文件容器

  local item =root:GetLXZWindow("folders:item"); --目录文件项

  local path = lfs.currentdir();

  --清除容器中内容

  items:ClearChilds();

  --遍历该目录下的子目录文件

  local cnt = 0;

  for file in lfs.dir(lfs.currentdir())do

  local wnd = item:Clone(); --克隆一个目录文件项"folders:item"

  wnd:Show(); --显示

  HelperSetWindowText(wnd:GetChild("text"),file); --设置目录或者文件名

  items:AddChild(wnd); --加入items容器中

  local f = path.."\\"..file;

  local attr = lfs.attributes(f);

  if attr and attr.mode=="directory"then

  wnd:GetChild("icon"):SetState(0);--通过0状态设置目录图标

  else

  wnd:GetChild("icon"):SetState(1);--通过1状态设置文件名图标

  end

  cnt=cnt+1;

  end

  --如果无法访问该目录,则添加"."与".."

  if cnt==0 then

  local wnd = item:Clone();

  wnd:Show();

  HelperSetWindowText(wnd:GetChild("text"),".");

  items:AddChild(wnd);

  local wnd = item:Clone();

  wnd:Show();

  HelperSetWindowText(wnd:GetChild("text"),"..");

  items:AddChild(wnd);

  end

  --垂直滚动条适应内容大小。

  local msg =CLXZMessage:new_local();

  local wnd =root:GetLXZWindow("folders:vertical slider");

  wnd:ProcMessage("OnReset", msg,wnd);

  end

  --点击目录或者文件项localfunction OnClickItem(window, msg, sender)

  localfile=HelperGetWindowText(sender:GetChild("text"));

  local path = lfs.currentdir();

  local f = path.."\\"..file;

  local attr,err = lfs.attributes (f)

  if attr== nil then

  LXZMessageBox("error:"..err);

  return;

  end

  --LXZMessageBox("type(attr)"..type(attr).."f:"..f)

  assert (type(attr) == "table");

  if attr.mode == "directory" then--如果是目录

  UpdateDirectry(f);

  end

  end

  --ui加载时触发该事件localfunction OnLoad(window, msg, sender)

  local root = HelperGetRoot();

  --set default.

  local default_dir = "c:\\";

  HelperSetWindowText(root:GetLXZWindow("directry"),default_dir);

  --set folder list.

  UpdateDirectry(default_dir);end

  --事件与接口绑定localevent_callback = {}

  event_callback ["OnUpdate"] =OnUpdate;

  event_callback ["OnLoad"] = OnLoad;

  event_callback ["OnClickItem"] =OnClickItem;

  --事件分发器functionmain_dispacher(window, cmd, msg, sender)---LXZAPI_OutputDebugStr("cmd 1:"..cmd);

  if(event_callback[cmd] ~= nil) then--LXZAPI_OutputDebugStr("cmd 2:"..cmd);

  event_callback[cmd](window, msg,sender);

  endend


  增加权限、创建时间、修改时间等

  --增加lua代码

  if attr then

  HelperSetWindowText(wnd:GetChild("accesstime"), os.date("%c", attr.access) );

  HelperSetWindowText(wnd:GetChild("modifytime"), os.date("%c", attr.modification));

  HelperSetWindowText(wnd:GetChild("changetime"), os.date("%c", attr.change));

  HelperSetWindowText(wnd:GetChild("permissions"),attr.permissions);

  end

  --界面修改如下


  --增加浏览图片的功能


  --修改lua代码,增加事件

  --获取扩展名 functiongetextension(filename)

  return filename:match(".+%.(%w+)$")end

  --鼠标进入local functionOnMouseEnterItem(window, msg, sender)

  localfile=HelperGetWindowText(sender:GetChild("text"));

  local path = lfs.currentdir();

  local f = path.."\\"..file;

  local attr,err = lfs.attributes (f)

  if attr== nil then

  LXZMessageBox("error:"..err);

  return;

  end

  local root = HelperGetRoot();

  assert (type(attr) == "table");

  local ext = getextension(file);

  LXZAPI_OutputDebugStr("OnMouseEnterItem:"..f.."mode:"..attr.mode);

  if attr.mode == "file" and (ext=="png" orext=="PNG") then --如果是图片文件

  LXZAPI_OutputDebugStr("OnMouseEnterItem:"..f.." ext:"..ext.."mode:"..attr.mode);

  local wnd = root:GetLXZWindow ("folders:showpicture");

  HelperSetWindowPictureFile(wnd,f);

  wnd:Show();

  HelperCoroutine(function(thread)

  AddWndUpdateFunc(wnd, EffectFaceOut,{from=255, End=200,step=3, old=255, hide=true}, thread);

  coroutine.yield();

  local texture =ILXZTexture:GetTexture(f);

  if texture then

  texture:RemoveTexture();

  end

  end);

  endend

  表现如下



 

  • 大小: 26.2 KB
  • 大小: 4.6 KB
  • 大小: 8.5 KB
  • 大小: 184.5 KB
  • 大小: 9.4 KB
  • 大小: 219.5 KB
分享到:
评论

相关推荐

    一支烟的功夫简单浏览器制作

    【浏览器的制作】这篇文章主要介绍了如何使用VC++6.0快速构建一个简易的浏览器,整个过程只需要很短的时间。浏览器通常是由复杂的代码和组件组成的,但通过利用面向对象的开发工具,尤其是MFC(Microsoft Foundation...

    简单的浏览器制作程序代码

    这是一个简单实用的浏览器程序实现例子!上传错啦!打不开不要下啊!对不起啦

    Android 简易web浏览器制作及代码解析.pdf

    Android 简易 web 浏览器制作及代码解析 Android 简易 web 浏览器的制作可以分为三个主要界面:首页界面、主浏览界面和浏览历史界面。每个界面都有其对应的布局文件,分别是 frontpage.xml、activity_main.xml 和 ...

    VB制作的浏览器,功能强大代码简单

    标题中的“VB制作的浏览器,功能强大代码简单”意味着我们讨论的是使用Visual Basic(VB)编程语言开发的一个自定义浏览器项目。VB是一种流行的、基于事件驱动的编程环境,由Microsoft开发,适合创建Windows应用程序...

    Python制作简易浏览器.rar

    Python制作简易浏览器是一个有趣的项目,它展示了Python在创建桌面应用程序方面的潜力。这个压缩包中包含了一个用Python编写的简单浏览器程序,可能是一个基于GUI(图形用户界面)的Web浏览工具。下面将详细介绍这个...

    C#利用winform编写一个简易的文件浏览器程序代码

    **代码实现** 1. **初始化树形视图**: ```csharp private void InitializeTreeView() { string rootPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); TreeNode root = new ...

    webBrowser浏览器的制作源代码 简单的

    而对有经验的开发者来说,这可能是一个快速实现简单内嵌浏览器的起点,可以在此基础上添加更多高级特性,如书签、历史记录、前进/后退按钮等功能。 总之,这个"webBrowser浏览器的制作源代码"是一个学习和研究...

    vc++ mfc 简易ftp浏览器实现源代码

    本篇将深入探讨如何利用VC++ MFC实现一个简易的FTP(File Transfer Protocol)浏览器,以及该源代码中涉及的关键技术点。 FTP是一种标准的网络协议,用于在计算机之间进行文件传输。在VC++ MFC中实现FTP浏览器,...

    制作图片浏览器

    综上所述,制作图片浏览器不仅仅是编写代码显示图片那么简单,还需要综合运用图像处理、用户界面设计、文件系统操作、多线程编程、性能优化等多方面的知识。只有充分理解和掌握这些技术,才能构建出高效、易用且功能...

    VB 制作的简单浏览器

    总结,VB制作的简单浏览器主要依赖WebBrowser控件,结合VB的事件驱动编程模型,可以实现基本的网页浏览功能。通过深入学习和理解这些知识点,开发者可以进一步扩展功能,如下载管理、书签同步,甚至实现插件支持,...

    基于MFC简易浏览器的制作报告

    **基于MFC简易浏览器制作详解** MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,用于简化Windows应用程序的开发。它封装了Windows API,使得开发者可以通过面向对象的方式来编写Windows程序。本报告...

    QT做一个简易浏览器

    QT是一个强大的跨平台应用程序开发框架,它允许开发者使用...以上就是制作一个简易浏览器所需的核心QT知识点。通过这个项目,你可以深入理解QT的网络编程、用户界面设计以及事件处理等方面,进一步提升你的QT开发技能。

    c#编程 浏览器的制作与实现(设计+代码)

    这个VS2008项目很可能是教你如何从零开始构建一个简单的浏览器,让我们深入探讨一下其中涉及的关键知识点。 1. **基础架构**:浏览器的核心是其引擎,负责解析HTML、CSS和JavaScript。在C#中,我们可以使用.NET框架...

    java 制作的一个简单的浏览器

    【标题】:基于Java制作简单浏览器的实现原理与关键技术 【描述】:本文将深入探讨如何使用Java编程语言开发一个基础的Web浏览器。这个浏览器能够接收用户在地址栏输入的正确URL,并加载显示对应的网页内容。我们将...

    vc制作文件浏览器visual c++源代码

    在本项目中,"vc制作文件浏览器visual c++源代码" 是一个使用Microsoft Visual C++开发的简单应用程序,它提供了一个界面,用户可以浏览和操作本地文件系统。这个程序的核心功能可能包括列出目录内容,打开、复制、...

    简易浏览器的制作MyWeb

    简易浏览器实现(myweb) (二)实验准备: 1、安装Microsoft Visual C++ 6.0在电脑上; 2、掌握MFC编程的基础知识; (三)实验目的: 1、使用ChtmlView类可以实现一个应用程序,使之具有Web浏览器的功能,包括...

    Python制作简易浏览器.zip

    而“Python制作简易浏览器”可能是一个包含源代码的Python文件,展示了一个简单的浏览器实现示例。 学习如何用Python制作简易浏览器有助于理解网络请求的工作原理、GUI编程以及如何将两者结合在一起。通过这个项目...

    去浏览器滚动条代码

    通过本文的学习,我们了解到如何使用简单的CSS代码来隐藏浏览器的滚动条,同时也讨论了不同浏览器之间的兼容性问题。虽然这种方法可以满足大部分情况下的需求,但在实际应用时还需要考虑到用户体验以及浏览器兼容性...

    CHtmlView类制作浏览器

    3. 使用CHtmlView制作浏览器的步骤: - 创建一个新的MFC应用程序项目。 - 在资源视图中添加一个新的对话框,并在对话框上放置一个CHtmlView控件。 - 将对话框类派生自CDialogEx,并在头文件中包含CHtmlView的...

    一个简单的vb图像浏览器

    【VB图像浏览器】是一种基于Visual Basic(VB)编程语言开发的简单应用程序,它允许用户浏览和查看图片文件。VB作为Microsoft公司推出的事件驱动型编程工具,以其易学易用的特性,非常适合初学者进行图形用户界面...

Global site tag (gtag.js) - Google Analytics