Jump to content

Color uneven/even ListView indices?


gobsor
 Share

Recommended Posts

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

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 - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

  • Moderators

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
WEnd

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

  • Moderators

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

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

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 parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...