562
ADOR, MDB (JET)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oList
	LOCAL rs

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:ColumnAutoResize := .F.
		rs := CreateObject("ADOR.Recordset")
			rs:Open("Orders","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\sample.mdb",3/*adOpenStatic*/,3/*adLockOptimistic*/)
		oList:DataSource := rs
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
561
Highlight the match once the filter is applied
PROCEDURE OnFilterChange(oList)
	LOCAL format
	format := oList:FormatABC("`lower(value) replace lower('` + value + `') with '<bgcolor 000000><fgcolor FFFFFF>` + value  + `</fgcolor></bgcolor>'`",oList:FilterBarPromptPattern())
	oList:Columns:Item(0):FormatColumn := Transform(format,"")
	oList:Columns:Item(1):FormatColumn := Transform(format,"")
	oList:Columns:Item(2):FormatColumn := Transform(format,"")
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1,oColumn2
	LOCAL oColumns
	LOCAL oItems
	LOCAL oList
	LOCAL h0

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:FilterChange := {|| OnFilterChange(oList)} /*Occurs when filter was changed.*/

		oList:BeginUpdate()
		oList:SetProperty("SelBackColor",oList:BackColor())
		oList:SetProperty("SelForeColor",oList:ForeColor())
		oList:ColumnAutoResize := .T.
		oList:ContinueColumnScroll := .F.
		oList:MarkSearchColumn := .F.
		oList:SearchColumnIndex := 1
		oList:HeaderAppearance := 4/*Etched*/
		oList:HeaderHeight := 23
		oList:SetProperty("BackColorLevelHeader",oList:BackColor())
		oList:FilterBarCaption := "`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)"
		oList:FilterBarPromptVisible := 2055/*exFilterBarCompact+exFilterBarCaptionVisible+exFilterBarVisible+exFilterBarPromptVisible*/
		oList:SetProperty("FilterBarBackColor",oList:BackColor())
		oList:FilterBarPromptPattern := "and"
		oColumns := oList:Columns()
			oColumn := oColumns:Add("Name")
				oColumn:SetProperty("Def",17/*exCaptionFormat*/,1)
				oColumn:FormatColumn := "lower(value)"
			oColumn1 := oColumns:Add("Title")
				oColumn1:SetProperty("Def",17/*exCaptionFormat*/,1)
				oColumn1:FormatColumn := "lower(value)"
			oColumn2 := oColumns:Add("City")
				oColumn2:SetProperty("Def",17/*exCaptionFormat*/,1)
				oColumn2:FormatColumn := "lower(value)"
		oItems := oList:Items()
			h0 := oItems:Add("Nancy Davolio")
			oItems:SetProperty("Caption",h0,1,"Sales Representative")
			oItems:SetProperty("Caption",h0,2,"Seattle")
			h0 := oItems:Add("Andrew Fuller")
			oItems:SetProperty("Caption",h0,1,"Vice President, Sales")
			oItems:SetProperty("Caption",h0,2,"Tacoma")
			oItems:SetProperty("SelectItem",h0,.T.)
			h0 := oItems:Add("Janet Leverling")
			oItems:SetProperty("Caption",h0,1,"Sales Representative")
			oItems:SetProperty("Caption",h0,2,"Kirkland")
			h0 := oItems:Add("Margaret Peacock")
			oItems:SetProperty("Caption",h0,1,"Sales Representative")
			oItems:SetProperty("Caption",h0,2,"Redmond")
			h0 := oItems:Add("Steven Buchanan")
			oItems:SetProperty("Caption",h0,1,"Sales Manager")
			oItems:SetProperty("Caption",h0,2,"London")
			h0 := oItems:Add("Michael Suyama")
			oItems:SetProperty("Caption",h0,1,"Sales Representative")
			oItems:SetProperty("Caption",h0,2,"London")
			h0 := oItems:Add("Robert King")
			oItems:SetProperty("Caption",h0,1,"Sales Representative")
			oItems:SetProperty("Caption",h0,2,"London")
			h0 := oItems:Add("Laura Callahan")
			oItems:SetProperty("Caption",h0,1,"Inside Sales Coordinator")
			oItems:SetProperty("Caption",h0,2,"Seattle")
			h0 := oItems:Add("Anne Dodsworth")
			oItems:SetProperty("Caption",h0,1,"Sales Representative")
			oItems:SetProperty("Caption",h0,2,"London")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
