Page 1 of 1

#PRIM_MD.list

Posted: Wed Jan 15, 2020 2:03 am
by Pratibha
Hello,

How is it possible to show alternate colors in the material design list. In the repository there is no option of alternatethemedrawstyle under style option by this component. How can I solve it ?
screen1.PNG
screen1.PNG (46.34 KiB) Viewed 8387 times
Regards,
Pratibha

Re: #PRIM_MD.list

Posted: Wed Jan 15, 2020 2:23 am
by jyoung
You need to set the AlternateItemThemeDrawStyle property on the List to a Theme drawstyle.

For example:
Create a Theme with a custom drawstyle. Here is a Theme named "JoesTestTheme" and a drawstyle named "AltRow".

Code: Select all

begin_com role(*EXTENDS #PRIM_THM) BaseTheme(MaterialDesignBlue)

define_com class(#PRIM_THM.DrawStyle) name(#AltRow) Style(#Style1)
define_com class(#PRIM_VS.Style) name(#Style1) BackgroundBrush(#Brush1)
define_com class(#PRIM_VS.SolidBrush) name(#Brush1) Color(ThemeAccentDark)

end_com
Apply that theme to the web page and set the List's AlternateItemThemeDrawStyle to the drawstyle

Code: Select all

begin_com role(*EXTENDS #PRIM_WEB) Theme(#JoesTestTheme)

define_com class(#PRIM_LIST) name(#List) ColumnHeaderHeight(48) ColumnLines(False) DisplayPosition(1) Height(360) Left(311) Parent(#COM_OWNER) RowHeight(48) TabPosition(1) Top(67) Width(500) AlternateItemThemeDrawStyle('AltRow')
define_com class(#PRIM_LIST.String) name(#ListColumn1) ColumnWidth(246) DisplayPosition(1) Parent(#List) SortOnClick(True) Source(#STD_TEXTS)

evtroutine handling(#Com_owner.Initialize)
define_com class(#PRIM_NMBR) name(#lIndex)

#lIndex := 1
dountil (#lIndex = 10)

#STD_TEXTS := "Test"
add_entry to_list(#List)

#lIndex += 1

enduntil
endroutine

end_com
Capture.PNG
Capture.PNG (8.67 KiB) Viewed 8385 times
You don't have to create a custom drawstyle, I just did this for example's sake. You can set the drawstyle to any drawstyle in the Theme.

Hope this helps,
Joe

Re: #PRIM_MD.list

Posted: Wed Jan 15, 2020 2:47 am
by Pratibha
Hello Joe,

thanx for your reply but I m not ust PRIM_LIST component but rather using PRIM_MD.LIST component and it does not have the property AlternateItemThemeDrawStyle.

I would like to know how to implement AlternateItemThemeDrawStyle in PRIM_MD.LIST component.

Re: #PRIM_MD.list

Posted: Wed Jan 15, 2020 3:28 am
by jyoung
Sorry about that :?

How about using a Style, although you have to calculate the mod yourself.

Code: Select all

begin_com role(*EXTENDS #PRIM_WEB) Theme(#JoesTestTheme)

define_com class(#PRIM_VS.Style) name(#Style1) BackgroundBrush(#Brush1)
define_com class(#PRIM_VS.SolidBrush) name(#Brush1) Color(128:222:234)

define_com class(#PRIM_TBLO) name(#LayoutList1)
define_com class(#PRIM_TBLO.Column) name(#LayoutList1Column1) DisplayPosition(1) Parent(#LayoutList1)
define_com class(#PRIM_TBLO.Row) name(#LayoutList1Row1) DisplayPosition(1) Parent(#LayoutList1)
define_com class(#PRIM_TBLO.Item) name(#LayoutList1Item1) Alignment(CenterLeft) Column(#LayoutList1Column1) Manage(#ListPrimaryText) MarginLeft(16) MarginRight(16) Parent(#LayoutList1) Row(#LayoutList1Row1) Sizing(ContentHeightFitToWidth)

define_com class(#PRIM_MD.List) name(#List1) DisplayPosition(1) LayoutManager(#LayoutList1) Left(154) Parent(#COM_OWNER) RowHeight(48) TabPosition(1) Top(135) ThemeDrawStyle('Card')
define_com class(#PRIM_MD.ListLabel) name(#ListPrimaryText) Caption('Single line item') DisplayPosition(1) Height(23) Left(16) Parent(#List1) TabPosition(1) ThemeDrawStyle('Heading3') Top(13) Width(246)

evtroutine handling(#Com_owner.Initialize)

begin_loop using(#STD_INT) to(10)

add_entry to_list(#List1)

#ListPrimaryText.CurrentItem.Caption := #STD_INT.AsString

if (#STD_INT.Mod( 2 ) = 0)

#List1.CurrentItem.Style <= #Style1

endif


end_loop
endroutine

end_com
Capture2.PNG
Capture2.PNG (5.2 KiB) Viewed 8380 times
Never have been a big fan of the changes they made to the themes cause now we have themes and styles and things like this adds to the confusion. :(

Joe

Re: #PRIM_MD.list

Posted: Wed Jan 15, 2020 7:22 pm
by Pratibha
Hello Joe,

Thank you so much for your help. It works now 8-)