uniGUI提供了一个文件上传控件TUniFileUpload,进行数据的导入就变得比较容易。首先将TUniFileUpload控件放置在窗体上,按下导入按钮后,执行TUniFileUpload的文件上传功能:

procedure TfmeWebDBListEditBase.btnImportClick(Sender: TObject);
begin
inherited; { 执行文件上传 }
fuMain.Execute; { 启动Mask,显示文件上传过程 }
fuMain.ScreenMask.Target := Self;
fuMain.ScreenMask.Enabled := True; end;

当TUniFileUpload的文件上传完成后,触发OnCompleted事件,在其中可以通过数据流对文件进行操作,如下:

procedure TfmeWebDBListEditBase.fileuploadMainCompleted(Sender: TObject;  AStream: TFileStream);
begin
…
end;

TUniFileUploadz主要的属性包括:

Title                         显示文件上传的标题

Filter                        文件类型过滤,目前的版本暂不支持,作者说在后续版本中加入

Messages               文件上传出了过程中的提示信息,不再详述

MaxAllowedSize   限制文件大小,单位是字节(Byte),超过后会报错,可惜是英文的,目前不能改,如下图

我利用了TMS FlexCel控件实现Excel文件的上传导入,效果非常不错,只是手上的版本仅支持Excel2003及以下的xls文件,不支持Excel2007及以上的xlsx文件。

uniGUI试用笔记(六)的更多相关文章

  1. uniGUI试用笔记(十三)调用WebService

    今天尝试用uniGUI做Web服务器,调用应用服务器的WebService,遇到些问题记录下来备忘. 1.对WebService的调用同一般App程序,只是注意如果WebService的执行时间较长, ...

  2. uniGUI试用笔记(十一)

    最近研究了一下UniGUI的TuniDBGrid,记录一下免得忘记了. TuniDBGrid的重要属性包括: 1.列—TUniDBGridColumns和TUniDBGridColumn 每个列对象( ...

  3. uniGUI试用笔记(十)

    今天用LoadRunner对uniGUI的Standalone模式的程序进行了一次压力测试,程序采用三层模式,将应用服务器与Web服务器分离,由于条件限制,数据库.应用服务和Web服务都部署在同一条云 ...

  4. uniGUI试用笔记(九)

    uniGUI执行程序部署有3种形式 1.ISAPI模式 部署在IIS或Apache,程序编译为Dll形式,没有试,准备后续专门测试一下. 2.标准执行文件模式 将软件编译成一个独立的Exe文件,包括了 ...

  5. uniGUI试用笔记(八)

    在业务系统中常常使用回车键(Enter)替代Tab键完成焦点跳转,在uniGUI下,可以不用代码,直接使用TUniForm的NavigateKeys进行设置: 其中Next和Prior决定了焦点向下一 ...

  6. uniGUI试用笔记(七)

    uniGUI的文件下载由于TUniSession的存在而变得非常简单,最典型的一个例子就是将列表中的所有数据导出到Excel中.服务器上采用TMS FlexCel控件,先将数据集中的记录导入到Exce ...

  7. uniGUI试用笔记(五)

    uniGUI的主窗体可以采用多页面方式进行管理,参考网上的资料,都是用TUniFrame + TUniPageControl 来实现,尝试了一下,效果还不错,如下图: 用TUniFrame 能够使用继 ...

  8. uniGUI试用笔记(四)

    uniGUI下有专用的登录窗体类:TUniLoginForm,该类属于AppForm,构建代码为: function frmWebLogin: TfrmWebLogin; begin Result : ...

  9. uniGUI试用笔记(三)

    uniGUI下的MessageDlg使用发生了变化,最大的特点是: 1.成为了uniGUIForm的成员函数: 2.变成过程(procedure)了,也就是没有返回值了,使得程序不再具有线程阻塞性. ...

随机推荐

  1. css抖动动画

    button{ animation: beat 6s ease 0s infinite normal; } @keyframes beat { 0% { transform: translateY(0 ...

  2. laravel 之jwt认证使用详解

    转载 http://www.heibaiketang.com/blog/show/3.html https://packagist.org/packages/tymon/jwt-auth#1.0.0- ...

  3. 提示“此Flash Player与您的地区不相容,请重新安装Flash”的解决办法

    问题原因: 因为Flash相对于HTML5,有着运算效率低.资源占用大.安全性不高等缺点,随着HTML5越来越普及,Adobe已宣布2020年正式停止支持Flash这项技术. 但Adobe公司为了利益 ...

  4. python中使用rabbitmq消息中间件

    上周一直在研究zeromq,并且也实现了了zeromq在python和ruby之间的通信,但是如果是一个大型的企业级应用,对消息中间件的要求比较高,比如消息的持久化机制以及系统崩溃恢复等等需求,这个时 ...

  5. UIView的背景颜色

    一个UIColor代表一种颜色,通过UIColor的类方法,可以获得很多常用的颜色 + (UIColor *)blackColor;      // 0.0 white 黑色 + (UIColor * ...

  6. [openjudge-搜索]Knight Moves(翻译与题解)

    题目描述(翻译) somurolov先生,精彩的象棋玩家.声称任何人他都可以从一个位置到另一个骑士这么快.你能打败他吗? 问题 你的任务是写一个程序来计算一个骑士达到从另一点所需要的最少步数,这样你就 ...

  7. 爬虫万金油,一鹅在手,抓遍全球:goose 简介!

    GOOSE 现已弃用 经过多年的服务,GOOSE接口和支持它的MySQL数据现已弃用 . 在我们进行替换的同时,我们建议寻找一般查询功能的用户在http://rdf.geneontology.org上 ...

  8. javascript常用积累

    一.JS动画与动作不一致解决: if(!$( "#handle").is(":animated")){ //判断元素是否处于动画状态 } 二.停止事件冒泡 ev ...

  9. Linux基础命令---init进程

    init init是所有进程的父进程,它由内核执行,可以启动其他所有的进程.init指令在启动时会参考/etc/inittab文件的配置,完成其他进程的启动.init通常不会由用户进程执行,并且期望进 ...

  10. bzoj4358 premu

    题目链接 莫队算法 没有用线段树,而是看了showson的并查集%%% #include<algorithm> #include<iostream> #include<c ...