图标转换二进制写入数据库
本帖最后由 chzj589 于 2018-5-29 08:54 编辑图标转换二进制写入数据库,并读取显示于ListView列表
感谢K版的帮助
无聊,写着玩。
其实如果数据多的话,要显示图标会让读取的速度很慢。
回复 1# chzj589
你一定是 每次顯示都重新讀取
這樣當然會慢
你應該 是單純的 存ICO 檔案 然後在一開始就讀取 做成 IMAGELIST 然後 LISTVIEW 只是取用IMAGELIST 回复chzj589
你一定是 每次顯示都重新讀取
這樣當然會慢
你應該 是單純的 存ICO 檔案 然後在一 ...
kk_lee69 发表于 2018-5-28 01:13 http://www.autoit3.cn/images/common/back.gif
做成 IMAGELIST?不懂,能解释一下? 回复 3# chzj589
_GUIImageList_Create 回复chzj589
_GUIImageList_Create
kk_lee69 发表于 2018-5-28 09:24 http://www.autoit3.cn/images/common/back.gif
我就是用:
$hImage = _GUIImageList_Create(20, 20)
读取显示要用:
_GUICtrlListView_AddItem($GListView1, $RS.Fields(0).value, 0)
_GUICtrlListView_AddSubItem($GListView1, $i, $RS.Fields(1).value, 1, 0)
_GUICtrlListView_AddSubItem($GListView1, $i, $RS.Fields(2).value, 2,1)
_GUICtrlListView_AddSubItem($GListView1, $i, $RS.Fields(3).value, 3, 2)
不能用数组读取显示,所以显示慢。有别的方法? 回复 5# chzj589
可以看看你的程式嗎??給我看一下你怎麼寫的 回复 6# kk_lee69
#include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#include <GuiListView.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
Local $yel = "90" ;总和
Local $ye2 = "80" ;总和
Local $ye3 = "70"
Local $i = 0
Local $idListview, $hImage
Example()
Func Example()
; Local $sWow64 = ""
;If @AutoItX64 Then $sWow64 = "\Wow6432Node"
; Local $sAutoItDir = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE" & $sWow64 & "\AutoIt v3\AutoIt", "InstallDir")
$hGUI = GUICreate("ImageList 复制图像", 410, 300)
$idListview = GUICtrlCreateListView("", 2, 2, 404, 268, $LVS_REPORT, $WS_EX_CLIENTEDGE);;, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))
_GUICtrlListView_SetExtendedListViewStyle($idListview, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_INFOTIP, $LVS_EX_SUBITEMIMAGES))
GUISetState(@SW_SHOW)
; 创建图像图像列表和图像
$hImage = _GUIImageList_Create(20, 20)
ConsoleWrite(_GUIImageList_AddIcon($hImage, @ScriptDir & "\AAA.ICO") & @CRLF)
ConsoleWrite(_GUIImageList_AddIcon($hImage, @ScriptDir & "\223.ico") & @CRLF)
ConsoleWrite(_GUIImageList_AddIcon($hImage, @ScriptDir & "\C01.ico") & @CRLF)
ConsoleWrite(_GUIImageList_AddIcon($hImage, @ScriptDir & "\linea.ico") & @CRLF)
_GUIImageList_Copy($hImage, 0, 1)
_GUICtrlListView_SetImageList($idListview, $hImage, 1)
; 添加列
_GUICtrlListView_AddColumn($idListview, "列 1", 100, 1, 1, True)
_GUICtrlListView_AddColumn($idListview, "列 2", 100, 0, 0, True)
_GUICtrlListView_AddColumn($idListview, "列 3", 100, 2, 2, True)
_GUICtrlListView_AddColumn($idListview, "列 4", 100, 0, 3)
_du()
; 循环到用户退出.
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>Example
Func _du()
$hImage = _GUIImageList_Create(20, 20)
ConsoleWrite(_GUIImageList_AddIcon($hImage, @ScriptDir & "\AAA.ICO") & @CRLF)
ConsoleWrite(_GUIImageList_AddIcon($hImage, @ScriptDir & "\223.ico") & @CRLF)
ConsoleWrite(_GUIImageList_AddIcon($hImage, @ScriptDir & "\C01.ico") & @CRLF)
ConsoleWrite(_GUIImageList_AddIcon($hImage, @ScriptDir & "\linea.ico") & @CRLF)
;_GUIImageList_Copy($hImage, 0, 1)
_GUICtrlListView_SetImageList($idListview, $hImage, 1)
For $ii = 0 To 3
_GUICtrlListView_AddItem($idListview, $i, 0)
_GUICtrlListView_AddSubItem($idListview, $i, $yel, 1, 1)
_GUICtrlListView_AddSubItem($idListview, $i, $ye2, 2, 2)
_GUICtrlListView_AddSubItem($idListview, $i, $ye3, 3, 3)
$i += 1
Next
EndFunc ;==>_du
好像图标都有底色,老哥需要改改这类细节问题,呵呵~ 好像图标都有底色,老哥需要改改这类细节问题,呵呵~
afan 发表于 2018-5-28 12:13 http://www.autoit3.cn/images/common/back.gif
谢谢提醒!
ListView列表加上背景色就有这个问题,正常图标的底色是白色 回复 9# chzj589
我沒看到 你從資料庫裏面把資料取出來另外 $hImage = _GUIImageList_Create(20, 20)
為什麼要做兩次 我也搞不懂 本帖最后由 chzj589 于 2018-5-28 13:34 编辑
回复chzj589
我沒看到 你從資料庫裏面把資料取出來另外 $hImage = _GUIImageList_Create(20 ...
kk_lee69 发表于 2018-5-28 13:20 http://www.autoit3.cn/images/common/back.gif
$hImage = _GUIImageList_Create(20, 20)
做兩次:
1:图标显示Listview列表项目
2:图标显示Listview列表子项目
读取:
Local $i = 0
While (Not $RS.eof And Not $RS.bof);
;For $ii = 0 To 3
_GUICtrlListView_AddItem($idListview, $RS.Fields(0).value, 0)
_GUICtrlListView_AddSubItem($idListview, $i, $RS.Fields(1).value, 1, 1)
_GUICtrlListView_AddSubItem($idListview, $i, $RS.Fields(2).value, 2, 2)
_GUICtrlListView_AddSubItem($idListview, $i, $RS.Fields(3).value, 3, 3)
$i += 1
;Next
$RS.movenext
WEnd
能用另外的方式读取吗? 這樣放本來就會慢
你看我給你的範例........先讀取圖檔在設置清單即可.......
页:
[1]