560
Re-order the cell's caption, icons and images/pictures

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1
	LOCAL oItems
	LOCAL oList
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:ColumnAutoResize := .T.
		oList:Images("gBJJgBAICAADAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEahkZAIAEEbjMjlErlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrlTiFdib/sNjr9gs1nldlrlqtFtt0stlguNvulyh91ud1vVVvNuvt7wFHr9/vl3luEwOJouIq+Dw2KyGRyWTymVy2XzGZzUuiw+lmej0gkUaksljaAnmDcD/cEbf7w1+ufD/fEbeB028bYAO3enB6AB++4EoA4A4sb4vHjXJ4nG5vKAHA4ca6XBjTAD/Y2x/eB/jcB")
		oColumn := oList:Columns():Add("ToLeft")
			oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
		oColumn1 := oList:Columns():Add("ToRight")
			oColumn1:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn1:SetProperty("Def",34/*exCellDrawPartsOrder*/,"caption,picture,icons,icon,check")
		oList:DefaultItemHeight := 32
		oList:DrawGridLines := 2/*exVLines*/
		oList:HeaderAppearance := 4/*Etched*/
		oItems := oList:Items()
			h := oItems:Add("Caption")
			oItems:SetProperty("CellImage",h,0,2)
			oItems:SetProperty("CellImages",h,0,"1,2")
			oItems:SetProperty("CellPicture",h,0,oList:ExecuteTemplate("loadpicture(`gCJKBOI4NBQaBQAhQNJJIIhShQAEEREAIA0ROZ6PT0hQKYZpIZDKBJkIgKByN5mNJsMsKPABVqXBI4KjrD7HL6GWKPJKiCIhMiySidKxbOzZZJWMLsGL2FqyLjZMonNa2CyiZDOUqsQqUEq0ZCNISFXDIFxzZ4hUrbdrefZ/fz3ZgzZ75Tz3XjvHZnZznPieb55AKgAqmRyOOzEhR7XirWaWQQMTa+QIhDbZOZAAoYUCPDAQG7FXI4JRrNCoIRdPyyFr0AYifDUKZ+PCufK4RReALLUbtdBHSrGTCCNKqT4MbRqUxxQx+CAAEQ2VCBbxqGaLYDZNgzFbCbLDarRCrqMYMM6cWqpHKUDqhZjnVijEoLcp0FCjVg2OYhTjN/QWk4bo4iseBsAcABIDoPA5g2HgADIkQfDCNxwkEQYnFmAIAB4OJHGcKAPioGRKFKdh2g6UB8iiZ5QkYQp3gKWhDlsWYmAARBcgCIAUniVpmiSA5AF3A4" +;
		"wG8P41nGWwDDAW4MAAIpSG+bRzBoGx3AeCJhh6C4ljCUJGnSRBUFKAIQA6EgIHMWBoHqYgAngHJDCALBmhCCAfHOARAScUBvAmc5zHYXxoguXQ8DEMIAH8dI8HmP4/AyQJAEAYAoHqRByEQGJiECBAzAkKIpBYNIcikAp8kcZhDn4EBChmUoMgqHIqhiWoIgaDImgyVQImaRw/F0EZGCcSw3DaM4Kn6GBBhwYYZDGZo3C+RgOAmNQnhYeYqgsTZenEVgSFYLo2CydhGg4OROF2HJjlydR7i+cJjDGFo8BgHgVl4Po+DufJRgcbQOlkCxyKuCJNAsdwIhSC4mgieYKkeHJWD0Ih8BQaYYkkMYppwTg0EsFhJC0SxEkgeodDSFpTheV5SDgLBIieRIigyVo5CeOpymoWhtEQfRACMR4zE2KxRnsV5dF2ehFCeC50G+GBkBiZgaCUGYnBySY+BsdIuEkJJJDSSRsjGeYqEWOhliYVYOHWDYbFuNhFmcS5si" +;
		"qbZrnGLYOh0DpPhyXo7D8d4ZHGXR1CcdRAnsMh7GELwIHiSx7CiXY0HYNZ1nOcoPg0SB+CWLwwGqUpbFAQJwEeEImlCVQwk4cJxAiFRIhMS4ulGYRRlmMQVDEHZxG8YxXhIaQSniLhIiaGwnDiJZGicZYnjeZw8D6OoSkWEIthwI4emudwtGwepNhuLQ3F8Zojm4bQrhALo0D0HZwCcJwoimeI0ASWR6CAJkJQORfAiFcLIXgahaiGCgMsKIpw8DPH8H4Pj2BhjrBMGQGYfxFjuEGIsB4rxbg+DSFsPAxBtChHoAQaYmRojVG0D0e6JALjVD2K0F4qxfjjGyPIRY/QXi1AOAILwFQGgOF8KYDwOgdBsHmCYcobRtjIHoGgZAmBgi7HgPcWoHxTAmCQCcVwTgDB+FYJgfQMAOj0F2PoZgkRMjeKQLkWATwdDzEkPMF4FxzAXDGJYfAlgPAuB+FkeIWxuizC0LkUwvQbD9ByHIDouxvBCBgCMCAvh4CXCM" +;
		"EgSA0BJDEH+AsfwMgfjhDeL0Ro/xkgvH4JMXA7RYjyAONgPAWhfjyCuBEcAFRSAWE4BIOwEAUgTCaIYfA4wSBUAcAsDowQOBFA4J0Hg9h2B4EmCQTYVBdB0FwIwU4rByjJGmHIRQ8gJAKB4IoZgShaDKAQOUIolQkjVBuGoSw6hugaFaJoeoWgajaDKDoO4dB5j0FcJ0Zw1Ang3CQDEdgNQnA6EmHgGw4QuCiCSAKFIXBgilEwGcLAZAtDmC0N0WgLhaApFiK0HgfxniuGKP4GIvhrhhGgHEZgaRtB5GSBUcIhg5BnHkOAeQFB5A6DiEEao2xoDHH0KIQ4bxYBfFEP8RogB5BfA8AQHwvwqAZBIBURgCgwgPAqAkKYCgfgTHCBwDIegcgjFUDQXQPQzA4DsCkDwnRABNAwE8OgTw5C6AkJEPgPRSg+DqCANoMRBjuHUKEJglQWDrHYOATg3BuDGDWEMa4CQbj3HMB0Z4Pw5jLFuCAWYsB/D2DgBEUQmB" +;
		"1iuDEMkfI0hUCyEkPIfwihKgqGsGobIGhNhfFGGoZY6gDDuGWDceANA1A2DyDUM4txaA/EwG0bo0wTDXEcH8Sg/BcD2GSHQC4pgtiuGOOkNIRg3hbG+MIGYjhzgaBeHwL4FgHAMAYFIfgJh4nJBQGkfAwRNiFAiO4KIlhoiKFiOoO4EwPiYGONUE4RATg6BOMcUwEApgZGmP4X4lxnjYGaLIZg7RNirH6FQG47xZCAC6OQLK5B1BYF8LgOQZAqh0FqGcBo/xMhpE6HsXomQwBKCwIcfA6w/DxA+IURAIxwgmBSCMKoJgOhFD0JMeIkQdhREwFAEQKRFioAYKkJIqQlhpBYFEPYUQui0GCGgFI9BlCOAUDoS4nRhA7HOOkFYdguhgEgGYUgZB2DeE6IIYIMQEgyAiPYHgYgnBlFiNsPYghKiODqISfddhPgVEOCQE4hg5iWHWPEfwfB3BgFYPkAIWQPAOC8BIb1MwrD+QsNEQ43ACAMAKGUQgsBhBoHCG" +;
		"USNrxBBoEqNgGo8QMAJF+MMOwRxGCOFUBwHYdhODvDwMEBILgk21AKKkOI6RrgyD6LIDoJxNjkDUOQF4yAXgoC4FMXgqhKCiE4KACQow9D5CoJgLQiA9CwEMLUYwOxmhAFaEAdoSwdBBF0CEPQEWWDrGOBoEgGhTAaDyBsPoNgXA4CmHIWw+guCDCSJsNIjxsgADcNQPg2hxC2FKLACo2hNDFEMMcKw/BeCcE6LYXoGRvDJGCN8GIxgUjYAyOUbg6BpDrB0OYWw5AgjtGSOoEofAgjRG2NgY4+RRCfBeKUN4qQvi7H+HAYAchwCOCWAcQQZBBFiG4EIUYww3CFFuEQSgRAlBdDMIwCQiRrCMGCMcIwxhuiKDeE0PAlxCC8GFZQS4YhIgaEkJYS43hLAxE8EkTodQUBbBWMcHoNxy0lHqOETYyAeDeD4I0AQlRhD0G2E0O4PgKCjHeEoSgmBKCGEsBUS4vxUA8C6M0K4ox7irD+O0VouhfD7FUA33I+gm" +;
		"iXE0IsLY1gtipG0CQbQLQPjFDuDQHw2RtjFGsK0bw4x9j0CcO8N4/RtBnhSgvAcBehmAOh0ANgiAhAnhih8gwh1gbhugRhSBRhDhjh2Bvgyhfh3gPhThOBIBOA6B9gsAYAah+BdhlBWBtAuBoBThtB8gnhFheAlhcByh6BKhvAahNBnh5B1gJB1g+hCAsgAAbB1gOguAJhIAoAmhFBvqzACABh0BlgFggA6CaBvBQA7BDEHAaA0AABoAcgGBEACg5AAgYgZgLAIBKgFBBhWh9AggCAIBoBNgAANA9AJhwABBxBwAKAYAAALCJu9ADAYAFBLExBEAiBEgmBEgxBEANBENbhmgJh5gJBNgJgzgJBfgRAvAhpKhnAQg5AIpkARASA/ASKGAPBJhZBIAdBJAbARh7n4BIhshkAnAZDVgkBZAUg5AWh5AVB5AEgFAbBFA4BFACglA5hlAfAVAChVAtBVAig1AQh1ABBNB+gaAcgUA7AqAbAWgTg2gfB2gSB9A" +;
		"IBdA1BDh2BHAnBdAZg6Apgdh+h0g7lCBoAXh3BJBugahkBwBihkBkAsBYgtg/h7gNATBNgkhIgUhBg0gzI6BZgJRJglhvAvARgrAtBrALBbBFh2BxB2BZh9hFAcgOAcAdAcgCgcBzhcAVB7h9g5BlgxhohsArgDh5A8heA8BKh8hMB8gzB8APgPBmAdByAShQAVgUAWMMAaAThuATgpAWhNASgLARB3ASAwg+AsEwhiAoimBTBxhUAJhEAJhVhJBPhSBTBSBjgyhvBPlWAbgUgfhRhYBUAkAoBTAoBQgrgygfyhgTBShXBSgwhUh0hWgKhTguhQBphRAdhWAjhoBvg1gQA0g0A1AKACAehLgegzgrgmhcAmBahmB+A4AihzAhhLA6ArAFBrAfAbAyhbAPh2hYB7BzB8AOBDgwhTg+hnALAXB8hXBph3AxAPA/BPA2gLg7A8hxg+AlAXANB9ARB+A6B+h5gBgEBAg9BLhFBBAUghAWAhANhhhsgRgBARB" +;
		"vgjAUgiALhjBpBig8hjhHgSA1ASBqgvA4gkhzAmgkglhRgnB7hlh8BKA0hNgxhMBtg7guh5gjAzhPAtB/BJgBBmhhBvAdhDAighg7g2glAzBlg+AVhUAVAphVAHhqURAGhvh7g0AgAahvA2FigMg2BhhaBrg6AMAegTA6AVi5B6BlgehNgMgoA9gigMAZA/hBgMgGg+hfgbAvAegSgbApgegXhZhqBagzBYgogfgwB/Cwg7hgh/hDA/gTg5B+gNh/gXh6B8hbh8B/hEhfASg2h/BHh6BfhZBbhuAjB/g9h7BbBth0h/gbh2Ayh/hAh+h/gnh/Ajh3AwgnA/gigPBzBPBVBegigfA1h8BPhshr1HgNhvAxB/hoBdgGgBhZh3sUhMh0gmh1hLg9hIgchQB7BthugQh5hbgugth6BTgLi/ALBkocoPgCA/BQBfhmh+hXhzA/hzh+g7B1hbgch/heh4gvhEg3hsBfBOgbA2B9ArhrANhPTSKXAMg7A+Bhh4A" +;
		"fgZh/AVhdg/hzB7BTBsgfh5B+gdhZh/g7oQBogSh/BMrPhUhYBshvheBfA9AThph7ANhvhNgog/hZBNg/hdhvgIAxhjB2hHBhhOBtg1gPBCg3hZBDAmhDg0gfhNhAg8xMhgBiBvkig7BGgKBHBDBfBJhDBWhPg6BPxKAvBOBUhPB5hMhLhAh0mXBXAFhhB/A3hXBIhwB9AAgUBKg4AHA8AMgdgDhuB8hGghhcACgUAAgOA4AAA8AQABh2BQAegHA2BOB9BYhxhrBAA/hfg7hah4BCBrAxgABkAdAcK4BtgsAshdhZCSAVglgFgbASgeB3AQAPhNhIFJ2TBnhahchDBBh9gQBogABSAlhhBUgbBLANBvA+hbh+gAgWBzB5BXBWhFh/knAAADgLAkgiAggqAsAEhigrA1g2AKAqgKBfAZgdh9g2BbhugjhUgCgtgBALAtAYy+AWhEgmgAhFgSAaT4gAASgaATAahIgxACB9ghhGgfgmBoAEB4gIg/ANBag" +;
		"xAkhGBRA0gs3yBaBjTNAFBCBFBghCACAJAlhFh+AAAEgCAQgQg+h2g7Bbhdgdgdhdhxh7gGvUhbBHhah/B5ATAzh3BOtAWchuh3hOA9h3XvAfgbh0hfh8Brg6hegDB9BtnWDQByA4gkAGJIAZAEgcgFh8gvBJBSAdh0BLhqBLACAABHBtgwB2x8yngsg+gAByA2gAB8hxhvh6Byg+AFBp4nBShMgmBzANgAB8ACBZADARBLPVhQh7uKBOg/B7hqBUgphbA+AfALAygQYohXBZi2AThYhcAeBPhAuwhdgIBEgiB7B9YzhDA0AvAthIBAg8AeBfApAohKA/B2BRA+BYm/gGBCguAG5JhAhjZLAgAvgvhPg1gYgehmAbgLZQhDAjAjgjgOh5heAxzgABhx5Wgig0AfgQA/B13iBgBchVgrhXgVXFhbh9gKBdgugUAbXDgygsg+A/B+B8AqA6g6hahbBsANBmA/hCgmhegeSVgeADBwB+BKg+BnA0hwBxBih" +;
		"Fh7BxBxAxAIgGACAiAYAMAKA/BPgnguAMgPBbBngak8B+hsgqAVBag2hnBOAoBWAJhYgsA2AchvAHhIEMAmgmAmAkAjhHgPB6hUBkhSAqApgpjehsBcgZhAhuAYBOBdAuAXAwgpgPBMBwAOB5AjB+AeAYBwANACghgnBTgph3h0B0BMB4h91BgMAJhxAmgSByhshbajBaWPgTgCAYA4ACWGg3g/AyBfgzhnhPBxA1hrhXBshehChChRBQBQAgAeAFBNAtg7h3hHB7h7B7A9BOgHBDgggfhrBEBHA+h9gRB+68hPAfg3huAoAzbAAiAGBZA7B2htAqB7hYgxgwhVgehOVIFFBRgchLhhgAA7BfBthdB9hkhkgkg0hyBlAKhBg3ABAgAZBEg4AcBWAGYIhzgXAEgDA6gmhphwAtgRBYBmBwBwBQAThBA3gvBXn3hrBDBuBcA/BugnANgEBLhKhCgzhwYzhAAiARAohGgHgggJgMg9gMBrA4g+A6BoAUhch" +;
		"ug3BBgAhZAIBPBNApAFAFAFh6hZBZAZAWhMgkAkBEgyApb1BOAqBGBIBmATAShAhsgOgHBuhxh4gsBOhph2ArAfBmBLCWgigxgOhZhshtAMBrghhDgHgjgfrIB5ABBCBQAcAgV4gPhcgIBWhVhXgnhBApA4hVBXhngFhTLMgcgOhRgtAMh+hFh2h2gohnAsgshCg+rTAGgNhcgjgvwhAsA0BOA8gV4dBN8qBJh68rgUgoB2BdA6h5hTABhMgWAxhTg9A2guguhJBDB0g4B5hzBmsvhwgwgzgog4g4gDAmAygPBUhWAqANgbg3AmBAI2AOBzhDA8hmBKgxBIAFgAAJhbCuhGgKl7BwhwAmgcAKAigDh2gZAJArABANgDBegx5WgZADgwBGBEAkBegAg2AYg9gwKABtBmhPABBoBZAPgFhHBMAPhmB/B6bdhZhdhdhth1hh8lBGgIBEAUgOhEgKgVgrA0AngaAaBiBIgyB5A3gLgXBcAEhlJjAJgEAsAJA" +;
		"kgqqlhththThrhrhrBVBTAWhZhDhPhThIBWARg+Bn7Sg7A3gDhZAvAphEgegGgehuhpAJAyAJBZQ9gBggAAgAgwBDg3BCAAhkgTh0hkAAhLhthWhTgqAqhJBIAhhmAEgqgqgCgbBiB6h9BD8zhxhmABrOhfAqhMg7ghwiA4BSJNhMgqg4BEhkY8AjBphNATBaA6AtAwBYgEACBBiEBABIAggbg7gmh1AlglAlgahXBmhmB1BgBPBEAmAnwZgogyhVgmgABcgxsNBUAWAAB2B4AHBvA5h3B3ggAQBIAwg+hPhSgqBQCEA/gQBQA2htKUgfAJhFgkhkAYBtAIAMHpgbAasHg0gVAsBhhIgbBVAxAi/MgFBnAZBDBpB2ABgwADBWh3gchuBwBxhrhkB1BbhWAFAP5mBCghgTgnA8AgBV+OgqhSg2g1g3AnBOAcg+hNAYgbhHBRg8g6BjhjhjA2ADgdAdhTg/Aeg/hvA6h1h7A2gChLhKfjAdAxhahigYgMA" +;
		"GAshzg5AAaYh/AGAjh2AChABwBOgwXnBFh/ApAzgT2GBZBGvTBHAjBGhAF0wAgsDi1w4Nza2UkyBUYiA+maxm6g1K32ad3s2Qg8AKlRaBlKD1wKE+rCCjSObAK8iGsFOrC0vR0lTeDV8IUatHu6GO2jkAHgAwgfgC5TYrVsKk2Y3MBRcpBQkgmOUuznY2FqKy0WSymXeX0ASwel0olHI5AwJ1mx0gL1mTXU6XS8Vpdj4hyg8BemDYZHqMFOUyYZTWP1WJ1CN1MTR6gH4cmysjKr2mlCqn3GuR+jDoJHGWlKkU+ajXpgg1yq2FQDFigSEBROwkCKnQwGwjliIU45x2HGyIB4dnM0UmUC+PhaLxefwOdia5zMT3+8wwYCQmEwdi4vQKqHKvigKHoKnc9Rs7GMDUOhhGOnAYjWkzKKRGyxsDUA01QCw0QCOF0uh0OkfRUMMbyRNwTBiCYZwKMIYyZAUkSlBYkxsCYAAHG4qwCBwMQfBYlxsNgsDhLEgwHA8" +;
		"PiPNg1ygP4uywIgMSwK4zSQG46BnFAATDJcL3IHM6DQBsPR3O83j/AsJyGH8w4ZJY5TsN8EAdFojTwJ0AAoA4MgATIMDqAcrQPMEwTDBgVy0LYtiuK8qyrFs6QtCocnLCs8wAGAChOGM+CZJ0HAaoQHQYocBiaHtJT3LEfgCLYIgQNYgw4IQiSaBcAABBEAB/DAXS4HgPAgLUSCzGkPjkIATyXPQoCeNYfR6Do7QGI8Zj+CAHiyCY2SkIQTSSCIyDQCkpDBJQJinMMuAUPgOxGOcpA/AkoTzJwyiYFMiDwJEsShFAURFCwJRVFceQXKQIS8P8STlBgLggAcrAQCQATjIgZA0JgVSxL0OAmKI6CpEc4SuOkeBeOwMRnLQuQhOApDJAImYmD44BPIgAzFMYiR3LcQw4JwqhQAknAMFAxwEEwJwUO4ljCHgmxzNwNQ3EU3ScLYEAACocDePwZgCLI+yFN8jg7FEQTtKMcwrAAOhgHw6SQI4OCmJgjDmNAjj" +;
		"5Gw+wbHkkTpEw7gpFgIAA2sABJEUThEK4QhgIJAQ==`)"))
			oItems:SetProperty("Caption",h,1,oItems:Caption(h,0))
			oItems:SetProperty("CellHAlignment",h,1,2/*RightAlignment*/)
			oItems:SetProperty("CellImage",h,1,oItems:CellImage(h,0))
			oItems:SetProperty("CellImages",h,1,"2,1")
			oItems:SetProperty("CellPicture",h,1,oItems:CellPicture(h,0))
			h := oItems:Add("<b>HTML</b> <off 4>Caption")
			oItems:SetProperty("CaptionFormat",h,0,1/*exHTML*/)
			oItems:SetProperty("CellImage",h,0,2)
			oItems:SetProperty("CellImages",h,0,"1,2")
			oItems:SetProperty("CellPicture",h,0,oList:ExecuteTemplate("loadpicture(`gCJKBOI4NBQaBQAhQNJJIIhShQAEEREAIA0ROZ6PT0hQKYZpIZDKBJkIgKByN5mNJsMsKPABVqXBI4KjrD7HL6GWKPJKiCIhMiySidKxbOzZZJWMLsGL2FqyLjZMonNa2CyiZDOUqsQqUEq0ZCNISFXDIFxzZ4hUrbdrefZ/fz3ZgzZ75Tz3XjvHZnZznPieb55AKgAqmRyOOzEhR7XirWaWQQMTa+QIhDbZOZAAoYUCPDAQG7FXI4JRrNCoIRdPyyFr0AYifDUKZ+PCufK4RReALLUbtdBHSrGTCCNKqT4MbRqUxxQx+CAAEQ2VCBbxqGaLYDZNgzFbCbLDarRCrqMYMM6cWqpHKUDqhZjnVijEoLcp0FCjVg2OYhTjN/QWk4bo4iseBsAcABIDoPA5g2HgADIkQfDCNxwkEQYnFmAIAB4OJHGcKAPioGRKFKdh2g6UB8iiZ5QkYQp3gKWhDlsWYmAARBcgCIAUniVpmiSA5AF3A4" +;
		"wG8P41nGWwDDAW4MAAIpSG+bRzBoGx3AeCJhh6C4ljCUJGnSRBUFKAIQA6EgIHMWBoHqYgAngHJDCALBmhCCAfHOARAScUBvAmc5zHYXxoguXQ8DEMIAH8dI8HmP4/AyQJAEAYAoHqRByEQGJiECBAzAkKIpBYNIcikAp8kcZhDn4EBChmUoMgqHIqhiWoIgaDImgyVQImaRw/F0EZGCcSw3DaM4Kn6GBBhwYYZDGZo3C+RgOAmNQnhYeYqgsTZenEVgSFYLo2CydhGg4OROF2HJjlydR7i+cJjDGFo8BgHgVl4Po+DufJRgcbQOlkCxyKuCJNAsdwIhSC4mgieYKkeHJWD0Ih8BQaYYkkMYppwTg0EsFhJC0SxEkgeodDSFpTheV5SDgLBIieRIigyVo5CeOpymoWhtEQfRACMR4zE2KxRnsV5dF2ehFCeC50G+GBkBiZgaCUGYnBySY+BsdIuEkJJJDSSRsjGeYqEWOhliYVYOHWDYbFuNhFmcS5si" +;
		"qbZrnGLYOh0DpPhyXo7D8d4ZHGXR1CcdRAnsMh7GELwIHiSx7CiXY0HYNZ1nOcoPg0SB+CWLwwGqUpbFAQJwEeEImlCVQwk4cJxAiFRIhMS4ulGYRRlmMQVDEHZxG8YxXhIaQSniLhIiaGwnDiJZGicZYnjeZw8D6OoSkWEIthwI4emudwtGwepNhuLQ3F8Zojm4bQrhALo0D0HZwCcJwoimeI0ASWR6CAJkJQORfAiFcLIXgahaiGCgMsKIpw8DPH8H4Pj2BhjrBMGQGYfxFjuEGIsB4rxbg+DSFsPAxBtChHoAQaYmRojVG0D0e6JALjVD2K0F4qxfjjGyPIRY/QXi1AOAILwFQGgOF8KYDwOgdBsHmCYcobRtjIHoGgZAmBgi7HgPcWoHxTAmCQCcVwTgDB+FYJgfQMAOj0F2PoZgkRMjeKQLkWATwdDzEkPMF4FxzAXDGJYfAlgPAuB+FkeIWxuizC0LkUwvQbD9ByHIDouxvBCBgCMCAvh4CXCM" +;
		"EgSA0BJDEH+AsfwMgfjhDeL0Ro/xkgvH4JMXA7RYjyAONgPAWhfjyCuBEcAFRSAWE4BIOwEAUgTCaIYfA4wSBUAcAsDowQOBFA4J0Hg9h2B4EmCQTYVBdB0FwIwU4rByjJGmHIRQ8gJAKB4IoZgShaDKAQOUIolQkjVBuGoSw6hugaFaJoeoWgajaDKDoO4dB5j0FcJ0Zw1Ang3CQDEdgNQnA6EmHgGw4QuCiCSAKFIXBgilEwGcLAZAtDmC0N0WgLhaApFiK0HgfxniuGKP4GIvhrhhGgHEZgaRtB5GSBUcIhg5BnHkOAeQFB5A6DiEEao2xoDHH0KIQ4bxYBfFEP8RogB5BfA8AQHwvwqAZBIBURgCgwgPAqAkKYCgfgTHCBwDIegcgjFUDQXQPQzA4DsCkDwnRABNAwE8OgTw5C6AkJEPgPRSg+DqCANoMRBjuHUKEJglQWDrHYOATg3BuDGDWEMa4CQbj3HMB0Z4Pw5jLFuCAWYsB/D2DgBEUQmB" +;
		"1iuDEMkfI0hUCyEkPIfwihKgqGsGobIGhNhfFGGoZY6gDDuGWDceANA1A2DyDUM4txaA/EwG0bo0wTDXEcH8Sg/BcD2GSHQC4pgtiuGOOkNIRg3hbG+MIGYjhzgaBeHwL4FgHAMAYFIfgJh4nJBQGkfAwRNiFAiO4KIlhoiKFiOoO4EwPiYGONUE4RATg6BOMcUwEApgZGmP4X4lxnjYGaLIZg7RNirH6FQG47xZCAC6OQLK5B1BYF8LgOQZAqh0FqGcBo/xMhpE6HsXomQwBKCwIcfA6w/DxA+IURAIxwgmBSCMKoJgOhFD0JMeIkQdhREwFAEQKRFioAYKkJIqQlhpBYFEPYUQui0GCGgFI9BlCOAUDoS4nRhA7HOOkFYdguhgEgGYUgZB2DeE6IIYIMQEgyAiPYHgYgnBlFiNsPYghKiODqISfddhPgVEOCQE4hg5iWHWPEfwfB3BgFYPkAIWQPAOC8BIb1MwrD+QsNEQ43ACAMAKGUQgsBhBoHCG" +;
		"USNrxBBoEqNgGo8QMAJF+MMOwRxGCOFUBwHYdhODvDwMEBILgk21AKKkOI6RrgyD6LIDoJxNjkDUOQF4yAXgoC4FMXgqhKCiE4KACQow9D5CoJgLQiA9CwEMLUYwOxmhAFaEAdoSwdBBF0CEPQEWWDrGOBoEgGhTAaDyBsPoNgXA4CmHIWw+guCDCSJsNIjxsgADcNQPg2hxC2FKLACo2hNDFEMMcKw/BeCcE6LYXoGRvDJGCN8GIxgUjYAyOUbg6BpDrB0OYWw5AgjtGSOoEofAgjRG2NgY4+RRCfBeKUN4qQvi7H+HAYAchwCOCWAcQQZBBFiG4EIUYww3CFFuEQSgRAlBdDMIwCQiRrCMGCMcIwxhuiKDeE0PAlxCC8GFZQS4YhIgaEkJYS43hLAxE8EkTodQUBbBWMcHoNxy0lHqOETYyAeDeD4I0AQlRhD0G2E0O4PgKCjHeEoSgmBKCGEsBUS4vxUA8C6M0K4ox7irD+O0VouhfD7FUA33I+gm" +;
		"iXE0IsLY1gtipG0CQbQLQPjFDuDQHw2RtjFGsK0bw4x9j0CcO8N4/RtBnhSgvAcBehmAOh0ANgiAhAnhih8gwh1gbhugRhSBRhDhjh2Bvgyhfh3gPhThOBIBOA6B9gsAYAah+BdhlBWBtAuBoBThtB8gnhFheAlhcByh6BKhvAahNBnh5B1gJB1g+hCAsgAAbB1gOguAJhIAoAmhFBvqzACABh0BlgFggA6CaBvBQA7BDEHAaA0AABoAcgGBEACg5AAgYgZgLAIBKgFBBhWh9AggCAIBoBNgAANA9AJhwABBxBwAKAYAAALCJu9ADAYAFBLExBEAiBEgmBEgxBEANBENbhmgJh5gJBNgJgzgJBfgRAvAhpKhnAQg5AIpkARASA/ASKGAPBJhZBIAdBJAbARh7n4BIhshkAnAZDVgkBZAUg5AWh5AVB5AEgFAbBFA4BFACglA5hlAfAVAChVAtBVAig1AQh1ABBNB+gaAcgUA7AqAbAWgTg2gfB2gSB9A" +;
		"IBdA1BDh2BHAnBdAZg6Apgdh+h0g7lCBoAXh3BJBugahkBwBihkBkAsBYgtg/h7gNATBNgkhIgUhBg0gzI6BZgJRJglhvAvARgrAtBrALBbBFh2BxB2BZh9hFAcgOAcAdAcgCgcBzhcAVB7h9g5BlgxhohsArgDh5A8heA8BKh8hMB8gzB8APgPBmAdByAShQAVgUAWMMAaAThuATgpAWhNASgLARB3ASAwg+AsEwhiAoimBTBxhUAJhEAJhVhJBPhSBTBSBjgyhvBPlWAbgUgfhRhYBUAkAoBTAoBQgrgygfyhgTBShXBSgwhUh0hWgKhTguhQBphRAdhWAjhoBvg1gQA0g0A1AKACAehLgegzgrgmhcAmBahmB+A4AihzAhhLA6ArAFBrAfAbAyhbAPh2hYB7BzB8AOBDgwhTg+hnALAXB8hXBph3AxAPA/BPA2gLg7A8hxg+AlAXANB9ARB+A6B+h5gBgEBAg9BLhFBBAUghAWAhANhhhsgRgBARB" +;
		"vgjAUgiALhjBpBig8hjhHgSA1ASBqgvA4gkhzAmgkglhRgnB7hlh8BKA0hNgxhMBtg7guh5gjAzhPAtB/BJgBBmhhBvAdhDAighg7g2glAzBlg+AVhUAVAphVAHhqURAGhvh7g0AgAahvA2FigMg2BhhaBrg6AMAegTA6AVi5B6BlgehNgMgoA9gigMAZA/hBgMgGg+hfgbAvAegSgbApgegXhZhqBagzBYgogfgwB/Cwg7hgh/hDA/gTg5B+gNh/gXh6B8hbh8B/hEhfASg2h/BHh6BfhZBbhuAjB/g9h7BbBth0h/gbh2Ayh/hAh+h/gnh/Ajh3AwgnA/gigPBzBPBVBegigfA1h8BPhshr1HgNhvAxB/hoBdgGgBhZh3sUhMh0gmh1hLg9hIgchQB7BthugQh5hbgugth6BTgLi/ALBkocoPgCA/BQBfhmh+hXhzA/hzh+g7B1hbgch/heh4gvhEg3hsBfBOgbA2B9ArhrANhPTSKXAMg7A+Bhh4A" +;
		"fgZh/AVhdg/hzB7BTBsgfh5B+gdhZh/g7oQBogSh/BMrPhUhYBshvheBfA9AThph7ANhvhNgog/hZBNg/hdhvgIAxhjB2hHBhhOBtg1gPBCg3hZBDAmhDg0gfhNhAg8xMhgBiBvkig7BGgKBHBDBfBJhDBWhPg6BPxKAvBOBUhPB5hMhLhAh0mXBXAFhhB/A3hXBIhwB9AAgUBKg4AHA8AMgdgDhuB8hGghhcACgUAAgOA4AAA8AQABh2BQAegHA2BOB9BYhxhrBAA/hfg7hah4BCBrAxgABkAdAcK4BtgsAshdhZCSAVglgFgbASgeB3AQAPhNhIFJ2TBnhahchDBBh9gQBogABSAlhhBUgbBLANBvA+hbh+gAgWBzB5BXBWhFh/knAAADgLAkgiAggqAsAEhigrA1g2AKAqgKBfAZgdh9g2BbhugjhUgCgtgBALAtAYy+AWhEgmgAhFgSAaT4gAASgaATAahIgxACB9ghhGgfgmBoAEB4gIg/ANBag" +;
		"xAkhGBRA0gs3yBaBjTNAFBCBFBghCACAJAlhFh+AAAEgCAQgQg+h2g7Bbhdgdgdhdhxh7gGvUhbBHhah/B5ATAzh3BOtAWchuh3hOA9h3XvAfgbh0hfh8Brg6hegDB9BtnWDQByA4gkAGJIAZAEgcgFh8gvBJBSAdh0BLhqBLACAABHBtgwB2x8yngsg+gAByA2gAB8hxhvh6Byg+AFBp4nBShMgmBzANgAB8ACBZADARBLPVhQh7uKBOg/B7hqBUgphbA+AfALAygQYohXBZi2AThYhcAeBPhAuwhdgIBEgiB7B9YzhDA0AvAthIBAg8AeBfApAohKA/B2BRA+BYm/gGBCguAG5JhAhjZLAgAvgvhPg1gYgehmAbgLZQhDAjAjgjgOh5heAxzgABhx5Wgig0AfgQA/B13iBgBchVgrhXgVXFhbh9gKBdgugUAbXDgygsg+A/B+B8AqA6g6hahbBsANBmA/hCgmhegeSVgeADBwB+BKg+BnA0hwBxBih" +;
		"Fh7BxBxAxAIgGACAiAYAMAKA/BPgnguAMgPBbBngak8B+hsgqAVBag2hnBOAoBWAJhYgsA2AchvAHhIEMAmgmAmAkAjhHgPB6hUBkhSAqApgpjehsBcgZhAhuAYBOBdAuAXAwgpgPBMBwAOB5AjB+AeAYBwANACghgnBTgph3h0B0BMB4h91BgMAJhxAmgSByhshbajBaWPgTgCAYA4ACWGg3g/AyBfgzhnhPBxA1hrhXBshehChChRBQBQAgAeAFBNAtg7h3hHB7h7B7A9BOgHBDgggfhrBEBHA+h9gRB+68hPAfg3huAoAzbAAiAGBZA7B2htAqB7hYgxgwhVgehOVIFFBRgchLhhgAA7BfBthdB9hkhkgkg0hyBlAKhBg3ABAgAZBEg4AcBWAGYIhzgXAEgDA6gmhphwAtgRBYBmBwBwBQAThBA3gvBXn3hrBDBuBcA/BugnANgEBLhKhCgzhwYzhAAiARAohGgHgggJgMg9gMBrA4g+A6BoAUhch" +;
		"ug3BBgAhZAIBPBNApAFAFAFh6hZBZAZAWhMgkAkBEgyApb1BOAqBGBIBmATAShAhsgOgHBuhxh4gsBOhph2ArAfBmBLCWgigxgOhZhshtAMBrghhDgHgjgfrIB5ABBCBQAcAgV4gPhcgIBWhVhXgnhBApA4hVBXhngFhTLMgcgOhRgtAMh+hFh2h2gohnAsgshCg+rTAGgNhcgjgvwhAsA0BOA8gV4dBN8qBJh68rgUgoB2BdA6h5hTABhMgWAxhTg9A2guguhJBDB0g4B5hzBmsvhwgwgzgog4g4gDAmAygPBUhWAqANgbg3AmBAI2AOBzhDA8hmBKgxBIAFgAAJhbCuhGgKl7BwhwAmgcAKAigDh2gZAJArABANgDBegx5WgZADgwBGBEAkBegAg2AYg9gwKABtBmhPABBoBZAPgFhHBMAPhmB/B6bdhZhdhdhth1hh8lBGgIBEAUgOhEgKgVgrA0AngaAaBiBIgyB5A3gLgXBcAEhlJjAJgEAsAJA" +;
		"kgqqlhththThrhrhrBVBTAWhZhDhPhThIBWARg+Bn7Sg7A3gDhZAvAphEgegGgehuhpAJAyAJBZQ9gBggAAgAgwBDg3BCAAhkgTh0hkAAhLhthWhTgqAqhJBIAhhmAEgqgqgCgbBiB6h9BD8zhxhmABrOhfAqhMg7ghwiA4BSJNhMgqg4BEhkY8AjBphNATBaA6AtAwBYgEACBBiEBABIAggbg7gmh1AlglAlgahXBmhmB1BgBPBEAmAnwZgogyhVgmgABcgxsNBUAWAAB2B4AHBvA5h3B3ggAQBIAwg+hPhSgqBQCEA/gQBQA2htKUgfAJhFgkhkAYBtAIAMHpgbAasHg0gVAsBhhIgbBVAxAi/MgFBnAZBDBpB2ABgwADBWh3gchuBwBxhrhkB1BbhWAFAP5mBCghgTgnA8AgBV+OgqhSg2g1g3AnBOAcg+hNAYgbhHBRg8g6BjhjhjA2ADgdAdhTg/Aeg/hvA6h1h7A2gChLhKfjAdAxhahigYgMA" +;
		"GAshzg5AAaYh/AGAjh2AChABwBOgwXnBFh/ApAzgT2GBZBGvTBHAjBGhAF0wAgsDi1w4Nza2UkyBUYiA+maxm6g1K32ad3s2Qg8AKlRaBlKD1wKE+rCCjSObAK8iGsFOrC0vR0lTeDV8IUatHu6GO2jkAHgAwgfgC5TYrVsKk2Y3MBRcpBQkgmOUuznY2FqKy0WSymXeX0ASwel0olHI5AwJ1mx0gL1mTXU6XS8Vpdj4hyg8BemDYZHqMFOUyYZTWP1WJ1CN1MTR6gH4cmysjKr2mlCqn3GuR+jDoJHGWlKkU+ajXpgg1yq2FQDFigSEBROwkCKnQwGwjliIU45x2HGyIB4dnM0UmUC+PhaLxefwOdia5zMT3+8wwYCQmEwdi4vQKqHKvigKHoKnc9Rs7GMDUOhhGOnAYjWkzKKRGyxsDUA01QCw0QCOF0uh0OkfRUMMbyRNwTBiCYZwKMIYyZAUkSlBYkxsCYAAHG4qwCBwMQfBYlxsNgsDhLEgwHA8" +;
		"PiPNg1ygP4uywIgMSwK4zSQG46BnFAATDJcL3IHM6DQBsPR3O83j/AsJyGH8w4ZJY5TsN8EAdFojTwJ0AAoA4MgATIMDqAcrQPMEwTDBgVy0LYtiuK8qyrFs6QtCocnLCs8wAGAChOGM+CZJ0HAaoQHQYocBiaHtJT3LEfgCLYIgQNYgw4IQiSaBcAABBEAB/DAXS4HgPAgLUSCzGkPjkIATyXPQoCeNYfR6Do7QGI8Zj+CAHiyCY2SkIQTSSCIyDQCkpDBJQJinMMuAUPgOxGOcpA/AkoTzJwyiYFMiDwJEsShFAURFCwJRVFceQXKQIS8P8STlBgLggAcrAQCQATjIgZA0JgVSxL0OAmKI6CpEc4SuOkeBeOwMRnLQuQhOApDJAImYmD44BPIgAzFMYiR3LcQw4JwqhQAknAMFAxwEEwJwUO4ljCHgmxzNwNQ3EU3ScLYEAACocDePwZgCLI+yFN8jg7FEQTtKMcwrAAOhgHw6SQI4OCmJgjDmNAjj" +;
		"5Gw+wbHkkTpEw7gpFgIAA2sABJEUThEK4QhgIJAQ==`)"))
			oItems:SetProperty("Caption",h,1,oItems:Caption(h,0))
			oItems:SetProperty("CaptionFormat",h,1,1/*exHTML*/)
			oItems:SetProperty("CellHAlignment",h,1,2/*RightAlignment*/)
			oItems:SetProperty("CellImage",h,1,oItems:CellImage(h,0))
			oItems:SetProperty("CellImages",h,1,"2,1")
			oItems:SetProperty("CellPicture",h,1,oItems:CellPicture(h,0))
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
559
ImageSize property on 32 (specifies the size of control' icons/images/check-boxes/radio-buttons)

PROCEDURE OnAddColumn(oList,Column)
	/*Column.Def(48) = 2*/
	/*Column.Def(49) = 2*/

RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oColumn,oColumn1,oColumn2,oColumn3
	LOCAL oItems
	LOCAL oList
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:AddColumn := {|Column| OnAddColumn(oList,Column)} /*Fired after a new column is added.*/

		oList:BeginUpdate()
		oList:ImageSize := 32
		oList:DefaultItemHeight := 36
		oList:HeaderHeight := oList:DefaultItemHeight()
		oList:SortBarHeight := oList:DefaultItemHeight()
		oList:Font():Size := 16
		oList:FilterBarFont():Size := oList:Font():Size()
		oList:ToolTipFont():Size := oList:Font():Size()
		oList:Images("gBJJgBAIDAAEg4AEEKAD/hz/EMNh8TIRNGwAjEZAEXjAojKAjMLjABhkaABAk0plUrlktl0vmExmUzmk1m03nE5nU7nk9miAoE+oVDolFo1HpFJpU5h8Sf9OqFNqUOqNUqdPq9VrFWrlbr1QpdhAFAkFis1ntFptVrtkrpszrNvmVxqk3uVtm1kmF3sdBvF/wGBmV+j9BYGHwWJulfxdax2NyFdx2JlV6l9Nw7AAGZymdz2Cy2GxErvWcz9ivlwyV21cuxugwktzGIzmvwtl0+53U5y0a0Wazmmyu/3dCyOMyXHx/J5nIr9q3uyqnBxFN3G46ma4vb7mD2Ng4nZze00fDkHC7t7us2rOX5tguetpHRlmz4HVqnXk1PjHO+CMPo9MBMC+j2vC8j7wS8cFNI4kBo05UIvfCT/NsnsApU+0Fqg/T+oy/kPxC0sEQfErKQK96+w28UWRI8UGvO8sTLS9r2PWmsMJTDTask3CsIbIEQRA3shOXEEAO/GclJ9" +;
		"FEKrrA8FRbKMXRIlb0JxCkjS1LMswhCcvuel0cv26cSMa8Ufx+2sQwhEUoSXOCjSbLcnxjKc7sdKUVyq28NtVI71P9P7JxtQEapjQ6fzfM8zPfNE2PhIsLL63E40slk5y7N89LcyU9SvMb3SdUc6VJLj5VLVLfO/PS9KzNFHUa/0XyBD0dxlS9cxhMlTRSoNXypPErWDPyfNS+MwprRNO0FD8wVVZ1AI08URwVRjtJ1WCn21QkkUrXVLVPQS/XIkFgTxT9iONZ9xVTdq+L1eKg3kkF6Upe68XtfV51/MtrVjBlwYFL1ev8y1/P6/lyzzYl02wntj0RVFmS1Qa+M5as93QxEUW9e993rfmQ2+vy65M/mL1lhl/2bj2ByVduMtNhCJT9hdz41nN14Ld12Z9UjfI/oUAaGseiw6+uFLLhcVabJOS5RqOE0BHlZ5VnEr5fOMs3st+aa/bbRzrJGV51Y0b0DbqaWXZD90hIsPbjWu52+6Wyadpe66hhO+P/Xi" +;
		"oW5rD8ZbrUZuVg6n1dsE/cXmewu1m9PVwnd35/nueXho/NaJzmjc61W76esuT77eG8pTquy9TwWH8LEzG8RDfFalx3Gcfvna9rvG/cptGLd9tuI6TZOP5Fiqi99vea+X4VRcBq/JZZtVQ9cwSs5lsXE372+a9z7PbfB3VVqHyvMctLto8uob6eV0m/cD6MN2v+T33t6sBut42vdv2bJ8a997x2maFJfK+qArbGJPEKE+1qTflMsIdW/GCJX17KcT6/czr/X+u1g29B7j/4BQfWkkx4zIHisjhPCmE0K4SwtXM+d4BvHRwNZOoBph9IJvPek9d40FoMJxf691jj2ywQQcHEWET4XJwkTszlVqm2GokewxtBT1DpQjRxDN0rUVDNKdC3lb6tzNOwh6upMSSYfv4YBCl/bsn9PxiFCEo7SI6Obc9HeOrnY8x4jtHtdpN4GRbaorhsbu18Pph5CiHymI0RpSXGJ/z2oUOxYxG858AyiI+bfJtuTcG5yelBJy" +;
		"T8okhqFd4a5yxL0rvulYtKCsZiWxWkc1s1cRoxxwhA31DLE0mR9l9HqX8fJgTDmFMVH0MIsRzVYnwnMi1dyzmhLt2kS2pxIiU62Wj5ptQGlSYFakLonTUJNLKaM5WzlffEkuFkk5wTrhVO2eE7G6lJhxFFYUZ55zmn0WuBCD4pzhirFCKkbomsOoIYmZx5p90LoYWGPdD5g0QmJRKYxbZ6zYoVQ2jVGylSak7KSkFH6RSjpHKFuU+YMyNo5SulkC6I0vonTCitMXPoEpVS2H5FQfEqp2R1opIgAEkJISYARTCukOhmPNI5Ex/wzGHUsicMwA1LHgQ90Y/KpoQHAD+pB/R4NzIaMAB9Xaw1gqaAOsh/A/ptIkWUfhGK1kZH8RgH5GqvgArqRmt4AAPrTroRofBGADkqr6Rmu4D7CEaHARiwpJrEEZsXXwlVjyMWRsaRqwdkLGNBABZmytmyMnaINZqyVpLR2ftKAAAdd6h2osbaskdiq4EZtgSmyNcbVW" +;
		"RJNXe3AA7REar3b0stlAAXBtoRmvJGLjEYAHUWsFcwCD/rnaop9aEICMAPdK5hT6xpeuzdOtAgKuJeGfdq6ggEbkTvAP+p9UCHXrvKkcgIA==")
		oAppearance := oList:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABfICg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EMRwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsOatVqjG5sYjcGC3La9cz3Pq/bpuDCbMxuaK1TrYXr1TTrcofBDldAxXRKDxRDWVhLnYOw9i6XxzjuXprCaOoKB6EwbiCZZCGOdZYlcT4xHmbhMnwNxtn+G5bmqdZ7n4Pw/i+X5zm+dQ9g4CAFjsfAJheOI8HsDoWDWTB/lwSAQkmA5PEgRYoDyDwYFY" +;
		"FoFmGCBmBqBphDgRJ0gOTIYBGRB/lyRh0iSCZbjYWJzgWDwIjYLoLmMCJGDKDJjBgWgqG6YhyhGHRzA2aJ1mCABOAiOJvhCZBJBYRoRmSCQmEqEQimkAZgg8TZnDCV4UkmCUmBKZYJGYWoWCUUhiFMNZckNUh2GENoaGaGZmgmJhqhqZpGGIEx2GYIxSGGGJdggWJth2Z4JmYeoemeSZ2H6H4hGmQhihyTRHGYLg7CiCgmgqIpokoNoOiOaJ4jqAochqaZGgaCxpAoZoaiaaJqEmWIcGgShcnCJwqEqFoR3YOoFlgchflqNouiuawHmWSYqGkWZQhcatzmaOoumuSp2j6L5bBaKo0GQKRnGGCxqiyCwmkqMpsksNpOGUGI7A0ew1G0Rxlg0PptgsZuDG2Sx2l6N5tnYNZZjUDRXDCVo5l2FoymqOpukuNpujubwLjmWY5k0ZwxkaFxYlWdp6j6b5Lnafo/nABQdg2FxcUsY5BkmXAkmeQpckwNRrkKTh" +;
		"8CSHZBk4NwyC4KxxgMDwakOMZDn8GgwnGAo2C4cwthMcwmCcMoHBMHRehwTIghySYNksZwcH4HBMEsHx5hyPItiweYxnwSZEH4Mozn0fR+DMAo7EYJ50gkdZelKdNql2UgJn0GIukwH4HicQRai2GI4mSVpNl0dZGledgNgcYpYDWUx3FsOQi5YV5anaTY3G6W53A2RxylydxFjiaxEFCCgBBAQ==")
			oAppearance:Add(2,"gBFLBCJwBAEHhEJAAEhABcoFg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EMRwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsLpOS5LNKsaxmWLYdhFdTxQi6LpvfA8BwXC6JY7heRYRbFbYxRjGNi1TS7G4nGKd5WGuL4UHwI4VkaYxii8V4pgQMgVBQdQ5iCTYGi8T4vlWbJ3nuPg+l+H5AlSCg6ByPBoE8Ap3jqYxhBido5g0OgOGOGI4CsSpCCAcgcAuEokiEN5NCKfJ9DyTRjnS" +;
		"cg1CEYxOBmBpPCgagdgcIZoHoGIFA4AxQkCAxKAgKBwgGSpIBCZhjF2E5UnQPQMiMCJBCIBwxkSQgsgo+JtDKT4ziiQw+k6EwAnsOgLnkHI+yCQ4iEuE4klkPhShEJBpAoPgymOMoaDgHBjFMBgyD0HYTiCZSZhIIIGC4ChiHSew5kwM5omILZPiOBI0hwZw5kodIdA+M4Uj4PxOmMSJ9DuTQzmyZgviceZagaHVfj4awwmaAh2GUIYmCOEZZDaDRDFGdwcg4EwyHMN4LBOaJbCoaZqgKH8qkMfIyD8DozDyfA7A0Coui0OpMmOZJdCsahKg6NooioChwmEMxLEoXJbDUTRXGSUgykyMgQG0GpPHMdI3D4TRCgSeQ0kmaw+lGNAtCOZJVCiT5DhyRQwAqMg0EoDBBGEGAsASC5yiSCw+k4Mp6lWNQuksTpRjMTxDGzJwGmGMpDDKXYTECSAxl6Q5olkK4PgMMIVkASRMBMBgzEkaZEjsNALhIZA6AeQB" +;
		"gk0ZJEgAAJ0CIAgODMNIsD6DRih9uYwFyAwfCUb5ijmbI+gwdxkk8MZMGeMpPCkDxzBiC5MHMPJLDSSROFMLIoBEQogEMFJPnENYQGgE4DCOaJfC7tYkhGTQ0kyWwykuXpMiyRpKjKR4wngM4JmOWJACCdYtHMWw+Eych4nINYLAEYA8AgdAEEsQZajaQoog4GxPiMVIolcdxNG8XZVkmNoRwWRVBlFeFEeAZQJgnFiHgHwcAhjhHgGMSI5xki2CyA4EQsA3i0HkBsLwKRFgAHcPkHopBJBcBeDUYI7xyDOHqKkWo2hLCsDIBIY4qQ5A8DoMMYwOAqCSBGKgU4yB2iDBwIgB4hxQgAAWNgBoAgsBdEcBUQ4sQ9A/HqD0JI8RpBzH2OYVgahLBHFiJQJweQiDhDUE4SAARQAzFsG0EQwA6AOWSBkFgVAIBCHeGERQFQiCQHeFkC4vkiB8DyB4F4QxVDvGMNEOQexMjlBeOAKQiQLgfDA7QEAaRiBdEkH8" +;
		"TI7AZiFBAGYBIABWjYBiGACioQ4C1A+AMMgWhfgxHgPsT4URIB0COKgPgjRwiAB8AYUArxBgCF6J4GY5hrAOCAPAAoGRRCsCIMEXATXfgAF8BMJwURuEQDgD4Q4OBoAeHGFgLIwQrC2D0JoSQ+QvhrHoSgQI8AbDFGID8C4Ah6BQAQAASACwgCYCMAUMARAvCKAiAMCAokeCKBEOAKgCBoDaHuMsEAqwJDiACDURg8R6gPCyDofYWAhgoDIJ4ZAuhoiGAYGgRoQw/A0GMMga4GwxiEDeIYYInATCDBQAoBAwAoDlA0KMBoVRGiDGwDQUYIRsgaGGDgM4LAwDWB8EcIA1APhjEgGQVwgRIgjFIIQHokgZA+CSEkLIKQSjHAwMsCwDAsAEB2ABTIwRwD6A8CMToSxkAxE4HYIw+BsgbBEDAHYBwojCBoIYFgXSjABE4MsHIbQWhlGILQS4UhvBdAUKEEwHgxDAAABQQQUAhgKHiDwE4JS4A7BGLQZwCR4g" +;
		"aBEMUYAqgKApHgGwVAIRNgvBMMQXImwZDtE4I8UIyAZCDCAE8AwrhgAdEEBACQLRCg4FEB4AYtA7CdEiPQMoJAMDNCkOMCAXAFDhH0D0Q4EgfAaGSK4NYzRUj9BuCgAgswOBjB4Fqpw8B2ADAwE4A4Qx2DAE6JIaQPQGhAGKBcIQ5B5gHByKIFARwADbAyKUfgdBKBBGyEcVIAB/ijHoIoSA0gdBNl+OATYERZgBGSDYWIWAUCEGKA4FAhR7CIBtYQGYZg4CMAiKEcAOwkBjHWE8Z4lQgA+DkBoTohwwCeAaMEEgBQCCABgHMRwQRhhMEWFQd4HwZgwDqFESItAbAGEANCpINAzANCCJkK4ah+heFYBURwsQrS2CsMYMoWGBhYDWI0EInQgiApXaOVI1QFDsC8MUNoMBMA1HMJga4eh+BeAWOgNNowGjYzCGAAwax+iJBeBVT4gxoBIAGFsJFBxgBiGKFkKQ7g5DFFQEcAo4AzDDACKEQQLgCiJDYB0M" +;
		"gRBCCQAgQEA==")
			oAppearance:Add(3,"gBFLBCJwBAEHhEJAAEhABQ4Fg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EMRwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsLpOS5LNKsaxmWLYdhFdTxQi6LpvfA8BwXC6JY7heRYRbFbYxRjGNi1TS7G4nGKd5WGuL4UHwI4VkaYxii8V4pgQMgVBQdQ5iCTYGi8T4vlWbJ3nuPg+l+H5AlSCg6ByPBoE8Ap3jqYxhBido5g0OgOGOGI4CsSpCCAcgcAuEosiYN5NHMOJ+D4TpTnS" +;
		"eQ7CEY4uBmBpPhgagdgcIZoHibIEyUBJZDQIJShoCgcCAcoyAQOYYlcZJ1D0DxDCiQgwEiAZMHEMJLFKPJ9D2DoDnidQ4k+Y5QmKEROBkIhKD0JIZDIS4TGUCQuEeEJjnOIg8CuY4RkYNgwGMM5RllGpThDRYIGKZIpCkJFUH0PINyWcQ3CaaZCG+HBnEOTJhD8Tx4GoeQ/GcaZSHOH5nCmQhshoZhihYYwhiYA4RlkNoNEMUZ3ByDjwEsPxOnMaJ9DuDR6F6GYmCmKh0nANtMioP4Gg8aoSiIO5NhodociqaY6GaFYkEyOg8lsNRNTaUgykyMgQG0GpPiONJbD8DpDEyfA6k0KwOkWMQsGsAJU0SagwkoJQJDIPISCQCJTGSUwyGaM4KkmMgtksHpFjAZ4TGCBAbgaSpcksdhNAMIJHHsD5TjSWWMAMOpwjyLwbk6cAz0KRJiDkDYzESCwiggcgcgYIQwCIEINCMCITj6TVxkMXp2j0cQLlCTo7E2F4" +;
		"ymkMZdhMPJHDGHpLAyVg+k4UwrCCSIyByDJ8DuDY8CiWY0kiXAXC6QJwFKGIjCeJpjgyezjlyDw6klHx5myRoMGwZwbkcToTEiew4kwbQfEmUgPkOKJUD4DpTHSHQmgkXI/ASTA1g0XIEDMTBimyfI7jSLYHEiUoPk0Fw/kadAsHGao8A0A5smEMJ2mNyg5gzJZwDgCpChyIZVyIZwFCMJEPASRkBqE+IcHInRcDxA2H4bIsx0AtDsIBpwZwYicD6BscwDwUBgHCIYaIfgtiVH2O4WgUwJjEFeAEQA7y4hMCiBMS4aRdB9A4CYE4LxljyBMHcDItBxinDCLcTYmgejBFQ9UTg9gFBOEmAQTI7A4iZGMGkQAWQ7jYA2HIL8BRAjDG4HcCwARbjZHiNoDw1nLDnGyNINQ+wjCpBMEgcovQUgICQJEcgWRuBvAyJ4d4ugpCUAINcHogxIgnDiM4N4axzD3F2JMTY/hRqYF6FsWIxhYAGGoAALQYgYirBwBE" +;
		"BwpAjBEAAIEIYsA2gOHCMAGgXAACIDmMITAUgFABH0D0I4WwvhNFGMAOIvxRD2GKNcMA8gjAPDCPwBogRPAxA8PgRwZRICYDED8RAXQEghEAN8DIgwIBdB4JYWwMgtiQHoFQKAiRFguFKGwGQhglDsEOVwEQQRkCKBwOIHgSREDRBYHEXQcQdD7GIGARQHRxipBrMobgewDCUCADsEYWAzgMHKHQDQxxsDzA6EMfAeQHB4GQDkUYPA0iECiKoGgRhcDdA2GMQA8AOCjDSPgHI4QnApAKBICwHg1A+BcAwcYsgbjGGQNkCIgRsA6EcBEWANADjsB0B8YYzQQDIGSBcEYZBCCPEkFIHQSgkgZAwG4IwBAbAYGGAgL4Ch4g8BOCQAA2KKC0GcAke4AAXAFCoHkDw4xbBFEcJkE4JRSiEFeJYKQVRMgJHODwX4xAgC/AsIIZAeAHDRG0HYI40RKCLEGDUI4jAghwBWIceA+whCpHMFYZYOQxglDMHMBQGxYj" +;
		"VHiAoBIPgfgHGwPsHYJRSB6A0IERQLhCjJHMA4OQoAoCOACLYGYSx8DpBQIMWQdRnDRH+DsE4fB3CeAmM67kAAXBFEIDYDI7wLBtEoEIfYNwjiUGGJQYQMAjCHEAO0C4zxW29CoCgfIxR9AKA6J8BgUAIhDGMIoJ40hqgwCgKETgnBhhqCGI0AIqgZhGDANQDIlBDCRGkCoJISR0g1BSKQOgfAzBRG0DYHARh4DeDAOwANuw8ApCKKkYg/RPhjBsH0J4yg5hPGWN0GwFBHQBFaDoQIURljFAoB4GgzRVzbBECQFQRQoguHGHANwDRdCKy8CgSIGwhhoDYJYYI1giBICSAEgI=")
			oAppearance:Add(4,"gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHLUXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBUrGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDs" +;
		"YYDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVmWCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVoWiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiSe41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbh" +;
		"FCcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==")
		oList:SetProperty("BackColorHeader",0x4c6c6c6)
		oList:SetProperty("SelBackColor",0x4000000)
		oList:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,1 } )  , .F. ))
		oList:SetProperty("CheckImage",0/*Unchecked*/,16777216)
		oList:SetProperty("CheckImage",1/*Checked*/,33554432)
		oList:SetProperty("CheckImage",2/*PartialChecked*/,50331648)
		oList:SetProperty("Background",20/*exSelBackColorFilter*/,oList:SelBackColor())
		oList:SetProperty("Background",21/*exSelForeColorFilter*/,oList:SelForeColor())
		oList:SetProperty("Background",26/*exBackColorFilter*/,oList:BackColor())
		oList:SetProperty("Background",27/*exForeColorFilter*/,oList:ForeColor())
		oList:SetProperty("Background",32/*exCursorHoverColumn*/,-1)
		oList:SetProperty("Background",0/*exHeaderFilterBarButton*/,0x4000000)
		oList:SetProperty("Background",41/*exHeaderFilterBarActive*/,0x4010101)
		oList:SetProperty("Background",1/*exFooterFilterBarButton*/,0x40000ff)
		oList:HeaderAppearance := 4/*Etched*/
		oList:ShowFocusRect := .F.
		oList:SortBarVisible := .T.
		oList:SetProperty("BackColorSortBar",oList:BackColor())
		oList:SetProperty("BackColorLevelHeader",oList:BackColor())
		oList:FilterBarDropDownHeight := 1
		oColumn := oList:Columns():Add("Check")
			oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn:Width := 128
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterList := 256/*exShowCheckBox*/
		oColumn1 := oList:Columns():Add("Pos")
			oColumn1:FormatColumn := "1 pos ``"
			oColumn1:AllowSort := .F.
			oColumn1:Width := 48
			oColumn1:AllowSizing := .F.
			oColumn1:Alignment := 1/*CenterAlignment*/
			oColumn1:HeaderAlignment := 1/*CenterAlignment*/
		oColumn2 := oList:Columns():Add("Image")
			oColumn2:DisplayFilterButton := .T.
			oColumn2:FilterList := 8480/*exShowExclude+exShowCheckBox+exSortItemsAsc*/
			oColumn2:FilterType := 10/*exImage*/
			oColumn2:Width := 128
			oColumn2:HeaderImage := 1
		oColumn3 := oList:Columns():Add("Images")
			oColumn3:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn3:Width := 196
			oColumn3:HTMLCaption := "<img>1</img><img>2</img><img>3</img> Images"
		oList:Columns:Item("Pos"):Position := 3
		oItems := oList:Items()
			h := oItems:Add("Child A")
			oItems:SetProperty("CellImage",h,2,1)
			oItems:SetProperty("CellImages",h,3,"1,2,3")
			oItems:SetProperty("Caption",h,3,"123")
			h := oItems:Add("Child B")
			oItems:SetProperty("CellState",h,0,1)
			oItems:SetProperty("CellImage",h,2,3)
			oItems:SetProperty("CellImages",h,3,"2,3,1")
			oItems:SetProperty("Caption",h,3,"231")
			oItems:SetProperty("SelectItem",h,.T.)
			h := oItems:Add("Child C")
			oItems:SetProperty("CellImage",h,2,2)
			oItems:SetProperty("CellState",h,3,1)
			oItems:SetProperty("Caption",h,3,"312")
			oItems:SetProperty("CellImages",h,3,"3,1,2")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
