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

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

阅读更多

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

 

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




 

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界面开发工具入门介绍之一<新建工程篇>

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

lae界面开发工具入门之介绍三--<布局篇>

lae界面开发工具入门之介绍四-- <秘籍篇-拷贝粘贴>

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

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

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

--lua代码

lua编辑器 csdn下载

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

--目录浏览器下载地址

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

--辅助接口

LXZDoFile("LXZHelper.lua");

LXZDoFile("serial.lua");

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

UpdateWindow();end

--更新目录子目录或者文件列表local function 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

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

local file=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加载时触发该事件local function 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

--事件与接口绑定local event_callback = {}

event_callback ["OnUpdate"] = OnUpdate;

event_callback ["OnLoad"] = OnLoad;

event_callback ["OnClickItem"] = OnClickItem;

--事件分发器function main_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("access time"), os.date("%c", attr.access) );

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

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

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

end

--界面修改如下


--增加浏览图片的功能


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

--获取扩展名 function getextension(filename)

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

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

local file=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" or ext=="PNG") then --如果是图片文件

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

local wnd = root:GetLXZWindow ("folders:show picture");

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

表现如下



 

<!--EndFragment-->
  • 大小: 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 和 ...

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

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

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

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

    Python制作简易浏览器.rar

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

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

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

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

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

    制作图片浏览器

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

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

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

    VB 制作的简单浏览器

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

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

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

    QT做一个简易浏览器

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

    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