gobsor Posted August 24, 2010 Share Posted August 24, 2010 Hey there, I'm loading *.mp3 files from a folder into a ListView, each row gets 1 filename, filesize and an incrementing number. To get a better overview (and yeah, I don't want to use gridlines), I thought about coloring every uneven row, that's what I tried at least: Func _fillSourceView($path) _clearListView($hSourceView) $files = _FileListToArray($path, "*.mp3") For $i = 1 To UBound($files)-1 If Mod($i, 2) == 0 Then _GUICtrlListView_SetTextBkColor($hSourceView, $CLR_WHITE) Else _GUICtrlListView_SetTextBkColor($hSourceView, $CLR_MONEYGREEN) EndIf $size = FileGetSize($path&$files[$i]) _GUICtrlListView_AddItem($hSourceView, _properNum($i)) _GUICtrlListView_AddSubItem($hSourceView, $i-1, $files[$i], 1) _GUICtrlListView_AddSubItem($hSourceView, $i-1, _properSize($size), 2) Next _GUICtrlButton_Enable($idReload, True) EndFunc ;==> _fillSourceView($path) So what I'm basically doing is changing the text's background color of uneven rows to "moneygreen", using If Mod($i, 2) == 0 Then _GUICtrlListView_SetTextBkColor($hSourceView, $CLR_WHITE) Else _GUICtrlListView_SetTextBkColor($hSourceView, $CLR_MONEYGREEN) EndIf Somehow it works (sometimes) for a folder with just like 6 *.mp3 files in it, but when I add one with ~65 *.mp3 files it sets either all rows green or all rows white. Is there some function that can directly change the color of a ListView's row? ie: _GUICtrlListView_SetRowBkColor($hWnd, $iIndex, $iColor) to enforce $iIndex row to have $iColor as background color? greetings Link to comment Share on other sites More sharing options...
water Posted August 24, 2010 Share Posted August 24, 2010 I fill the ListView in a loop and change the color on the fly: For $iRec = 1 to 100 GUICtrlCreateListViewItem(value1[$irec] & "|" & value2[$irec], $hGUIUserList) If Mod($iRec, 2) = 0 Then GUICtrlSetBkColor(-1, 0xD0DEC7) Next 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...
gobsor Posted August 24, 2010 Author Share Posted August 24, 2010 Thanks, exactly what I was looking for Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted August 25, 2010 Moderators Share Posted August 25, 2010 gobsor,If you use the built-in ListView, you can also use the built-in alternate line colour style - look for the <<<<<<<<<< lines: #include <GUIConstantsEx.au3> #include <GuiListView.au3> $hGUI = GUICreate("Test", 500, 500) $hList = GUICtrlCreateListView("Col 1|Col 2|Col 3", 10, 10, 480, 480) GUICtrlSetBkColor(-1, 0xFF0000) ; Set up alt line colouring GUICtrlSetBkColor(-1, $GUI_BKCOLOR_LV_ALTERNATE) ; <<<<<<<<<<<<<<<<<<<<<<<< For $i = 0 To 2 _GUICtrlListView_SetColumnWidth(-1, $i, 151) Next For $i = 0 To 29 GUICtrlCreateListViewItem($i & "|" & $i & "|" & $i, $hList) GUICtrlSetBkColor(-1, 0x00FF00) ; <<<<<<<<<<<<<<<<<<<<<<<< Next GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch WEndM23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
ReFran Posted August 25, 2010 Share Posted August 25, 2010 Mmmh, The example is very good, .... but the color ... ;-) Reinhard Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted August 25, 2010 Moderators Share Posted August 25, 2010 ReFran,.... but the color ...But it illustrates the alternate line colour difference so nicely! Personally I tend to use the default backcolour and 0xCCFFCC, probably because I was brought up on the old concertina printout paper from the mainframe - very much easier on the eye. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
guinness Posted August 25, 2010 Share Posted August 25, 2010 Is there a clever hack you know of to use _GUICtrlListView_AddItem()? I had a look at CSV-Editor by Funkey to see how they accomplished it, seems a new Function was created using the native GUICtrlCreateListViewItem. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
gobsor Posted August 25, 2010 Author Share Posted August 25, 2010 (edited) Nice example M23, thank you! And yea, I'm using 0xF2F8FA now! Smooth color I think! ;-) Edited August 25, 2010 by gobsor 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