558
ImageSize property on 16 (default) (specifies the size of control' icons/images/check-boxes/radio-buttons)

PROCEDURE OnAddColumn(oList,Column)
	/*Column.Def(48) = 2*/
	/*Column.Def(49) = 2*/

RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oColumn,oColumn1,oColumn2,oColumn3
	LOCAL oItems
	LOCAL oList
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:AddColumn := {|Column| OnAddColumn(oList,Column)} /*Fired after a new column is added.*/

		oList:BeginUpdate()
		oList:ImageSize := 16
		oList:Images("gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOqdSqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVttmp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8acvQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtT" +;
		"GsbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgPnwD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg==")
		oAppearance := oList:VisualAppearance()
			oAppearance:Add(4,"gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHLUXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBUrGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDs" +;
		"YYDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVmWCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVoWiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiSe41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbh" +;
		"FCcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==")
		oList:SetProperty("BackColorHeader",0x4c6c6c6)
		oList:SetProperty("SelBackColor",0x4000000)
		oList:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,1 } )  , .F. ))
		oList:SetProperty("Background",20/*exSelBackColorFilter*/,oList:SelBackColor())
		oList:SetProperty("Background",21/*exSelForeColorFilter*/,oList:SelForeColor())
		oList:SetProperty("Background",26/*exBackColorFilter*/,oList:BackColor())
		oList:SetProperty("Background",27/*exForeColorFilter*/,oList:ForeColor())
		oList:SetProperty("Background",32/*exCursorHoverColumn*/,-1)
		oList:SetProperty("Background",0/*exHeaderFilterBarButton*/,0x4000000)
		oList:SetProperty("Background",41/*exHeaderFilterBarActive*/,0x4010101)
		oList:SetProperty("Background",1/*exFooterFilterBarButton*/,0x40000ff)
		oList:HeaderAppearance := 4/*Etched*/
		oList:ShowFocusRect := .F.
		oList:SortBarVisible := .T.
		oList:SetProperty("BackColorSortBar",oList:BackColor())
		oList:SetProperty("BackColorLevelHeader",oList:BackColor())
		oList:FilterBarDropDownHeight := 1
		oColumn := oList:Columns():Add("Check")
			oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn:Width := 128
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterList := 256/*exShowCheckBox*/
		oColumn1 := oList:Columns():Add("Pos")
			oColumn1:FormatColumn := "1 pos ``"
			oColumn1:AllowSort := .F.
			oColumn1:Width := 48
			oColumn1:AllowSizing := .F.
			oColumn1:Alignment := 1/*CenterAlignment*/
			oColumn1:HeaderAlignment := 1/*CenterAlignment*/
		oColumn2 := oList:Columns():Add("Image")
			oColumn2:DisplayFilterButton := .T.
			oColumn2:FilterList := 8480/*exShowExclude+exShowCheckBox+exSortItemsAsc*/
			oColumn2:FilterType := 10/*exImage*/
			oColumn2:Width := 128
			oColumn2:HeaderImage := 1
		oColumn3 := oList:Columns():Add("Images")
			oColumn3:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn3:Width := 196
			oColumn3:HTMLCaption := "<img>1</img><img>2</img><img>3</img> Images"
		oList:Columns:Item("Pos"):Position := 3
		oItems := oList:Items()
			h := oItems:Add("Child A")
			oItems:SetProperty("CellImage",h,2,1)
			oItems:SetProperty("CellImages",h,3,"1,2,3")
			oItems:SetProperty("Caption",h,3,"123")
			h := oItems:Add("Child B")
			oItems:SetProperty("CellState",h,0,1)
			oItems:SetProperty("CellImage",h,2,3)
			oItems:SetProperty("CellImages",h,3,"2,3,1")
			oItems:SetProperty("Caption",h,3,"231")
			oItems:SetProperty("SelectItem",h,.T.)
			h := oItems:Add("Child C")
			oItems:SetProperty("CellImage",h,2,2)
			oItems:SetProperty("CellState",h,3,1)
			oItems:SetProperty("Caption",h,3,"312")
			oItems:SetProperty("CellImages",h,3,"3,1,2")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
