DuyAnh Posted August 12, 2016 Share Posted August 12, 2016 (edited) How to create table displays the number on the gui Some may choose to 1 as shown in Figure Sorry for my English is not good Edited August 12, 2016 by DuyAnh Link to comment Share on other sites More sharing options...
water Posted August 12, 2016 Share Posted August 12, 2016 The attachment can't be displayed ("We could not locate the item you are trying to view. "). Is it just me? My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
DuyAnh Posted August 12, 2016 Author Share Posted August 12, 2016 (edited) 5 minutes ago, water said: The attachment can't be displayed ("We could not locate the item you are trying to view. "). Is it just me? Here are pictures can choose in each cell on the table Please help me Edited August 12, 2016 by DuyAnh Link to comment Share on other sites More sharing options...
water Posted August 12, 2016 Share Posted August 12, 2016 Please have a look at the Table UDF: My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
DuyAnh Posted August 12, 2016 Author Share Posted August 12, 2016 (edited) 3 minutes ago, water said: Please have a look at the Table UDF: I want it to be able to select a number on the board This udf only allows display, below is my code, but for 2 listview when selected, only one current listview expandcollapse popup;~ #NoTrayIcon #RequireAdmin #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiListView.au3> #include <File.au3> #include <ComboConstants.au3> #include <GuiConstants.au3> #include <GuiEdit.au3> #include <GuiListView.au3> #include <WindowsConstants.au3> #include <EditConstants.au3> #include <WinAPI.au3> #include <Misc.au3> #include <GuiStatusBar.au3> #include <ComboConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <GuiTab.au3> #include <GuiListView.au3> #include <WindowsConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiListView.au3> #include <GuiListView.au3> #include <GuiListBox.au3> #include <ButtonConstants.au3> #include <GuiConstantsEx.au3> #include <AVIConstants.au3> #include <TreeViewConstants.au3> #include <GuiToolbar.au3> #include <ToolbarConstants.au3> #include <AVIConstants.au3> #include <TreeViewConstants.au3> #include <ListViewConstants.au3> #include <WinAPI.au3> #include <Windowsconstants.au3> #include <Crypt.au3> #include <FTPEx.au3> #include <IE.au3> Global $aHit[2] = [-1, -1] $Form1 = GUICreate("hihii", 910, 465, -1, -1) $XBoot_Timer_H = GUICtrlCreateListView("x|y|z|a|y", 100, 200, 200, 95, $LVS_NOCOLUMNHEADER, 0) $XBoot_Timer_hH = GUICtrlGetHandle($XBoot_Timer_H) _GUICtrlListView_SetExtendedListViewStyle($XBoot_Timer_H, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT)) _GUICtrlListView_SetColumnWidth($XBoot_Timer_hH, 0, 40) _GUICtrlListView_SetColumnWidth($XBoot_Timer_hH, 1, 40) _GUICtrlListView_SetColumnWidth($XBoot_Timer_hH, 2, 40) _GUICtrlListView_SetColumnWidth($XBoot_Timer_hH, 3, 40) _GUICtrlListView_SetColumnWidth($XBoot_Timer_hH, 4, 40) _GUICtrlListView_JustifyColumn($XBoot_Timer_hH, 0, 2) _GUICtrlListView_JustifyColumn($XBoot_Timer_hH, 1, 2) _GUICtrlListView_JustifyColumn($XBoot_Timer_hH, 2, 2) _GUICtrlListView_JustifyColumn($XBoot_Timer_hH, 3, 2) _GUICtrlListView_JustifyColumn($XBoot_Timer_hH, 4, 2) _GUICtrlListView_DeleteAllItems($XBoot_Timer_H) GUICtrlCreateListViewItem("01|02|03|04|05", $XBoot_Timer_H) GUICtrlCreateListViewItem("06|07|08|09|10", $XBoot_Timer_H) For $i = 11 To 20 GUICtrlCreateListViewItem($i & "|" & $i + 1 & "|" & $i + 2 & "|" & $i + 3 & "|" & $i + 4, $XBoot_Timer_H) $i = $i + 5 Next GUICtrlCreateListViewItem("21|22|23|24", $XBoot_Timer_H) $XBoot_Timer_P = GUICtrlCreateListView("x|y|z|a|e|l", 400, 200, 240, 190, $LVS_NOCOLUMNHEADER, 0) $XBoot_Timer_hP = GUICtrlGetHandle($XBoot_Timer_P) _GUICtrlListView_SetExtendedListViewStyle($XBoot_Timer_P, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT)) _GUICtrlListView_SetColumnWidth($XBoot_Timer_hP, 0, 40) _GUICtrlListView_SetColumnWidth($XBoot_Timer_hP, 1, 40) _GUICtrlListView_SetColumnWidth($XBoot_Timer_hP, 2, 40) _GUICtrlListView_SetColumnWidth($XBoot_Timer_hP, 3, 40) _GUICtrlListView_SetColumnWidth($XBoot_Timer_hP, 4, 40) _GUICtrlListView_SetColumnWidth($XBoot_Timer_hP, 5, 40) _GUICtrlListView_SetColumnWidth($XBoot_Timer_hP, 6, 40) _GUICtrlListView_JustifyColumn($XBoot_Timer_hP, 0, 2) _GUICtrlListView_JustifyColumn($XBoot_Timer_hP, 1, 2) _GUICtrlListView_JustifyColumn($XBoot_Timer_hP, 2, 2) _GUICtrlListView_JustifyColumn($XBoot_Timer_hP, 3, 2) _GUICtrlListView_JustifyColumn($XBoot_Timer_hP, 4, 2) _GUICtrlListView_JustifyColumn($XBoot_Timer_hP, 5, 2) _GUICtrlListView_JustifyColumn($XBoot_Timer_hP, 6, 2) _GUICtrlListView_DeleteAllItems($XBoot_Timer_P) GUICtrlCreateListViewItem("00|01|02|03|04|05", $XBoot_Timer_P) GUICtrlCreateListViewItem("06|07|08|09|10|11", $XBoot_Timer_P) For $i = 12 To 57 GUICtrlCreateListViewItem($i & "|" & $i + 1 & "|" & $i + 2 & "|" & $i + 3 & "|" & $i + 4 & "|" & $i + 5, $XBoot_Timer_P) $i = $i + 5 Next GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit ;~ Case $iButton ;~ MsgBox(0, "Info", "Cell selected: " & _GUICtrlListView_GetItemText($hListview, $aHit[0], $aHit[1]) & @CR, 0, $hGUI) EndSwitch WEnd Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam Local $tNMHDR, $hWndFrom, $iCode $tNMHDR = DllStructCreate($tagNMHDR, $lParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $XBoot_Timer_hH Switch $iCode Case $LVN_ITEMCHANGED Local $tNMLISTVIEW, $iItem, $aInfo $tNMLISTVIEW = DllStructCreate($tagNMLISTVIEW, $lParam) $iItem = DllStructGetData($tNMLISTVIEW, "Item") _GUICtrlListView_SetItemSelected($XBoot_Timer_hH, $iItem, False) Local $aInfo = GUIGetCursorInfo($Form1) If $aInfo[2] Then $aInfo = _GUICtrlListView_SubItemHitTest($XBoot_Timer_hH, $aInfo[0] - 100, $aInfo[1] - 200) ; Upper left = ( 2, 2 ) If $aInfo[0] > -1 And $aInfo[1] > -1 And $aInfo[0] = $iItem Then If $aHit[0] > -1 Then _GUICtrlListView_RedrawItems($XBoot_Timer_hH, $aHit[0], $aHit[0]) If $aHit[0] <> $aInfo[0] Or $aHit[1] <> $aInfo[1] Then $aHit[0] = $aInfo[0] ; Row $aHit[1] = $aInfo[1] ; Col Else $aHit[0] = -1 ; Row $aHit[1] = -1 ; Col EndIf _GUICtrlListView_RedrawItems($XBoot_Timer_hH, $iItem, $iItem) EndIf EndIf Case $NM_CUSTOMDRAW Local $tNMLVCUSTOMDRAW = DllStructCreate($tagNMLVCUSTOMDRAW, $lParam) Local $dwDrawStage = DllStructGetData($tNMLVCUSTOMDRAW, "dwDrawStage") Switch $dwDrawStage ; Holds a value that specifies the drawing stage Case $CDDS_PREPAINT ; Before the paint cycle begins Return $CDRF_NOTIFYITEMDRAW ; Notify the parent window of any ITEM-related drawing operations Case $CDDS_ITEMPREPAINT ; Before painting an item Return $CDRF_NOTIFYSUBITEMDRAW ; Notify the parent window of any SUBITEM-related drawing operations Case BitOR($CDDS_ITEMPREPAINT, $CDDS_SUBITEM) ; Before painting a subitem Local $dwItemSpec = DllStructGetData($tNMLVCUSTOMDRAW, "dwItemSpec") ; Item index Local $iSubItem = DllStructGetData($tNMLVCUSTOMDRAW, "iSubItem") ; Subitem index Local $uItemState = DllStructGetData($tNMLVCUSTOMDRAW, "uItemState") ; Item state If $dwItemSpec = $aHit[0] Then ; Marked row Switch $iSubItem Case $aHit[1] ; Marked column DllStructSetData($tNMLVCUSTOMDRAW, "ClrText", 0xFFFFFF) ; Forecolor white DllStructSetData($tNMLVCUSTOMDRAW, "clrTextBk", 0xCC6600) ; Backcolor dark blue, BGR Case Else ; Other columns DllStructSetData($tNMLVCUSTOMDRAW, "ClrText", 0x000000) ; Forecolor black DllStructSetData($tNMLVCUSTOMDRAW, "ClrTextBk", 0xFFFFFF) ; Backcolor white EndSwitch Else ; Other rows DllStructSetData($tNMLVCUSTOMDRAW, "ClrText", 0x000000) DllStructSetData($tNMLVCUSTOMDRAW, "ClrTextBk", 0xFFFFFF) EndIf Return $CDRF_NEWFONT ; $CDRF_NEWFONT must be returned after changing font or colors EndSwitch EndSwitch Case $XBoot_Timer_hP Switch $iCode Case $LVN_ITEMCHANGED Local $tNMLISTVIEW, $iItem, $aInfo $tNMLISTVIEW = DllStructCreate($tagNMLISTVIEW, $lParam) $iItem = DllStructGetData($tNMLISTVIEW, "Item") _GUICtrlListView_SetItemSelected($XBoot_Timer_hP, $iItem, False) Local $aInfo = GUIGetCursorInfo($Form1) If $aInfo[2] Then $aInfo = _GUICtrlListView_SubItemHitTest($XBoot_Timer_hP, $aInfo[0] - 400, $aInfo[1] - 200) ; Upper left = ( 2, 2 ) If $aInfo[0] > -1 And $aInfo[1] > -1 And $aInfo[0] = $iItem Then If $aHit[0] > -1 Then _GUICtrlListView_RedrawItems($XBoot_Timer_hP, $aHit[0], $aHit[0]) If $aHit[0] <> $aInfo[0] Or $aHit[1] <> $aInfo[1] Then $aHit[0] = $aInfo[0] ; Row $aHit[1] = $aInfo[1] ; Col Else $aHit[0] = -1 ; Row $aHit[1] = -1 ; Col EndIf _GUICtrlListView_RedrawItems($XBoot_Timer_hP, $iItem, $iItem) EndIf EndIf Case $NM_CUSTOMDRAW Local $tNMLVCUSTOMDRAW = DllStructCreate($tagNMLVCUSTOMDRAW, $lParam) Local $dwDrawStage = DllStructGetData($tNMLVCUSTOMDRAW, "dwDrawStage") Switch $dwDrawStage ; Holds a value that specifies the drawing stage Case $CDDS_PREPAINT ; Before the paint cycle begins Return $CDRF_NOTIFYITEMDRAW ; Notify the parent window of any ITEM-related drawing operations Case $CDDS_ITEMPREPAINT ; Before painting an item Return $CDRF_NOTIFYSUBITEMDRAW ; Notify the parent window of any SUBITEM-related drawing operations Case BitOR($CDDS_ITEMPREPAINT, $CDDS_SUBITEM) ; Before painting a subitem Local $dwItemSpec = DllStructGetData($tNMLVCUSTOMDRAW, "dwItemSpec") ; Item index Local $iSubItem = DllStructGetData($tNMLVCUSTOMDRAW, "iSubItem") ; Subitem index Local $uItemState = DllStructGetData($tNMLVCUSTOMDRAW, "uItemState") ; Item state If $dwItemSpec = $aHit[0] Then ; Marked row Switch $iSubItem Case $aHit[1] ; Marked column DllStructSetData($tNMLVCUSTOMDRAW, "ClrText", 0xFFFFFF) ; Forecolor white DllStructSetData($tNMLVCUSTOMDRAW, "clrTextBk", 0xCC6600) ; Backcolor dark blue, BGR Case Else ; Other columns DllStructSetData($tNMLVCUSTOMDRAW, "ClrText", 0x000000) ; Forecolor black DllStructSetData($tNMLVCUSTOMDRAW, "ClrTextBk", 0xFFFFFF) ; Backcolor white EndSwitch Else ; Other rows DllStructSetData($tNMLVCUSTOMDRAW, "ClrText", 0x000000) DllStructSetData($tNMLVCUSTOMDRAW, "ClrTextBk", 0xFFFFFF) EndIf Return $CDRF_NEWFONT ; $CDRF_NEWFONT must be returned after changing font or colors EndSwitch EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Edited August 12, 2016 by DuyAnh Link to comment Share on other sites More sharing options...
water Posted August 12, 2016 Share Posted August 12, 2016 Maybe the GUIListViewEX UDF is what you are looking for: My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
DuyAnh Posted August 12, 2016 Author Share Posted August 12, 2016 9 minutes ago, water said: Maybe the GUIListViewEX UDF is what you are looking for: please let me demo Link to comment Share on other sites More sharing options...
water Posted August 12, 2016 Share Posted August 12, 2016 Did you read the thread I pointed you to? Quote Here is the UDF, with 6 examples and the guide, in zip format: GUIListViewEx.zip We do not spoon feed users here. You need to show some effort yourself My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
DuyAnh Posted August 12, 2016 Author Share Posted August 12, 2016 5 minutes ago, water said: Did you read the thread I pointed you to? We do not spoon feed users here. You need to show some effort yourself All 6 example are not in line with my idea to do I've tried both 6 example Link to comment Share on other sites More sharing options...
DuyAnh Posted August 12, 2016 Author Share Posted August 12, 2016 5 minutes ago, water said: Did you read the thread I pointed you to? We do not spoon feed users here. You need to show some effort yourself All 6 example are not in line with my idea to do I've tried both 6 example Link to comment Share on other sites More sharing options...
kylomas Posted August 15, 2016 Share Posted August 15, 2016 DuyAnh, A quick example of using an input control to present numbers in tabular format. expandcollapse popup#include <WindowsConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <array.au3> #AutoIt3Wrapper_Add_Constants=n ; create array to hold control ids and randomly generated numbers Local $aCtl[100][2] For $1 = 0 To 99 $aCtl[$1][1] = Random(1, 100, 1) Next Local $cell_h = 20 ; cell height Local $cell_w = 20 ; cell width ; number of rows and columns can contain any number you like but num*col cannot exceed 100 (size of the control array) Local $num_r = 5 ; number of rows Local $num_c = 20 ; number of columns Local $left = 0 ; starting left offset for control position Local $top = 0 ; starting top offset for control position Local $idx = 0 ; starting array index Local $gui010 = GUICreate('Grid Test', $cell_w * $num_c, $cell_h * $num_r) ; create and populate an input control for each entry in $aCtl For $1 = 1 To $num_r For $2 = 1 To $num_c $aCtl[$idx][0] = GUICtrlCreateInput('', $left, $top, $cell_w, $cell_h) GUICtrlSetData($aCtl[$idx][0], $aCtl[$idx][1]) $left += $cell_w $idx += 1 Next $left = 0 $top += $cell_h Next GUISetState() GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND') Local $msg While 1 $msg = GUIGetMsg() Switch $msg Case $gui_event_close Exit EndSwitch WEnd ; dedtects when an edit/input control gains kb focus Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam) Switch BitAND($wParam, 0xFFFF) Case $aCtl[0][0] To $aCtl[UBound($aCtl) - 1][0] Switch BitShift($wParam, 16) Case $EN_setfocus ConsoleWrite('You pressed ' & GUICtrlRead(BitAND($wParam, 0xFFFF)) & @CRLF) EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND Note - proof of concept only. You will have to adapt it to you needs. kylomas Forum Rules Procedure for posting code "I like pigs. Dogs look up to us. Cats look down on us. Pigs treat us as equals." - Sir Winston Churchill Link to comment Share on other sites More sharing options...
DuyAnh Posted August 17, 2016 Author Share Posted August 17, 2016 On 8/16/2016 at 5:27 AM, kylomas said: DuyAnh, A quick example of using an input control to present numbers in tabular format. expandcollapse popup#include <WindowsConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <array.au3> #AutoIt3Wrapper_Add_Constants=n ; create array to hold control ids and randomly generated numbers Local $aCtl[100][2] For $1 = 0 To 99 $aCtl[$1][1] = Random(1, 100, 1) Next Local $cell_h = 20 ; cell height Local $cell_w = 20 ; cell width ; number of rows and columns can contain any number you like but num*col cannot exceed 100 (size of the control array) Local $num_r = 5 ; number of rows Local $num_c = 20 ; number of columns Local $left = 0 ; starting left offset for control position Local $top = 0 ; starting top offset for control position Local $idx = 0 ; starting array index Local $gui010 = GUICreate('Grid Test', $cell_w * $num_c, $cell_h * $num_r) ; create and populate an input control for each entry in $aCtl For $1 = 1 To $num_r For $2 = 1 To $num_c $aCtl[$idx][0] = GUICtrlCreateInput('', $left, $top, $cell_w, $cell_h) GUICtrlSetData($aCtl[$idx][0], $aCtl[$idx][1]) $left += $cell_w $idx += 1 Next $left = 0 $top += $cell_h Next GUISetState() GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND') Local $msg While 1 $msg = GUIGetMsg() Switch $msg Case $gui_event_close Exit EndSwitch WEnd ; dedtects when an edit/input control gains kb focus Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam) Switch BitAND($wParam, 0xFFFF) Case $aCtl[0][0] To $aCtl[UBound($aCtl) - 1][0] Switch BitShift($wParam, 16) Case $EN_setfocus ConsoleWrite('You pressed ' & GUICtrlRead(BitAND($wParam, 0xFFFF)) & @CRLF) EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND Note - proof of concept only. You will have to adapt it to you needs. kylomas thanks you Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now