找回密码
 加入
搜索
查看: 2698|回复: 8

[GUI管理] 我想在GuiCtrlCreateEdie创建的框内创建进度条或完成百分比,能实现吗?

  [复制链接]
发表于 2010-3-9 16:08:11 | 显示全部楼层 |阅读模式
我想在GuiCtrlCreateEdie创建的框内创建进度条或完成百分比,能实现吗?
发表于 2010-3-9 16:26:10 | 显示全部楼层
进度条会影响编辑框的功能,不合适。百分比是指文字吗?那当然可以
 楼主| 发表于 2010-3-9 17:30:12 | 显示全部楼层
本帖最后由 ziyaxian 于 2010-3-9 17:31 编辑


我想在第几个工作表...后面加上已完成的百分比,不知道怎么写入这个老是变化的数字,主要是这个数是根据下面的一个循环得出的,怎么能写到上面来呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-3-9 17:38:46 | 显示全部楼层
贴代码吧,自己写太累
发表于 2010-3-9 17:42:25 | 显示全部楼层
EDIT内容是整体写入的哈,任何变动都意味着所有内容重置,刷的太快,怕有闪动的感觉
 楼主| 发表于 2010-3-9 22:40:26 | 显示全部楼层
本帖最后由 ziyaxian 于 2010-3-10 08:42 编辑

代码写的有点简单,能不能在 "正在处理第"&$i&"个工作表..."后面加上下面那个循环完成的百分比呢?或加上现在完成了多行的计算也可以
#include <Excel.au3>
#include <Array.au3>
#include <Date.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
#include <ListboxConstants.au3>
#include <EditConstants.au3>
#Include <File.au3>
#include <GuiEdit.au3>
#include <ScrollBarConstants.au3>


$Form1_1 = GUICreate("", 700, 400, 195, 125)
 GUICtrlSetFont($Form1_1, 20)

$Button2 = GUICtrlCreateButton("开始", 450, 350, 60, 30, 0)
$Button3 = GUICtrlCreateButton("退出", 550, 350, 60, 30, 0)
$Group1 = GUICtrlCreateGroup("", 20, 80, 340, 308)
$mylist = GUICtrlCreateEdit("", 400, 160, 280, 167,BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN,$WS_HSCROLL,$WS_VSCROLL))
$Label4 = GUICtrlCreateLabel("详细过程:", 400, 140, 150, 17)

GUISetState(@SW_SHOW)

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                    Exit 
                Case $Button2
            _Do();生成新的工作表并进行计算
        Case $Button3
                    Exit                                         
        EndSwitch
WEnd


Func _Do()
   
    $oExcel1 = _ExcelBookOpen(@ScriptDir&"\aaa.xls",0)
    $aArray = _ExcelSheetList($oExcel1)
        _GUICtrlEdit_Scroll($mylist,$SB_LINEDOWN)
           GUICtrlSetData($mylist, "此表包含"&$aArray[0]&"个工作表"&@CRLF,1)
    For $i = $aArray[0] To 1 Step -1
                _ExcelSheetActivate($oExcel1, $i)
                $c=_ExcelSheetNameGet($oExcel1)
                
                               _GUICtrlEdit_Scroll($mylist,$SB_LINEDOWN)
                               GUICtrlSetData($mylist, "正在处理第"&$i&"个工作表...",1)
                      
                      $hs = $oExcel1.ActiveSheet.usedrange.rows.count 
              
                For $a = 2 To $hs
                $1 = _ExcelReadCell($oExcel1, $a, 1)
                $2 = _ExcelReadCell($oExcel1, $a, 2)
                        $3 = _ExcelReadCell($oExcel1, $a, 3)
                $4 = _ExcelReadCell($oExcel1, $a, 4)                        
                $5 = _ExcelReadCell($oExcel1, $a, 5)
                $6 = _ExcelReadCell($oExcel1, $a, 6)
                        
                $7 = $1 + $2 + $3 - $4 + $5 - $6 
                           _ExcelWriteCell($oExcel1,$7,$a,7)
                   
                     Next
        GUICtrlSetData($mylist, "完成"&@CRLF,1)             
    Next
        _ExcelBookSave($oExcel1,0)  
       _ExcelBookClose($oExcel1,0,0)
       MsgBox(0,"提示","已完成所选择工作表的计算")
EndFunc
      
发表于 2010-3-9 22:51:33 | 显示全部楼层
我这没aaa.xls,测试不了
 楼主| 发表于 2010-3-10 08:47:15 | 显示全部楼层

afan aaa.xls表我上传了,帮忙测试一下啊,原表比这个复杂多了,我只是简单弄了一个,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-3-10 12:27:47 | 显示全部楼层
我这打不开,错误代码:无法创建对象。
我没装EXCEL之类的办公软件……
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-21 05:48 , Processed in 0.078636 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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