557
The user clicks the drop-down filter, select a value and the control's list filters for the selected item(s). Is there a way for when the user then goes to the next column to add another filter and the drop down arrow is clicked for the list of values they can filter by to be limited to what is being displayed in the list due to the first filter they set

PROCEDURE OnAddColumn(oList,Column)

RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oList
	LOCAL rs

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:AddColumn := {|Column| OnAddColumn(oList,Column)} /*Fired after a new column is added.*/

		oList:BeginUpdate()
		oList:ColumnAutoResize := .F.
		rs := CreateObject("ADOR.Recordset")
			rs:Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\sample.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/)
		oList:DataSource := rs
		oList:Columns:Item("ShipVia"):Position := 2
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
556
Is it possible to set from code, a column sort without being inserted in the sortbar

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oList
	LOCAL rs

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:ColumnAutoResize := .F.
		rs := CreateObject("ADOR.Recordset")
			rs:Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB",3/*adOpenStatic*/,3/*adLockOptimistic*/)
		oList:DataSource := rs
		oList:SortBarVisible := .T.
		oList:Layout := "singlesort=" + CHR(34) + "C1:1" + CHR(34) + ""
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
555
Is it possible to highligth the match while a filter is applied

PROCEDURE OnAddColumn(oList,Column)
	/*Column.Def(17) = 1*/

RETURN

PROCEDURE OnFilterChange(oList)
	LOCAL format
	format := oList:FormatABC("`value replace '` + value + `' with '<bgcolor 000000><fgcolor FFFFFF>` + value  + `</fgcolor></bgcolor>'`",oList:FilterBarPromptPattern())
	oList:Columns:Item(0):FormatColumn := Transform(format,"")
	oList:Columns:Item(1):FormatColumn := Transform(format,"")
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:AddColumn := {|Column| OnAddColumn(oList,Column)} /*Fired after a new column is added.*/
		oList:FilterChange := {|| OnFilterChange(oList)} /*Occurs when filter was changed.*/

		oList:BeginUpdate()
		oList:DrawGridLines := 2/*exVLines*/
		oList:HeaderAppearance := 4/*Etched*/
		oList:Columns():Add("Col 1")
		oList:Columns():Add("Col 2")
		oItems := oList:Items()
			oItems:SetProperty("Caption",oItems:Add("219 Smith"),1,"Ignacio 1234")
			oItems:SetProperty("Caption",oItems:Add("1666 County Road 309A"),1,"897 Manassa")
			oItems:SetProperty("Caption",oItems:Add("38 Lone Pine"),1,"Durango 11")
			oItems:SetProperty("Caption",oItems:Add("612 Jachim Street"),1,"Lamar 222")
		oList:FilterBarPromptPattern := "1"
		oList:FilterBarPromptVisible := 2067/*exFilterBarCompact+exFilterBarSingleLine+exFilterBarVisible+exFilterBarPromptVisible*/
		oList:FilterBarPromptType := 257/*exFilterPromptCaseSensitive+exFilterPromptContainsAll*/
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
554
Is it possible to highlight the column's header once a filter is applied

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oColumn
	LOCAL oColumns
	LOCAL oItems
	LOCAL oList
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oAppearance := oList:VisualAppearance()
			oAppearance:Add(2,"gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgANJ0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8YNYuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4hhKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mg" +;
		"bhOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhWBMJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI=")
			oAppearance:Add(1,"CP:2 -8 -4 2 4")
		oList:SetProperty("Background",0/*exHeaderFilterBarButton*/,0x1fefefe)
		oList:SetProperty("Background",41/*exHeaderFilterBarActive*/,0x1010101)
		oList:SetProperty("Background",32/*exCursorHoverColumn*/,-1)
		oList:HeaderHeight := 28
		oList:SetProperty("BackColorHeader",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oList:DrawGridLines := -1/*exAllLines*/
		oList:HeaderVisible := .T.
		oColumns := oList:Columns()
			oColumns:Add("C1"):DisplayFilterButton := .T.
			oColumn := oColumns:Add("C2")
				oColumn:DisplayFilterButton := .T.
				oColumn:Filter := "Item 2"
				oColumn:FilterType := 240/*exFilter*/
			oColumns:Add("C3"):DisplayFilterButton := .T.
		oItems := oList:Items()
			h := oItems:Add("Item 1")
			oItems:SetProperty("Caption",h,1,"Item 2")
			oItems:SetProperty("Caption",h,2,"Item 3")
			h := oItems:Add("Item 4")
			oItems:SetProperty("Caption",h,1,"Item 5")
			oItems:SetProperty("Caption",h,2,"Item 6")
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
553
Is it possible to show the filterbar on top of the rows

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:FilterBarPromptVisible := 8192/*exFilterBarTop*/
		oList:HeaderHeight := 24
		oList:FilterBarHeight := oList:HeaderHeight()
		oList:HeaderAppearance := 1/*Flat*/
		oList:DrawGridLines := -1/*exAllLines*/
		oList:GridLineStyle := 512/*exGridLinesGeometric*/
		oColumn := oList:Columns():Add("Column")
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterType := 3/*exPattern*/
			oColumn:Filter := "B*"
		oColumn1 := oList:Columns():Add("Index")
			oColumn1:FormatColumn := "1 index ``"
			oColumn1:Position := 0
			oColumn1:Width := 48
			oColumn1:AllowSizing := .F.
			oColumn1:SortType := 1/*SortNumeric*/
			oColumn1:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
		oItems := oList:Items()
			oItems:Add("A.1")
			oItems:Add("A.2")
			oItems:Add("B.1")
			oItems:Add("B.2")
			oItems:Add("B.3")
			oItems:Add("C")
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
552
Is there anyway to stop the header changing colour when the mouse hovers/moves across the column header (non-clickable)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oColumns
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:HeaderAppearance := 4/*Etched*/
		oColumns := oList:Columns()
			oColumns:Add("Item")
			oColumn := oColumns:Add("Pos")
				oColumn:Position := 0
				oColumn:Width := 32
				oColumn:AllowSizing := .F.
				oColumn:FormatColumn := "1 index ``"
				oColumn:AllowSort := .F.
				oColumn:AllowDragging := .F.
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
551
Is there anyway to stop the header changing colour when the mouse hovers/moves across the column header

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oColumns
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:HeaderAppearance := 4/*Etched*/
		oList:SetProperty("Background",32/*exCursorHoverColumn*/,-1)
		oColumns := oList:Columns()
			oColumns:Add("Item")
			oColumn := oColumns:Add("Pos")
				oColumn:Position := 0
				oColumn:Width := 32
				oColumn:AllowSizing := .F.
				oColumn:FormatColumn := "1 index ``"
				oColumn:AllowSort := .F.
				oColumn:AllowDragging := .F.
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
550
How do I get notified once the user clicks the cell's button

PROCEDURE OnCellButtonClick(oList,ItemIndex,ColIndex)
	LOCAL oItems
	oItems := oList:Items()
		DevOut( Transform(oItems:Caption(ItemIndex,0),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:CellButtonClick := {|ItemIndex,ColIndex| OnCellButtonClick(oList,ItemIndex,ColIndex)} /*Fired after the user clicks the cell's button.*/

		oList:BeginUpdate()
		oList:Columns():Add("Item")
		oColumn := oList:Columns():Add("...")
			oColumn:SetProperty("Def",2/*exCellHasButton*/,.T.)
			oColumn:Alignment := 1/*CenterAlignment*/
			oColumn:HeaderAlignment := 1/*CenterAlignment*/
			oColumn:FormatColumn := "` ... `"
			oColumn:Width := 32
			oColumn:AllowSizing := .F.
			oColumn:Position := 0
		oList:SelBackMode := 1/*exTransparent*/
		oItems := oList:Items()
			oItems:Add("Item 1")
			oItems:Add("Item 2")
			oItems:Add("Item 3")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
549
How do I set an extra data for each item
PROCEDURE OnMouseMove(oList,Button,Shift,X,Y)
	LOCAL i
	i := oList:ItemFromPoint(-1,-1,c,hit)
	DevOut( Transform(i,"") )
	DevOut( Transform(oList:Items:ItemData(i),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oList,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/

		oList:BeginUpdate()
		oList:ColumnAutoResize := .T.
		oList:Columns():Add("Default")
		oItems := oList:Items()
			oItems:SetProperty("ItemData",oItems:Add("method"),"your extra data of method")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
548
I do not like to specify the item padding for every column I add. The question is how can I do it automatically

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oColumns
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:AttachTemplate("handle AddColumn(Column){Column{Def(48)=8;Def(49)=8;AllowDragging=False;AllowSizing = True}}")
		oList:HeaderAppearance := 4/*Etched*/
		oList:DrawGridLines := -1/*exAllLines*/
		oList:GridLineStyle := 32/*exGridLinesVSolid*/
		oColumns := oList:Columns()
			oColumns:Add("Item")
			oColumn := oColumns:Add("Pos")
				oColumn:Position := 0
				oColumn:Width := 32
				oColumn:AllowSizing := .F.
				oColumn:FormatColumn := "1 index ``"
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
547
Can I sort the column by check-state

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oColumn := oList:Columns():Add("Check")
			oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn:SortType := 32/*exSortByState*/
		oItems := oList:Items()
			oItems:Add()
			oItems:SetProperty("CellState",oItems:Add(),0,1)
			oItems:SetProperty("CellState",oItems:Add(),0,1)
			oItems:Add()
		oList:Columns:Item(0):SortOrder := 1/*SortAscending*/
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
546
Can I sort the column by image

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oColumn := oList:Columns():Add("Image")
			oColumn:SortType := 48/*exSortByImage*/
		oItems := oList:Items()
			oItems:SetProperty("CellImage",oItems:Add(),0,3)
			oItems:Add()
			oItems:SetProperty("CellImage",oItems:Add(),0,1)
			oItems:SetProperty("CellImage",oItems:Add(),0,2)
		oList:Columns:Item(0):SortOrder := 1/*SortAscending*/
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
545
How can I display UNICODE characters

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems
	LOCAL oList
	LOCAL oStdFont

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oStdFont := oList:Font()
			oStdFont:Name := "Arial Unicode"
			oStdFont:Size := 22
		oList:HeaderVisible := .F.
		oList:DefaultItemHeight := 48
		oList:Columns():Add(""):SetProperty("Def",17/*exCaptionFormat*/,1)
		oItems := oList:Items()
			oItems:Add("Ӓӓ")
			oItems:Add("ᦜᦝ;ᦞ")
			oItems:Add("ɮɭ;ɯ")
			oItems:Add("勳勴勵勶")
			oItems:SetProperty("FormatCell",oItems:Add(oList:Version()),0,"(value lfind `UNICODE`) < 0 ? `<fgcolor=FF0000><b>!UNICODE!</b> version</fgcolor> required: ` + value : `` ")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
544
How do I display the position of the item with 0-padding

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:Columns():Add("Items"):FormatColumn := "((1 apos ``) lpad `00`) + `. `  + value"
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
			oItems:Add("Item D")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
543
I am skinning the control's header-bar, but the background of the header-bar is shown on each item in the filter-bar drop down panel. What can I do

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oColumn
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oAppearance := oList:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxRDgMQBQKAAzQFAYcBqGqGAAGQZxYgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHLUXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQGhsCYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU8lORLUi+M4zSBPcZVTRtGShPDBKTjMKKYgkG4lVpRNa0PC1GTzQ6mazkKQLRADDIDVbAeL3LiMBy9LyLLItQALByua5mWhbcZyBCOPgBTrRb5zO58FjuTK7YLjMB7NrUNYtFaUMy2OpOCADIaecTNcaWLxPF2MY1HWYxVj2Jw3DuRJonKYBgggSRAlIYw6B0ThGFgPAkFUDAhBMfZRiGNAkFECZnm4YQdneJwqnsSQrGAAhWAIJBJBIQgFCQIBiEIAglgqYo0i4V4MEgRI9gSToYFS" +;
		"b4Fk6Y4+BmBZhFOJgTC8TBogQAArgqco4muCZOkOMJtgmYpIjYKg7GKE4uCUK4AAKKg2DwI4DiCZw5k6KJ2D6D4OHiag4DwIxiiQAArAqMosnEPBPAOIhOg+DozjIJ4PGSY4iEwPAkhKLhHUUSQsnKFCnkYU9MjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaICokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEsHJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQg" +;
		"pDOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAMR1EOZxWi+bx7HcWQ8msfRYnnDhQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARViHH4HQOYmxuCpF2MsecEQVBvGQCcIQvA6i2CAAIARAQ=")
			oAppearance:Add(2,"gBFLBCJwBAEHhEJAAEhABZEGACAADACAxRDgMQBQKAAzQFAYcBqGqGAAGQZxYgmFgAQhFcZQSKUOQTDKMIziYBYJhEMwwDhEIwjHCEEhsGIbJAGQBJCjWGodQLOEgzNC0IxNFCQILhEZJADKII8TTOU5UPRESwTE4cKBmKhQCo2NpKR7VUTxCKQahLLivoCjBT8EzHMqtIzrCA6MpaP4pQjKcqwHJ8YyHEi0ZrjazKaj6T5AXDUcaWbbNVx3PK3aioOpLZrqOZZYzYFoABTuJzPMSyIhxXD8cweaZvSpLExVYK9BY3PbKMgxC77QgTIpDaQMNS6PjtF43PAALLFUaNYzoOKzABMHATBIXAYJCwIIR5G7ID4BbQcCQAHL9DBaEEIAEEISgGhMGZQmocgymmIRQkIEQ2BcGgbEIRQci8XaMBqTRVgSAZHG+S5pnOep+D6f4vjec5zn0fpfmgBgAH6TRoBYBoAh+eAmAiAgPFgNArgOQpIESdoEmCOAOAq" +;
		"BYfFGAgaEaBgYHYFYFmIB5UiGCJUgKCgmgeYoHk4BgCmKRQiCwApgHgYgyH8B54lQU4NkMeJlBoDgjkiXBTg0R54iYIR+koeQVBoKpkgkChKhEJBkF4SFEjkDgJhFQoeEmDJlBeehUhWJQJGIXoICWOQ6FeFIlhkfhlDsSJpiQVoamaSY2G6G5nAmRhpCOH5pkwVYdmeCZmHqHpnkmdhzhmaAIFiax8AABAEICA==")
		oList:SetProperty("BackColorHeader",0x1000000)
		oList:SetProperty("ForeColorHeader",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oList:SetProperty("Background",0/*exHeaderFilterBarButton*/,0x2000000)
		oList:SetProperty("Background",26/*exBackColorFilter*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oList:SetProperty("Background",27/*exForeColorFilter*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,1 } )  , .F. ))
		oList:SetProperty("Background",20/*exSelBackColorFilter*/,0x1ff8000)
		oList:SetProperty("Background",21/*exSelForeColorFilter*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oList:SetProperty("Background",32/*exCursorHoverColumn*/,-1)
		oList:HeaderHeight := 24
		oList:SetProperty("BackColorLevelHeader",oList:BackColor())
		oColumn := oList:Columns():Add("Filter")
			oColumn:DisplayFilterButton := .T.
			oColumn:DisplayFilterPattern := .F.
			oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
			oColumn:SetProperty("Def",52/*exHeaderPaddingLeft*/,2)
			oColumn:SetProperty("Def",53/*exHeaderPaddingRight*/,2)
		oItems := oList:Items()
			oItems:Add("A")
			oItems:Add("B")
			oItems:Add("C")
			oItems:Add("D")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
542
Type of wraps the cell's caption support (Sample 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1,oColumn2
	LOCAL oColumns
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:HeaderSingleLine := .F.
		oList:HeaderHeight := 36
		oList:DrawGridLines := -1/*exAllLines*/
		oList:ColumnAutoResize := .F.
		oList:ScrollBySingleLine := .T.
		oColumns := oList:Columns()
			oColumn := oColumns:Add("Single-Line (exCaptionSingleLine)")
				oColumn:Width := 96
				oColumn:SetProperty("Def",17/*exCaptionFormat*/,1)
				oColumn:SetProperty("Def",16/*exCellSingleLine*/,-1)
			oColumn1 := oColumns:Add("Word-Wrap (exCaptionWordWrap)")
				oColumn1:Width := 96
				oColumn1:SetProperty("Def",17/*exCaptionFormat*/,1)
				oColumn1:SetProperty("Def",16/*exCellSingleLine*/,0)
				oColumn1:FormatColumn := "%0"
			oColumn2 := oColumns:Add("Break-Wrap (exCaptionBreakWrap)")
				oColumn2:Width := 96
				oColumn2:SetProperty("Def",17/*exCaptionFormat*/,1)
				oColumn2:SetProperty("Def",16/*exCellSingleLine*/,1)
				oColumn2:FormatColumn := "%0"
		oItems := oList:Items()
			oItems:Add("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.")
			oItems:Add("This is the <b>first</b> line.\r\nThis is the <b>second</b> line.\r\nThis is the <b>third</b> line.")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
541
Type of wraps the cell's caption support (Sample 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems
	LOCAL oList
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:DrawGridLines := -1/*exAllLines*/
		oList:ColumnAutoResize := .F.
		oList:ScrollBySingleLine := .T.
		oList:Columns():Add("Default"):Width := 128
		oItems := oList:Items()
			h := oItems:Add("This is the first line.\r\nThis is the second line.\r\nThis is the third line.")
			h := oItems:Add("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.")
			oItems:SetProperty("CaptionFormat",h,0,1/*exHTML*/)
			h := oItems:Add("This is the first line.\r\nThis is the second line.\r\nThis is the third line.")
			oItems:SetProperty("CellSingleLine",h,0,0/*exCaptionWordWrap*/)
			h := oItems:Add("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.")
			oItems:SetProperty("CaptionFormat",h,0,1/*exHTML*/)
			oItems:SetProperty("CellSingleLine",h,0,0/*exCaptionWordWrap*/)
			h := oItems:Add("This is the first line.\r\nThis is the second line.\r\nThis is the third line.")
			oItems:SetProperty("CellSingleLine",h,0,1/*exCaptionBreakWrap*/)
			h := oItems:Add("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.")
			oItems:SetProperty("CaptionFormat",h,0,1/*exHTML*/)
			oItems:SetProperty("CellSingleLine",h,0,1/*exCaptionBreakWrap*/)
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
540
Can I break the cell's caption using the line break <br> or \r\n (Sample 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:DrawGridLines := -1/*exAllLines*/
		oList:ColumnAutoResize := .F.
		oList:ScrollBySingleLine := .T.
		oList:Columns():Add("Default"):Width := 128
		oItems := oList:Items()
			oItems:SetProperty("CellSingleLine",oItems:Add("This is the first line.\r\nThis is the second line.\r\nThis is the third line."),0,1/*exCaptionBreakWrap*/)
			oItems:Add("This is the first line.\r\nThis is the second line.\r\nThis is the third line.")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
539
Can I break the cell's caption using the line break <br> or \r\n (Sample 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:DrawGridLines := -1/*exAllLines*/
		oList:ColumnAutoResize := .F.
		oList:ScrollBySingleLine := .T.
		oColumn := oList:Columns():Add("Default")
			oColumn:Width := 128
			oColumn:SetProperty("Def",16/*exCellSingleLine*/,1)
		oItems := oList:Items()
			oItems:Add("This is the first line.\r\nThis is the second line.\r\nThis is the third line.")
			oItems:Add("This is the first line.\r\nThis is the second line.\r\nThis is the third line.")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
538
How can I change the visual appearance/color of the Filter For ... field

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:SetProperty("BackColorHeader",AutomationTranslateColor( GraMakeRGBColor  ( { 1,0,0 } )  , .F. ))
		oList:SetProperty("ForeColorHeader",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oList:SetProperty("Background",26/*exBackColorFilter*/,oList:BackColorHeader())
		oList:SetProperty("Background",27/*exForeColorFilter*/,oList:ForeColorHeader())
		oList:SetProperty("Background",0/*exHeaderFilterBarButton*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oList:SetProperty("Background",32/*exCursorHoverColumn*/,-1)
		oList:HeaderAppearance := 5/*Bump*/
		oColumn := oList:Columns():Add("Items")
			oColumn:FilterOnType := .T.
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterList := 2/*exNoItems*/
		oItems := oList:Items()
			oItems:Add("Item 1")
			oItems:Add("Item 2")
			oItems:Add("Item 3")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
537
How can I display the cell's caption without spaces on both sides

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:ColumnAutoResize := .T.
		oColumn := oList:Columns():Add("Default")
			oColumn:SetProperty("Def",17/*exCaptionFormat*/,1)
			oColumn:FormatColumn := "((trim(value) replace `   ` with ` `) replace `  ` with ` `) replace ` ` with `<bgcolor=FF0000> </bgcolor>`"
		oItems := oList:Items()
			oItems:Add("")
			oItems:Add("Item A")
			oItems:Add("    Item B")
			oItems:Add("        Item   C    ")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
536
How can I highlight the spaces within the column (sample 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:ColumnAutoResize := .T.
		oColumn := oList:Columns():Add("Default")
			oColumn:SetProperty("Def",17/*exCaptionFormat*/,1)
			oColumn:FormatColumn := "`'` + ( value replace ` ` with `_` ) + `'`"
		oItems := oList:Items()
			oItems:Add("")
			oItems:Add("Item A")
			oItems:Add("    Item B")
			oItems:Add("        Item   C    ")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
535
How can I highlight the spaces within the column (sample 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:ColumnAutoResize := .T.
		oColumn := oList:Columns():Add("Default")
			oColumn:SetProperty("Def",17/*exCaptionFormat*/,1)
			oColumn:FormatColumn := "len(value) = 0 ? `<bgcolor=FF0000> </bgcolor>` : ( value replace ` ` with `<bgcolor=FF0000> </bgcolor>` )"
		oItems := oList:Items()
			oItems:Add("")
			oItems:Add("Item A")
			oItems:Add("    Item B")
			oItems:Add("        Item   C    ")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
534
How can I change the visual aspect of the drop down filter-calendar

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:SetProperty("Background",26/*exBackColorFilter*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,1 } )  , .F. ))
		oList:SetProperty("Background",27/*exForeColorFilter*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oList:SetProperty("Background",12/*exDateScrollRange*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oList:SetProperty("Background",8/*exDateHeader*/,oList:Background(26/*exBackColorFilter*/))
		oList:SetProperty("Background",11/*exDateScrollThumb*/,AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oColumn := oList:Columns():Add("Date")
			oColumn:FilterType := 4/*exDate*/
			oColumn:DisplayFilterButton := .T.
			oColumn:DisplayFilterDate := .T.
			oColumn:DisplayFilterPattern := .F.
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
533
Export Data in HTML format

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5,oColumn6
	LOCAL oColumns
	LOCAL oConditionalFormat,oConditionalFormat1
	LOCAL oConditionalFormats
	LOCAL oItems
	LOCAL oShellBrowserWindow
	LOCAL oList
	LOCAL sFile

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:SetProperty("BackColorAlternate",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oList:DrawGridLines := -1/*exAllLines*/
		oList:HeaderAppearance := 4/*Etched*/
		oList:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oList:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oList:Description(11/*exFilterBarAnd*/)),""))
		oList:FilterBarCaption := "(( ( value replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))"
		oList:FilterBarPromptVisible := 2579/*exFilterBarCompact+exFilterBarShowCloseIfRequired+exFilterBarSingleLine+exFilterBarVisible+exFilterBarPromptVisible*/
		oList:FilterBarPromptType := 2/*exFilterPromptContainsAny*/
		oConditionalFormats := oList:ConditionalFormats()
			oConditionalFormats:Add("%0 like `*AA*`","aa"):SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 192,192,192 } )  , .F. ))
			oConditionalFormat := oConditionalFormats:Add("%0 like `*D*`","d")
				oConditionalFormat:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,128,128 } )  , .F. ))
				oConditionalFormat:ApplyTo := 0/*exFormatToColumns*/
			oConditionalFormat1 := oConditionalFormats:Add("%0 like `*b*`","b")
				oConditionalFormat1:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,255 } )  , .F. ))
				oConditionalFormat1:Bold := .T.
				oConditionalFormat1:Italic := .T.
				oConditionalFormat1:ApplyTo := 0/*exFormatToColumns*/
		oColumns := oList:Columns()
			oColumn := oColumns:Add("Value")
				oColumn:Width := 128
				oColumn:HTMLCaption := "<b>VA</b><r>sko"
			oColumn1 := oColumns:Add("APos")
				oColumn1:FormatColumn := "0 apos ``"
				oColumn1:AllowSort := .F.
				oColumn1:SetProperty("Def",4/*exCellBackColor*/,15790320)
				oColumn1:SetProperty("Def",5/*exCellForeColor*/,8421504)
				oColumn1:SetProperty("Def",8/*exHeaderForeColor*/,oColumn1:Def(5/*exCellForeColor*/))
				oColumn1:Position := 0
			oColumn2 := oColumns:Add("RPos")
				oColumn2:FormatColumn := "0 rpos ``"
				oColumn2:AllowSort := .F.
				oColumn2:Position := 1
			oColumn3 := oColumns:Add("Index")
				oColumn3:FormatColumn := "0 index ``"
				oColumn3:DisplayFilterButton := .T.
				oColumn3:FilterList := 256/*exShowCheckBox*/
				oColumn3:Position := 2
			oColumn4 := oColumns:Add("Data 1")
				oColumn4:FormatColumn := "0 index `A-Z`"
				oColumn4:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn5 := oColumns:Add("Data 2")
				oColumn5:FormatColumn := "0 index `AB` replace `A` with `<off -4>A</off>`"
				oColumn5:SetProperty("Def",16/*exCellSingleLine*/,.F.)
				oColumn5:SetProperty("Def",17/*exCaptionFormat*/,1)
				oColumn5:SetProperty("Def",1/*exCellHasRadioButton*/,.T.)
			oColumn6 := oColumns:Add("Data 3")
				oColumn6:FormatColumn := "0 index `CDC` replace `D` with `<b>D</b>`"
				oColumn6:SetProperty("Def",17/*exCaptionFormat*/,1)
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
			oItems:SetProperty("CellState",2,4,1)
			oItems:Add("Item AA")
			oItems:Add("Item BB")
			oItems:Add("Item CC")
			oItems:SetProperty("CellState",5,5,1)
			oItems:Add("Item D")
			oItems:Add("Item EE")
			oItems:Add("Item FFF")
		oList:EndUpdate()
		sFile := "c:/temp/export.html"
		oList:Export(sFile,"vis")
		oShellBrowserWindow := CreateObject("InternetExplorer.Application")
			oShellBrowserWindow:Navigate2(sFile)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
532
Export Data in CSV format

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5,oColumn6
	LOCAL oColumns
	LOCAL oConditionalFormat,oConditionalFormat1
	LOCAL oConditionalFormats
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:SetProperty("BackColorAlternate",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oList:DrawGridLines := -1/*exAllLines*/
		oList:HeaderAppearance := 4/*Etched*/
		oList:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oList:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oList:Description(11/*exFilterBarAnd*/)),""))
		oList:FilterBarCaption := "(( ( value replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))"
		oList:FilterBarPromptVisible := 2579/*exFilterBarCompact+exFilterBarShowCloseIfRequired+exFilterBarSingleLine+exFilterBarVisible+exFilterBarPromptVisible*/
		oList:FilterBarPromptType := 2/*exFilterPromptContainsAny*/
		oConditionalFormats := oList:ConditionalFormats()
			oConditionalFormats:Add("%0 like `*AA*`","aa"):SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 192,192,192 } )  , .F. ))
			oConditionalFormat := oConditionalFormats:Add("%0 like `*D*`","d")
				oConditionalFormat:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,128,128 } )  , .F. ))
				oConditionalFormat:ApplyTo := 0/*exFormatToColumns*/
			oConditionalFormat1 := oConditionalFormats:Add("%0 like `*b*`","b")
				oConditionalFormat1:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,255 } )  , .F. ))
				oConditionalFormat1:Bold := .T.
				oConditionalFormat1:Italic := .T.
				oConditionalFormat1:ApplyTo := 0/*exFormatToColumns*/
		oColumns := oList:Columns()
			oColumn := oColumns:Add("Value")
				oColumn:Width := 128
				oColumn:HTMLCaption := "<b>VA</b><r>sko"
			oColumn1 := oColumns:Add("APos")
				oColumn1:FormatColumn := "0 apos ``"
				oColumn1:AllowSort := .F.
				oColumn1:SetProperty("Def",4/*exCellBackColor*/,15790320)
				oColumn1:SetProperty("Def",5/*exCellForeColor*/,8421504)
				oColumn1:SetProperty("Def",8/*exHeaderForeColor*/,oColumn1:Def(5/*exCellForeColor*/))
				oColumn1:Position := 0
			oColumn2 := oColumns:Add("RPos")
				oColumn2:FormatColumn := "0 rpos ``"
				oColumn2:AllowSort := .F.
				oColumn2:Position := 1
			oColumn3 := oColumns:Add("Index")
				oColumn3:FormatColumn := "0 index ``"
				oColumn3:DisplayFilterButton := .T.
				oColumn3:FilterList := 256/*exShowCheckBox*/
				oColumn3:Position := 2
			oColumn4 := oColumns:Add("Data 1")
				oColumn4:FormatColumn := "0 index `A-Z`"
				oColumn4:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn5 := oColumns:Add("Data 2")
				oColumn5:FormatColumn := "0 index `AB` replace `A` with `<off -4>A</off>`"
				oColumn5:SetProperty("Def",16/*exCellSingleLine*/,.F.)
				oColumn5:SetProperty("Def",17/*exCaptionFormat*/,1)
				oColumn5:SetProperty("Def",1/*exCellHasRadioButton*/,.T.)
			oColumn6 := oColumns:Add("Data 3")
				oColumn6:FormatColumn := "0 index `CDC` replace `D` with `<b>D</b>`"
				oColumn6:SetProperty("Def",17/*exCaptionFormat*/,1)
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
			oItems:SetProperty("CellState",2,4,1)
			oItems:Add("Item AA")
			oItems:Add("Item BB")
			oItems:Add("Item CC")
			oItems:SetProperty("CellState",5,5,1)
			oItems:Add("Item D")
			oItems:Add("Item EE")
			oItems:Add("Item FFF")
		oList:EndUpdate()
		DevOut( Transform(oList:Export("","vis"),"") )

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
531
How can I get the icon from the cell when using the Items.CellImages property (icon index)

PROCEDURE OnMouseMove(oList,Button,Shift,X,Y)
	LOCAL i
	i := oList:ItemFromPoint(-1,-1,c,hit)
	DevOut( Transform(oList:FormatABC("( 0x44 = ( value bitand 0x44 ) ) ? ( ( (value bitand 0xFFFF0000) bitshift 16 ) array B split `,` )  : `no image`",hit,oList:Items:CellImages(i,c)),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oList,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/

		oList:BeginUpdate()
		oList:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oList:Columns():Add("Default")
		oItems := oList:Items()
			oItems:SetProperty("CellImages",oItems:Add("Item 1"),0,"3,2,1")
			oItems:SetProperty("CellImages",oItems:Add("Item 2"),0,"2,3")
			oItems:SetProperty("CellImages",oItems:Add("Item 3"),0,"2,")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
530
How can I get the icon from the cell when using the Items.CellImages property (icon position within the cell)

PROCEDURE OnMouseMove(oList,Button,Shift,X,Y)
	LOCAL i
	i := oList:ItemFromPoint(-1,-1,c,hit)
	DevOut( Transform(oList:FormatABC("( 0x44 = ( value bitand 0x44 ) ) ? 1 + ( (value bitand 0xFFFF0000) bitshift 16 ) : `no image`",hit),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oList,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/

		oList:BeginUpdate()
		oList:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oList:Columns():Add("Default")
		oItems := oList:Items()
			oItems:SetProperty("CellImages",oItems:Add("Item 1"),0,"3,2,1")
			oItems:SetProperty("CellImages",oItems:Add("Item 2"),0,"2,3")
			oItems:SetProperty("CellImages",oItems:Add("Item 3"),0,"2")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
529
How can I get the index of icon from the cell, if using the CellImages property
PROCEDURE OnMouseMove(oList,Button,Shift,X,Y)
	LOCAL i
	i := oList:ItemFromPoint(-1,-1,c,hit)
	DevOut( Transform(oList:FormatABC("( 0x44 = ( value bitand 0x44 ) ) ? 1 + ( (value bitand 0xFFFF0000) bitshift 16 ) : `no image`",hit),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oList,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/

		oList:BeginUpdate()
		oList:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oList:Columns():Add("Default")
		oItems := oList:Items()
			oItems:SetProperty("CellImages",oItems:Add("Item 1"),0,"1,2,3")
			oItems:SetProperty("CellImages",oItems:Add("Item 2"),0,"2,3,1")
			oItems:SetProperty("CellImages",oItems:Add("Item 3"),0,"3,2,1")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
528
Is it possible to change the visual appearance of the position signs when user changes the column's position by drag and drop

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oColumns
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:HeaderAppearance := 4/*Etched*/
		oColumns := oList:Columns()
			oColumns:Add("Column 1")
			oColumns:Add("Column 2")
			oColumns:Add("Column 3")
		oAppearance := oList:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABZEGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMYxXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADKMA4SOKIZhrE4bBhGaQRUgyI43RhHUBzVIUcQvE6TZRHCQYHgkNIhDJIM7TPLkeSVJaTIRoKhJUogApQThTMgVRDEThkGoSa6soSoYTDBKybLrSLKagOT5YUDKUqSdKEZRpEq1YztWbaQoCUoqVRRVIWfbNd4JJa4aDhWpYdpeeY5R7bWLgBYVVABL7LLRsSxpHxPF6RXxaeI3GKsaS8G6ic6nPQMHj7I4NS5pUa6Rh2VYNSa8AAtETRYznOw4bTMXAjNIea5bAYIIR5HIoDzVbQcCQAHL9DBeEMIQEEISgGhMGZQmocgymoYRRCIEQ0G2HYBnEIBig4V4zCQGINnmagCECY43medZ6H2Pw/g+X5fnueh/h+R5+AKABfkMWgGgGYA4AICoCGCE5WA4CphACMgSD2IRIDI" +;
		"BICmEd5YGCBpRjGBgegWIYIgWdgoGIRQsiKCZiAiJZ0gGQI4jUS4LECOAiBmDJflGfg2BSY4Al4OhGkOCJ2DgFJjGGfgqgiH5Ch4RhGkqOQmEOEpkFkHQYhJRYyESAokGKHhIhKIxJEmf4VGUeRGFmF5iBkchPhYJQ5GoYIZg6Ug6GoFYmkmNhuhulRGHKGoImefh0BUZ4JmYeoemeSZ2H6HQmgoBgXDqXwUAQgI=")
			oAppearance:Add(2,"CP:1 0 -36 0 0")
		oList:SetProperty("Background",182/*exColumnsPositionSign*/,0x2000000)
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
527
A black portion is shown while I am using the BackColorAlternate with EBN colors. What can I do
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oConditionalFormat
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:ColumnAutoResize := .T.
		oList:DefaultItemHeight := 20
		oList:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAAEhIDhAxHAxg0HG0Mg4xGI3HMOig3GcJiYAf8jAEhhUnAAyhEqg8hk0oAsIjgAiAwmYxGA4mYzGwwkI0i0ooUnB0IBMIl1Dg8zmYyGolptPkI1mY1GAll9KoUslNIrVCqNQldShFUstXAVfrVcrlZtVhuFnsUHq1zoczoQGhFBkNpg6zbDykUkhsPHE2h85nc9n8xtVDtlex9Msd2p1YstVq9ux8HyMtzuFz1PsNTzQlv2hhWfkuqpeVuN0q+nvEooN5veSAGpkb/ACcZrvhU3w83nM/poxGuchGpoVBvWgg+8knA4WimnFxI45Er5XOlHMg/Q3XU33W4ew9Wyu11mchDagcO7zus8VDoNBBEIKBpMY6DqOQyokhA/IQIQmwMk4bIQFDcoO6LWgwhQkNcABwEyAB5GwWbet6cRQg3DENQ5D8QxADZvEkAB8nabsURGeBpFM3pwE2AEZRpDx/neZpOR3Dz9oO/r/wCMoZNTBQAQR" +;
		"JSEwYg8HPGhEIoNCaEwq10gQ2WcRt7LcRxRFpuxUAEURQ3sczBEMgTTG8gN7HpOSEAEiQBAQZpmQ0DibPUFwbKcHwkhQoQtNQNzNEMbABOKDy/DMYQzHLeoPL0OTJSUd0pHcxTewk5zrIygIRPslz4lEngBKIAQivgASs/kLSBTlO00f8t0vGcgUbDlDRjXLCUNRERRvRgAHW2oAICA==")
		oList:Columns():Add("Default"):SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
		oColumn := oList:Columns():Add("Position")
			oColumn:FormatColumn := "1 rindex ``"
			oColumn:Visible := .F.
		oConditionalFormat := oList:ConditionalFormats():Add("%C1 mod 2")
			oConditionalFormat:SetProperty("BackColor",0x1000000)
		oItems := oList:Items()
			oItems:Add("Item 1")
			oItems:Add("Item 2")
			oItems:Add("Item 3")
			oItems:Add("Item 4")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
526
Is it possible to change the caption from a column without to remove the column and add it with the new caption
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:Columns():Add("ColumnName"):Caption := "NewName"
		oList:Columns():Add("ColumnName"):HTMLCaption := "<b>New</b>Name"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
525
FilterBarCaption ALL Keyword ( sample 2, result )

PROCEDURE OnAddItem(oList,Item)
	/*i = FormatABC("value + 1", Items.ItemToIndex(Item))*/
	oList:Items():SetProperty("CellImage",Item,3,i)
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5
	LOCAL oItems
	LOCAL oList
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:AddItem := {|Item| OnAddItem(oList,Item)} /*Occurs after a new Item is inserted to Items collection.*/

		oList:BeginUpdate()
		oList:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oColumn := oList:Columns():Add("Col-1")
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn1 := oList:Columns():Add("Col-2")
			oColumn1:DisplayFilterButton := .T.
			oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn2 := oList:Columns():Add("Check")
			oColumn2:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn2:DisplayFilterButton := .T.
			oColumn2:DisplayFilterPattern := .F.
			oColumn2:FilterType := 6/*exCheck*/
		oColumn3 := oList:Columns():Add("Image")
			oColumn3:DisplayFilterButton := .T.
			oColumn3:FilterType := 10/*exImage*/
			oColumn3:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/
		oColumn4 := oList:Columns():Add("Pos")
			oColumn4:AllowSizing := .F.
			oColumn4:AllowSort := .F.
			oColumn4:Width := 32
			oColumn4:FormatColumn := "1 apos ``"
			oColumn4:Position := 0
		oItems := oList:Items()
			oItems:SetProperty("Caption",oItems:Add("Item A"),1,"Sub-Item A")
			h := oItems:Add("Item B")
			oItems:SetProperty("Caption",h,1,"Sub-Item B")
			oItems:SetProperty("CellState",h,2,1)
			oItems:SetProperty("Caption",oItems:Add("Item C"),1,"Sub-Item C")
		oList:FilterBarFont := oList:Font()
		oList:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oList:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oList:Description(11/*exFilterBarAnd*/)),""))
		oList:FilterBarCaption := "(( ( all replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))"
		oList:FilterBarPromptVisible := 3/*exFilterBarVisible+exFilterBarPromptVisible*/
		oColumn5 := oList:Columns:Item(0)
			oColumn5:FilterType := 240/*exFilter*/
			oColumn5:Filter := "Item A|Item B"
		oList:Columns:Item(2):Filter := Transform(1,"")
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
524
FilterBarCaption ALL Keyword ( sample 1 )

PROCEDURE OnAddItem(oList,Item)
	/*i = FormatABC("value + 1", Items.ItemToIndex(Item))*/
	oList:Items():SetProperty("CellImage",Item,3,i)
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5
	LOCAL oItems
	LOCAL oList
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:AddItem := {|Item| OnAddItem(oList,Item)} /*Occurs after a new Item is inserted to Items collection.*/

		oList:BeginUpdate()
		oList:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oColumn := oList:Columns():Add("Col-1")
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn1 := oList:Columns():Add("Col-2")
			oColumn1:DisplayFilterButton := .T.
			oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn2 := oList:Columns():Add("Check")
			oColumn2:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn2:DisplayFilterButton := .T.
			oColumn2:DisplayFilterPattern := .F.
			oColumn2:FilterType := 6/*exCheck*/
		oColumn3 := oList:Columns():Add("Image")
			oColumn3:DisplayFilterButton := .T.
			oColumn3:FilterType := 10/*exImage*/
			oColumn3:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/
		oColumn4 := oList:Columns():Add("Pos")
			oColumn4:AllowSizing := .F.
			oColumn4:AllowSort := .F.
			oColumn4:Width := 32
			oColumn4:FormatColumn := "1 apos ``"
			oColumn4:Position := 0
		oItems := oList:Items()
			oItems:SetProperty("Caption",oItems:Add("Item A"),1,"Sub-Item A")
			h := oItems:Add("Item B")
			oItems:SetProperty("Caption",h,1,"Sub-Item B")
			oItems:SetProperty("CellState",h,2,1)
			oItems:SetProperty("Caption",oItems:Add("Item C"),1,"Sub-Item C")
		oList:FilterBarFont := oList:Font()
		oList:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oList:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oList:Description(11/*exFilterBarAnd*/)),""))
		oList:FilterBarCaption := "all"
		oList:FilterBarPromptVisible := 3/*exFilterBarVisible+exFilterBarPromptVisible*/
		oColumn5 := oList:Columns:Item(0)
			oColumn5:FilterType := 240/*exFilter*/
			oColumn5:Filter := "Item A|Item B"
		oList:Columns:Item(2):Filter := Transform(1,"")
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
523
FilterBarCaption ALLUI Keyword ( sample 2, result )

PROCEDURE OnAddItem(oList,Item)
	/*i = FormatABC("value + 1", Items.ItemToIndex(Item))*/
	oList:Items():SetProperty("CellImage",Item,3,i)
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5
	LOCAL oItems
	LOCAL oList
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:AddItem := {|Item| OnAddItem(oList,Item)} /*Occurs after a new Item is inserted to Items collection.*/

		oList:BeginUpdate()
		oList:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oColumn := oList:Columns():Add("Col-1")
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn1 := oList:Columns():Add("Col-2")
			oColumn1:DisplayFilterButton := .T.
			oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn2 := oList:Columns():Add("Check")
			oColumn2:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn2:DisplayFilterButton := .T.
			oColumn2:DisplayFilterPattern := .F.
			oColumn2:FilterType := 6/*exCheck*/
		oColumn3 := oList:Columns():Add("Image")
			oColumn3:DisplayFilterButton := .T.
			oColumn3:FilterType := 10/*exImage*/
			oColumn3:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/
		oColumn4 := oList:Columns():Add("Pos")
			oColumn4:AllowSizing := .F.
			oColumn4:AllowSort := .F.
			oColumn4:Width := 32
			oColumn4:FormatColumn := "1 apos ``"
			oColumn4:Position := 0
		oItems := oList:Items()
			oItems:SetProperty("Caption",oItems:Add("Item A"),1,"Sub-Item A")
			h := oItems:Add("Item B")
			oItems:SetProperty("Caption",h,1,"Sub-Item B")
			oItems:SetProperty("CellState",h,2,1)
			oItems:SetProperty("Caption",oItems:Add("Item C"),1,"Sub-Item C")
		oList:FilterBarFont := oList:Font()
		oList:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oList:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oList:Description(11/*exFilterBarAnd*/)),""))
		oList:FilterBarCaption := "(( ( allui replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))"
		oList:FilterBarPromptVisible := 3/*exFilterBarVisible+exFilterBarPromptVisible*/
		oColumn5 := oList:Columns:Item(0)
			oColumn5:FilterType := 240/*exFilter*/
			oColumn5:Filter := "Item A|Item B"
		oList:Columns:Item(2):Filter := Transform(1,"")
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
522
FilterBarCaption ALLUI Keyword ( sample 1 )
PROCEDURE OnAddItem(oList,Item)
	/*i = FormatABC("value + 1", Items.ItemToIndex(Item))*/
	oList:Items():SetProperty("CellImage",Item,3,i)
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5
	LOCAL oItems
	LOCAL oList
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:AddItem := {|Item| OnAddItem(oList,Item)} /*Occurs after a new Item is inserted to Items collection.*/

		oList:BeginUpdate()
		oList:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oColumn := oList:Columns():Add("Col-1")
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn1 := oList:Columns():Add("Col-2")
			oColumn1:DisplayFilterButton := .T.
			oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn2 := oList:Columns():Add("Check")
			oColumn2:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn2:DisplayFilterButton := .T.
			oColumn2:DisplayFilterPattern := .F.
			oColumn2:FilterType := 6/*exCheck*/
		oColumn3 := oList:Columns():Add("Image")
			oColumn3:DisplayFilterButton := .T.
			oColumn3:FilterType := 10/*exImage*/
			oColumn3:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/
		oColumn4 := oList:Columns():Add("Pos")
			oColumn4:AllowSizing := .F.
			oColumn4:AllowSort := .F.
			oColumn4:Width := 32
			oColumn4:FormatColumn := "1 apos ``"
			oColumn4:Position := 0
		oItems := oList:Items()
			oItems:SetProperty("Caption",oItems:Add("Item A"),1,"Sub-Item A")
			h := oItems:Add("Item B")
			oItems:SetProperty("Caption",h,1,"Sub-Item B")
			oItems:SetProperty("CellState",h,2,1)
			oItems:SetProperty("Caption",oItems:Add("Item C"),1,"Sub-Item C")
		oList:FilterBarFont := oList:Font()
		oList:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oList:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oList:Description(11/*exFilterBarAnd*/)),""))
		oList:FilterBarCaption := "allui"
		oList:FilterBarPromptVisible := 3/*exFilterBarVisible+exFilterBarPromptVisible*/
		oColumn5 := oList:Columns:Item(0)
			oColumn5:FilterType := 240/*exFilter*/
			oColumn5:Filter := "Item A|Item B"
		oList:Columns:Item(2):Filter := Transform(1,"")
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
521
FilterBarCaption AVAILABLE Keyword ( sample 2, result )

PROCEDURE OnAddItem(oList,Item)
	/*i = FormatABC("value + 1", Items.ItemToIndex(Item))*/
	oList:Items():SetProperty("CellImage",Item,3,i)
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5
	LOCAL oItems
	LOCAL oList
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:AddItem := {|Item| OnAddItem(oList,Item)} /*Occurs after a new Item is inserted to Items collection.*/

		oList:BeginUpdate()
		oList:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oColumn := oList:Columns():Add("Col-1")
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn1 := oList:Columns():Add("Col-2")
			oColumn1:DisplayFilterButton := .T.
			oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn2 := oList:Columns():Add("Check")
			oColumn2:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn2:DisplayFilterButton := .T.
			oColumn2:DisplayFilterPattern := .F.
			oColumn2:FilterType := 6/*exCheck*/
		oColumn3 := oList:Columns():Add("Image")
			oColumn3:DisplayFilterButton := .T.
			oColumn3:FilterType := 10/*exImage*/
			oColumn3:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/
		oColumn4 := oList:Columns():Add("Pos")
			oColumn4:AllowSizing := .F.
			oColumn4:AllowSort := .F.
			oColumn4:Width := 32
			oColumn4:FormatColumn := "1 apos ``"
			oColumn4:Position := 0
		oItems := oList:Items()
			oItems:SetProperty("Caption",oItems:Add("Item A"),1,"Sub-Item A")
			h := oItems:Add("Item B")
			oItems:SetProperty("Caption",h,1,"Sub-Item B")
			oItems:SetProperty("CellState",h,2,1)
			oItems:SetProperty("Caption",oItems:Add("Item C"),1,"Sub-Item C")
		oList:FilterBarFont := oList:Font()
		oList:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oList:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oList:Description(11/*exFilterBarAnd*/)),""))
		oList:FilterBarCaption := "(( ( value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` ) + ` ` + ( available replace `[` with `<bgcolor=C0C0C0><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` replace `<s>` with `` replace `</s>` with `` ) + `<fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))"
		oList:FilterBarPromptVisible := 3/*exFilterBarVisible+exFilterBarPromptVisible*/
		oColumn5 := oList:Columns:Item(0)
			oColumn5:FilterType := 240/*exFilter*/
			oColumn5:Filter := "Item A|Item B"
		oList:Columns:Item(2):Filter := Transform(1,"")
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
520
FilterBarCaption AVAILABLE Keyword ( sample 1 )

PROCEDURE OnAddItem(oList,Item)
	/*i = FormatABC("value + 1", Items.ItemToIndex(Item))*/
	oList:Items():SetProperty("CellImage",Item,3,i)
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5
	LOCAL oItems
	LOCAL oList
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:AddItem := {|Item| OnAddItem(oList,Item)} /*Occurs after a new Item is inserted to Items collection.*/

		oList:BeginUpdate()
		oList:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oColumn := oList:Columns():Add("Col-1")
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn1 := oList:Columns():Add("Col-2")
			oColumn1:DisplayFilterButton := .T.
			oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn2 := oList:Columns():Add("Check")
			oColumn2:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn2:DisplayFilterButton := .T.
			oColumn2:DisplayFilterPattern := .F.
			oColumn2:FilterType := 6/*exCheck*/
		oColumn3 := oList:Columns():Add("Image")
			oColumn3:DisplayFilterButton := .T.
			oColumn3:FilterType := 10/*exImage*/
			oColumn3:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/
		oColumn4 := oList:Columns():Add("Pos")
			oColumn4:AllowSizing := .F.
			oColumn4:AllowSort := .F.
			oColumn4:Width := 32
			oColumn4:FormatColumn := "1 apos ``"
			oColumn4:Position := 0
		oItems := oList:Items()
			oItems:SetProperty("Caption",oItems:Add("Item A"),1,"Sub-Item A")
			h := oItems:Add("Item B")
			oItems:SetProperty("Caption",h,1,"Sub-Item B")
			oItems:SetProperty("CellState",h,2,1)
			oItems:SetProperty("Caption",oItems:Add("Item C"),1,"Sub-Item C")
		oList:FilterBarFont := oList:Font()
		oList:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oList:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oList:Description(11/*exFilterBarAnd*/)),""))
		oList:FilterBarCaption := "value + ` ` + available"
		oList:FilterBarPromptVisible := 3/*exFilterBarVisible+exFilterBarPromptVisible*/
		oColumn5 := oList:Columns:Item(0)
			oColumn5:FilterType := 240/*exFilter*/
			oColumn5:Filter := "Item A|Item B"
		oList:Columns:Item(2):Filter := Transform(1,"")
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
519
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 3, results )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oColumn := oList:Columns():Add("Col-1")
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn1 := oList:Columns():Add("Col-2")
			oColumn1:DisplayFilterButton := .T.
			oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn2 := oList:Columns():Add("Pos")
			oColumn2:AllowSizing := .F.
			oColumn2:AllowSort := .F.
			oColumn2:Width := 32
			oColumn2:FormatColumn := "1 apos ``"
			oColumn2:Position := 0
		oItems := oList:Items()
			oItems:SetProperty("Caption",oItems:Add("Item A"),1,"Sub-Item A")
			oItems:SetProperty("Caption",oItems:Add("Item B"),1,"Sub-Item B")
			oItems:SetProperty("Caption",oItems:Add("Item C"),1,"Sub-Item C")
		oList:FilterBarFont := oList:Font()
		oList:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oList:FormatABC("`<fgcolor=808080>` + value + `</fgcolor>`",oList:Description(11/*exFilterBarAnd*/)),""))
		oList:FilterBarCaption := "(`<b>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )) replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>`"
		oList:FilterBarPromptVisible := 256/*exFilterBarToggle*/
		oColumn3 := oList:Columns:Item(0)
			oColumn3:FilterType := 240/*exFilter*/
			oColumn3:Filter := "Item A|Item B"
		oColumn4 := oList:Columns:Item(1)
			oColumn4:FilterType := 3/*exPattern*/
			oColumn4:Filter := "*B"
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
518
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 2 )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oColumn := oList:Columns():Add("Col-1")
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn1 := oList:Columns():Add("Col-2")
			oColumn1:DisplayFilterButton := .T.
			oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn2 := oList:Columns():Add("Pos")
			oColumn2:AllowSizing := .F.
			oColumn2:AllowSort := .F.
			oColumn2:Width := 32
			oColumn2:FormatColumn := "1 apos ``"
			oColumn2:Position := 0
		oItems := oList:Items()
			oItems:SetProperty("Caption",oItems:Add("Item A"),1,"Sub-Item A")
			oItems:SetProperty("Caption",oItems:Add("Item B"),1,"Sub-Item B")
			oItems:SetProperty("Caption",oItems:Add("Item C"),1,"Sub-Item C")
		oList:FilterBarFont := oList:Font()
		oList:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oList:FormatABC("`<fgcolor=808080>` + value + `</fgcolor>`",oList:Description(11/*exFilterBarAnd*/)),""))
		oList:FilterBarCaption := "value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>`"
		oList:FilterBarPromptVisible := 256/*exFilterBarToggle*/
		oColumn3 := oList:Columns:Item(0)
			oColumn3:FilterType := 240/*exFilter*/
			oColumn3:Filter := "Item A|Item B"
		oColumn4 := oList:Columns:Item(1)
			oColumn4:FilterType := 3/*exPattern*/
			oColumn4:Filter := "*B"
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
517
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 1 )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oColumn := oList:Columns():Add("Col-1")
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn1 := oList:Columns():Add("Col-2")
			oColumn1:DisplayFilterButton := .T.
			oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn2 := oList:Columns():Add("Pos")
			oColumn2:AllowSizing := .F.
			oColumn2:AllowSort := .F.
			oColumn2:Width := 32
			oColumn2:FormatColumn := "1 apos ``"
			oColumn2:Position := 0
		oItems := oList:Items()
			oItems:SetProperty("Caption",oItems:Add("Item A"),1,"Sub-Item A")
			oItems:SetProperty("Caption",oItems:Add("Item B"),1,"Sub-Item B")
			oItems:SetProperty("Caption",oItems:Add("Item C"),1,"Sub-Item C")
		oList:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oList:FormatABC("`<fgcolor=808080>` + value + `</fgcolor>`",oList:Description(11/*exFilterBarAnd*/)),""))
		oList:FilterBarCaption := "value replace `[` with `<fgcolor=808080>[` replace `]` with `]</fgcolor>`"
		oList:FilterBarPromptVisible := 256/*exFilterBarToggle*/
		oColumn3 := oList:Columns:Item(0)
			oColumn3:FilterType := 240/*exFilter*/
			oColumn3:Filter := "Item A|Item B"
		oColumn4 := oList:Columns:Item(1)
			oColumn4:FilterType := 3/*exPattern*/
			oColumn4:Filter := "*B"
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
516
Is it possible to automatically displays the control's filter label to the right

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1,oColumn2
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oColumn := oList:Columns():Add("Item")
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn1 := oList:Columns():Add("Pos")
			oColumn1:AllowSizing := .F.
			oColumn1:AllowSort := .F.
			oColumn1:Width := 32
			oColumn1:FormatColumn := "1 apos ``"
			oColumn1:Position := 0
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:FilterBarCaption := "`<r>` + value"
		oList:FilterBarPromptVisible := 1280/*exFilterBarShowCloseOnRight+exFilterBarToggle*/
		oColumn2 := oList:Columns:Item(0)
			oColumn2:FilterType := 240/*exFilter*/
			oColumn2:Filter := "Item B"
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
515
How can I get the number of results/items being shown in the control's filter bar (sample 4)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oColumn := oList:Columns():Add("Item")
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/
		oColumn1 := oList:Columns():Add("Pos")
			oColumn1:AllowSizing := .F.
			oColumn1:AllowSort := .F.
			oColumn1:Width := 32
			oColumn1:FormatColumn := "1 apos ``"
			oColumn1:Position := 0
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:FilterBarFont := oList:Font()
		oList:FilterBarPrompt := Transform(oList:FormatABC("`<b>` + value",oList:FilterBarPrompt()),"")
		oList:FilterBarCaption := "`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )"
		oList:FilterBarPromptVisible := 3591/*exFilterBarCompact+exFilterBarShowCloseOnRight+exFilterBarShowCloseIfRequired+exFilterBarCaptionVisible+exFilterBarVisible+exFilterBarPromptVisible*/
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
514
How can I get the number of results being shown in the control's filter bar (sample 3)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:Columns():Add("Item"):DisplayFilterButton := .T.
		oColumn := oList:Columns():Add("Pos")
			oColumn:AllowSizing := .F.
			oColumn:AllowSort := .F.
			oColumn:Width := 32
			oColumn:FormatColumn := "1 apos ``"
			oColumn:Position := 0
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:FilterBarFont := oList:Font()
		oList:FilterBarCaption := "`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : ``)"
		oList:FilterBarPromptVisible := 2055/*exFilterBarCompact+exFilterBarCaptionVisible+exFilterBarVisible+exFilterBarPromptVisible*/
		oColumn1 := oList:Columns:Item(0)
			oColumn1:FilterType := 240/*exFilter*/
			oColumn1:Filter := "Item A|Item B"
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
513
How can I get the number of results being shown in the control's filter bar (sample 2, compact)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:Columns():Add("Item"):DisplayFilterButton := .T.
		oColumn := oList:Columns():Add("Pos")
			oColumn:AllowSizing := .F.
			oColumn:AllowSort := .F.
			oColumn:Width := 32
			oColumn:FormatColumn := "1 apos ``"
			oColumn:Position := 0
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:FilterBarFont := oList:Font()
		oList:FilterBarCaption := "`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? `<off -4> ` + abs(matchitemcount + 1) + ` result(s)` : ``)"
		oList:FilterBarPromptVisible := 2071/*exFilterBarCompact+exFilterBarSingleLine+exFilterBarCaptionVisible+exFilterBarVisible+exFilterBarPromptVisible*/
		oColumn1 := oList:Columns:Item(0)
			oColumn1:FilterType := 240/*exFilter*/
			oColumn1:Filter := "Item A|Item B"
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
512
How can I get the number of results being shown in the control's filter bar (sample 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:Columns():Add("Item"):DisplayFilterButton := .T.
		oColumn := oList:Columns():Add("Pos")
			oColumn:AllowSizing := .F.
			oColumn:AllowSort := .F.
			oColumn:Width := 32
			oColumn:FormatColumn := "1 apos ``"
			oColumn:Position := 0
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:FilterBarFont := oList:Font()
		oList:FilterBarCaption := "`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)"
		oList:FilterBarPromptVisible := 7/*exFilterBarCaptionVisible+exFilterBarVisible+exFilterBarPromptVisible*/
		oColumn1 := oList:Columns:Item(0)
			oColumn1:FilterType := 240/*exFilter*/
			oColumn1:Filter := "Item A|Item B"
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
511
FilterBarCaption Predefined Keywords

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1,oColumn2
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:Columns():Add("Item"):DisplayFilterButton := .T.
		oColumn := oList:Columns():Add("Check")
			oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn:DisplayFilterButton := .T.
			oColumn:DisplayFilterPattern := .F.
			oColumn:FilterType := 6/*exCheck*/
		oColumn1 := oList:Columns():Add("Pos")
			oColumn1:AllowSizing := .F.
			oColumn1:AllowSort := .F.
			oColumn1:Width := 32
			oColumn1:FormatColumn := "1 apos ``"
			oColumn1:Position := 0
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:FilterBarFont := oList:Font()
		oList:FilterBarCaption := "`<fgcolor=0000FF><i>value/current</i></fgcolor>: <fgcolor=808080>` + value + `</fgcolor>` + `<br><fgcolor=0000FF><i>available</i></fgcolor>: ` + available + `<br><fgcolor=0000FF><i>allui</i></fgcolor>: ` + allui + `<br><fgcolor=0000FF><i>all</i></fgcolor>: ` + all + `<br><fgcolor=0000FF><i>itemcount</i></fgcolor>: <fgcolor=808080>` + itemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>visibleitemcount</i></fgcolor>: <fgcolor=808080>` + visibleitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>matchitemcount</" +;
		"i></fgcolor>: <fgcolor=808080>` + matchitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>promptpattern</i></fgcolor>: <fgcolor=808080>` + promptpattern + `</fgcolor>`"
		oList:FilterBarPromptPattern := "B"
		oList:FilterBarPromptVisible := 7/*exFilterBarCaptionVisible+exFilterBarVisible+exFilterBarPromptVisible*/
		oColumn2 := oList:Columns:Item(0)
			oColumn2:FilterType := 240/*exFilter*/
			oColumn2:Filter := "Item A|Item B"
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
510
I am using filter prompt feature, and also column's filter, just wondering if possible to compact displaying the filter bar so it won't show on multiple lines

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:Columns():Add("Item"):DisplayFilterButton := .T.
		oColumn := oList:Columns():Add("Pos")
			oColumn:AllowSizing := .F.
			oColumn:AllowSort := .F.
			oColumn:Width := 32
			oColumn:FormatColumn := "1 apos ``"
			oColumn:Position := 0
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:FilterBarFont := oList:Font()
		oList:FilterBarCaption := "`<r><i><fgcolor=808080><upline><solidline><sha ;;0>` + value"
		oList:FilterBarPromptPattern := "B"
		oList:FilterBarPromptVisible := 2067/*exFilterBarCompact+exFilterBarSingleLine+exFilterBarVisible+exFilterBarPromptVisible*/
		oColumn1 := oList:Columns:Item(0)
			oColumn1:FilterType := 240/*exFilter*/
			oColumn1:Filter := "Item A|Item B"
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
509
Just wondering if it is possible to show the filter bar's close button on the right ( sample 2 )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:Columns():Add("Item"):DisplayFilterButton := .T.
		oColumn := oList:Columns():Add("Pos")
			oColumn:AllowSizing := .F.
			oColumn:AllowSort := .F.
			oColumn:Width := 32
			oColumn:FormatColumn := "1 apos ``"
			oColumn:Position := 0
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:FilterBarPromptVisible := 1281/*exFilterBarShowCloseOnRight+exFilterBarToggle+exFilterBarPromptVisible*/
		oList:FilterBarPrompt := Transform(oList:FormatABC("`<r>` + value",oList:FilterBarPrompt()),"")
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
508
Just wondering if it is possible to show the filter bar's close button on the right ( sample 1 )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:RightToLeft := .T.
		oList:Columns():Add("Item"):DisplayFilterButton := .T.
		oColumn := oList:Columns():Add("Pos")
			oColumn:AllowSizing := .F.
			oColumn:AllowSort := .F.
			oColumn:Width := 32
			oColumn:FormatColumn := "1 apos ``"
			oColumn:Position := 0
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:FilterBarPromptVisible := 257/*exFilterBarToggle+exFilterBarPromptVisible*/
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
507
How can I change the visual appearance of the filter bar's close button (EBN)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oColumn
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oAppearance := oList:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABHQDg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLOg7IJjyI4/SJAYCydKAWhxIaZKJHCZoEDaTAADCNVAQp6MEIJVbVEI0e79OgBLp/Z7kECIJJAaRjHQdJxGLA8EhtCQhCZteK6SgMKJYXhWQYRXI1JwvMBrWrdQjiOYELQtMKmSZNLYGG4dR5SVJbcYhSYsRRFMoyDIOXYDLKsdYqSpXIThObEGgaPqJYjsUjCMKnR7HVIURrBPC9TBPE69ZgmC6ucKPX51ShKFaBWDZcwFAS+UBuYCAILiEAQGZ1XT8OROicbgJgSTJRlCaZeDsHY7QGR4xkSYp3CaExZAQMgalQYAwjCAAfBANxcA2TgKAUOpDCGFhKg0RpXCwCwDHQHQHEyAIkCkOhbFOGA8A8DohBgRg9AccZcn8EpEjMLI2C2" +;
		"DYxAgQgvAIUIVkoAAPBQDJlECTZ3CCYwDACQwUA8A5MCAWAWDiQi4l8aQOEgLJuBgBgDmYFAzEoIoIl0WALgKYJbBABADAAHgHg8VAMmqCQQDMXABAATYwTmNwBDATJXAiAgjHmNQ5lgQ5QEQEQMmcWg/GwD5ylyNw2gMcJcjsBgBgOQQDDhRpVAMMwnDBFw1B0Ax8D0DxOmmJJIGQTY5hGMAwkwM4CAYLZAmAOJnAqAojiIGg6iieYkmeAYOHaKJDCyCwjH6AoggsQpQliAJLhgaJ0CESBTnyDwjk+cg4g4P5IHIHJ+BWRRzlYWAxiOUxihsY4KjKLJRGqC44FCegkkkM58iAKAPnIWIWD8SRSFSfQnkmewUhYP4GiGKJ7G0TIbCSUoggqUo0lAQ4LnEcBcD8Coiiif4nE+eAAn2HpOkcFJqi4T5SkyMw/kqQown8IBIBOdA+A+DJrBqVxXEqYo4lCApLhGHBnD8S4ymyfxmg+cwQkQP5egOUZIWoEA" +;
		"kjIeIPBMBJBD+TBjBifwvkuc58hQJQPmFrYykkchclSApKjGOBuD+TRDFCfw3mmIxNi8FxFlOXhVC4aYDFyPgvg2YBcBcLZGCGCJ0DSLRzGSWQ/lmY5+mEP5gmMDBZRSMRsFsOxMhMJJ/DsTpTnwaQaE+N5ojuNhdEYNI5C4TZJO1GRDmCaxnA2Yx4n8IpIjOTBQBQC5TgyYw7gUYRYikC0BYRwsDQBoB8eA6Q2hsE0BUXgywZtYCyHMKwnxSAhAQHkIQhRrBaDsCwA4ERiB2EWAIYIXhhiVEgAEUYwwYjyASLge4FhHgRDkM8OQih0jWPkGgBBAQ")
		oList:Columns():Add("Item"):DisplayFilterButton := .T.
		oColumn := oList:Columns():Add("Pos")
			oColumn:AllowSizing := .F.
			oColumn:AllowSort := .F.
			oColumn:Width := 32
			oColumn:FormatColumn := "1 apos ``"
			oColumn:Position := 0
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:FilterBarPromptVisible := 257/*exFilterBarToggle+exFilterBarPromptVisible*/
		oList:SetProperty("Background",1/*exFooterFilterBarButton*/,0x1000000)
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
506
How can I change the visual appearance of the filter bar's close button (solid)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:Columns():Add("Item"):DisplayFilterButton := .T.
		oColumn := oList:Columns():Add("Pos")
			oColumn:AllowSizing := .F.
			oColumn:AllowSort := .F.
			oColumn:Width := 32
			oColumn:FormatColumn := "1 apos ``"
			oColumn:Position := 0
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:FilterBarPromptVisible := 1/*exFilterBarPromptVisible*/
		oList:SetProperty("Background",1/*exFooterFilterBarButton*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
505
Is it possible to prevent definitely showing the filter bar's close button

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:Columns():Add("Item"):DisplayFilterButton := .T.
		oColumn := oList:Columns():Add("Pos")
			oColumn:AllowSizing := .F.
			oColumn:AllowSort := .F.
			oColumn:Width := 32
			oColumn:FormatColumn := "1 apos ``"
			oColumn:Position := 0
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:FilterBarPromptVisible := 1/*exFilterBarPromptVisible*/
		oList:SetProperty("Background",1/*exFooterFilterBarButton*/,-1)
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
504
Is it possible to show the close button only if there is a filter applied

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:Columns():Add("Item"):DisplayFilterButton := .T.
		oColumn := oList:Columns():Add("Pos")
			oColumn:AllowSizing := .F.
			oColumn:AllowSort := .F.
			oColumn:Width := 32
			oColumn:FormatColumn := "1 apos ``"
			oColumn:Position := 0
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:FilterBarPromptVisible := 513/*exFilterBarShowCloseIfRequired+exFilterBarPromptVisible*/
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
503
The control's filter bar is not closed once I click the close button (toggle)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:Columns():Add("Item"):DisplayFilterButton := .T.
		oColumn := oList:Columns():Add("Pos")
			oColumn:AllowSizing := .F.
			oColumn:AllowSort := .F.
			oColumn:Width := 32
			oColumn:FormatColumn := "1 apos ``"
			oColumn:Position := 0
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:FilterBarCaption := "`<r><fgcolor=808080>` + value"
		oList:FilterBarPromptPattern := "B"
		oList:FilterBarPromptVisible := 2323/*exFilterBarCompact+exFilterBarToggle+exFilterBarSingleLine+exFilterBarVisible+exFilterBarPromptVisible*/
		oColumn1 := oList:Columns:Item(0)
			oColumn1:FilterType := 240/*exFilter*/
			oColumn1:Filter := "Item B"
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
502
How can I display the control's filter on a single line

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:Columns():Add("Item"):DisplayFilterButton := .T.
		oColumn := oList:Columns():Add("Pos")
			oColumn:AllowSizing := .F.
			oColumn:AllowSort := .F.
			oColumn:Width := 32
			oColumn:FormatColumn := "1 apos ``"
			oColumn:Position := 0
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:FilterBarCaption := "len(value) ? `filter for: <fgcolor 808080>` + value  : `<fgcolor 808080>no filter`"
		oList:FilterBarPromptVisible := 18/*exFilterBarSingleLine+exFilterBarVisible*/
		oColumn1 := oList:Columns:Item(0)
			oColumn1:FilterType := 240/*exFilter*/
			oColumn1:Filter := "Item A|Item B"
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
501
How can I display the control's filter on a single line (prompt-combined)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oColumn,oColumn1
	LOCAL oItems
	LOCAL oList

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oList := XbpActiveXControl():new( oForm:drawingArea )
	oList:CLSID  := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
	oList:create(,, {10,60},{610,370} )

		oList:BeginUpdate()
		oList:Columns():Add("Item"):DisplayFilterButton := .T.
		oColumn := oList:Columns():Add("Pos")
			oColumn:AllowSizing := .F.
			oColumn:AllowSort := .F.
			oColumn:Width := 32
			oColumn:FormatColumn := "1 apos ``"
			oColumn:Position := 0
		oItems := oList:Items()
			oItems:Add("Item A")
			oItems:Add("Item B")
			oItems:Add("Item C")
		oList:FilterBarCaption := "`<r>` + value"
		oList:FilterBarPromptVisible := 2067/*exFilterBarCompact+exFilterBarSingleLine+exFilterBarVisible+exFilterBarPromptVisible*/
		oColumn1 := oList:Columns:Item(0)
			oColumn1:FilterType := 240/*exFilter*/
			oColumn1:Filter := "Item A|Item B"
		oList:ApplyFilter()
		oList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN