198
Is it possible to change the header's visual appearance (EBN)

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oPropertiesList:HeaderVisible := .T.
		oPropertiesList:SetProperty("BackColorHeader",0x1000000)
		oPropertiesList:HeaderHeight := 22
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
197
Is it possible to change the header's visual appearance

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:HeaderVisible := .T.
		oPropertiesList:HeaderAppearance := 4/*Etched*/
		oPropertiesList:HeaderHeight := 22
		oPropertiesList:EndUpdate()

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

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:ImageSize := 32
		oPropertiesList:DefaultItemHeight := 36
		oPropertiesList:HeaderHeight := oPropertiesList:DefaultItemHeight()
		oPropertiesList:Font():Size := 16
		oPropertiesList:ToolTipFont():Size := oPropertiesList:Font():Size()
		oPropertiesList:FilterBarFont():Size := oPropertiesList:Font():Size()
		oPropertiesList:Indent := 26
		oPropertiesList:DescriptionHeight := 96
		oPropertiesList:DisplayBoolAs := 1/*exBoolCheck*/
		oPropertiesList:FilterBarPromptVisible := -1/*exFilterBarVisible*/
		oPropertiesList:HeaderVisible := .T.
		oPropertiesList: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 := oPropertiesList: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==")
		oPropertiesList:SetProperty("BackColorHeader",0x4c6c6c6)
		oPropertiesList:SetProperty("SelBackColor",0x4000000)
		oPropertiesList:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,1 } )  , .F. ))
		oPropertiesList:SetProperty("Background",32/*exCursorHoverColumn*/,-1)
		oPropertiesList:SetProperty("Background",0/*exHeaderFilterBarButton*/,0x4000000)
		oPropertiesList:SetProperty("Background",1/*exFooterFilterBarButton*/,0x40000ff)
		oPropertiesList:SetProperty("Background",70/*exCheckBoxState0*/,0x1000000)
		oPropertiesList:SetProperty("Background",71/*exCheckBoxState1*/,0x2000000)
		oPropertiesList:SetProperty("Background",72/*exCheckBoxState2*/,0x3000000)
		oPropertiesList:Select(oPropertiesList)
		oPropertiesList:Sort()
		oPropertiesList:EndUpdate()

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

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:ImageSize := 16
		oPropertiesList:DisplayBoolAs := 1/*exBoolCheck*/
		oPropertiesList:FilterBarPromptVisible := -1/*exFilterBarVisible*/
		oPropertiesList:HeaderVisible := .T.
		oPropertiesList: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 := oPropertiesList:VisualAppearance()
			oAppearance:Add(4,"gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHLUXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBUrGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDs" +;
		"YYDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVmWCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVoWiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiSe41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbh" +;
		"FCcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==")
		oPropertiesList:SetProperty("BackColorHeader",0x4c6c6c6)
		oPropertiesList:SetProperty("SelBackColor",0x4000000)
		oPropertiesList:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,1 } )  , .F. ))
		oPropertiesList:SetProperty("Background",32/*exCursorHoverColumn*/,-1)
		oPropertiesList:SetProperty("Background",0/*exHeaderFilterBarButton*/,0x4000000)
		oPropertiesList:SetProperty("Background",1/*exFooterFilterBarButton*/,0x40000ff)
		oPropertiesList:Select(oPropertiesList)
		oPropertiesList:Sort()
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
194
How can I add property of button type

PROCEDURE OnModalPropertyChange(oPropertiesList,Property,Value,Cancel)
	DevOut( Transform(oPropertiesList:Property(),"") )
RETURN

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:ModalPropertyChange := {|Property,Value,Cancel| OnModalPropertyChange(oPropertiesList,Property,Value,Cancel)} /*Fired when the properties browser is about to change a property's value using a modal dialog.*/

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Button","the button is always shown",-3/*Button*/)
		oPropertiesList:Add("EditButton","show on focus only",15/*EditButton*/)
		oPropertiesList:Add("EditPage","show on focus only",6/*EditPage*/)
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
193
Is it possible to decode/view the control's Layout property
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Select(oPropertiesList)
		oPrint := CreateObject("Exontrol.Print")
			DevOut( oPrint:Decode64TextW(oPropertiesList:Layout()) )
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
192
Does your control supports scrolling by touching the screen

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Select(oPropertiesList)
		oPropertiesList:AutoDrag := 4112/*exAutoDragScrollOnShortTouch+exAutoDragScroll*/
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
191
If I enabled the list filter on runtime, the user can click on [x] and close the filter text. Can I disabled this action

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:AllowMultipleValuesOnEnum := .T.
		oPropertiesList:Select(oPropertiesList)
		oPropertiesList:Sort(.T.)
		oPropertiesList:FilterBarPromptVisible := 1/*exFilterBarAlwaysVisible*/
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
190
Is it possible to specify a different background/foreground color for the property from the cursor, aka hot item

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Select(oPropertiesList)
		oPropertiesList:SetProperty("HotBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,255 } )  , .F. ))
		oPropertiesList:SetProperty("HotForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oPropertiesList:SetProperty("SelBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,128 } )  , .F. ))
		oPropertiesList:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
189
My development environment does not have any Object,GetOcx,DefaultDispatch,GetControlUnknown,nativeObject, ... property, is there any alternative I can pass the component to PrintExt so I can get printed

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Select(oPropertiesList)
		oPropertiesList:Template := "Dim p;p = CreateObject(`Exontrol.Print`);p.PrintExt = Me;p.AutoRelease = False;p.Preview();"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
188
How can I display checkboxes for flags values only

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:AllowMultipleValuesOnEnum := .T.
		oProperty := oPropertiesList:Add("Nextevent",81,8/*EditEnum*/)
			oProperty:AddValue(1,"Option A")
			oProperty:AddValue(2,"Option B")
			oProperty:AddValue(3,"Option C")
			oProperty:AddValue(4,"Option D")
			oProperty:AddValue(16,"Flag A")
			oProperty:AddValue(32,"Flag B")
			oProperty:AddValue(64,"Flag C")
			oProperty:AddValue(128,"Flag D")
		oPropertiesList:Refresh()
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
187
Is is possible to display a checkbox on ENUM types

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:AllowMultipleValuesOnEnum := .T.
		oProperty := oPropertiesList:Add("Nextevent",5,8/*EditEnum*/)
			oProperty:AddValue(1,"Flag A")
			oProperty:AddValue(2,"Flag B")
			oProperty:AddValue(4,"Flag C")
			oProperty:AddValue(8,"Flag D")
			oProperty:AddValue(16,"Flag E")
		oPropertiesList:Refresh()
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
186
Is it possible to display the full path in the EditFolder editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oProperty := oPropertiesList:Add("Folder","c:\",18/*EditFolder*/)
			oProperty:SetProperty("Option",12/*exEditFolderTitle*/,"Current Folder")
			oProperty:SetProperty("Option",15/*exEditFolderShowEditBox*/,.F.)
			oProperty:SetProperty("Option",17/*exEditFolderShowPath*/,.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
185
How can I include a "New Folder" button so user can create new folders when using the EditFolder form

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Folder","",18/*EditFolder*/):SetProperty("Option",16/*exEditFolderAllowNewFolder*/,.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
184
Is it possible to show always the selection in the files/folders list in the EditFolder dialog
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Folder","",18/*EditFolder*/):SetProperty("Option",14/*exEditFolderNewUI*/,.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
183
How can I hide the editbox in the EditFolder editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Folder","",18/*EditFolder*/):SetProperty("Option",15/*exEditFolderShowEditBox*/,.F.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
182
How can I include the files in the in the EditFolder editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Folder","",18/*EditFolder*/):SetProperty("Option",13/*exEditFolderIncludeFiles*/,.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
181
Is it possible to change the caption in the EditFolder editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Folder","",18/*EditFolder*/):SetProperty("Option",12/*exEditFolderTitle*/,"Select a directory...")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
180
Is it possible to filter for properties that contains a specified text

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Select(oPropertiesList)
		oPropertiesList:Sort(.T.)
		oPropertiesList:FilterBarPromptVisible := -1/*exFilterBarVisible*/
		oPropertiesList:FilterBarPrompt := "<font ;7><fgcolor=FF0000><c>Start Filtering..."
		oPropertiesList:FilterBarPromptPattern := "back"
		oPropertiesList:IncrementalSearch := 1/*exContains*/
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
179
How can I filter the properties at runtime

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Select(oPropertiesList)
		oPropertiesList:Sort(.T.)
		oPropertiesList:FilterBarPromptVisible := -1/*exFilterBarVisible*/
		oPropertiesList:FilterBarPrompt := "<font ;7><fgcolor=FF0000><c>Start Filtering..."
		oPropertiesList:FilterBarPromptPattern := "Back"
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
178
Is it possible to change the caption being displayed in the filter bar

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Select(oPropertiesList)
		oPropertiesList:Sort(.T.)
		oPropertiesList:FilterBarPromptVisible := -1/*exFilterBarVisible*/
		oPropertiesList:FilterBarPrompt := "<font ;7><fgcolor=FF0000><c>Start Filtering..."
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
177
How can I enable the filter-prompt feature

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Select(oPropertiesList)
		oPropertiesList:Sort(.T.)
		oPropertiesList:FilterBarPromptVisible := -1/*exFilterBarVisible*/
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
176
How do I specify the height of the control's header bar

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:HeaderVisible := .T.
		oPropertiesList:HeaderHeight := 36
		oPropertiesList:Select(oPropertiesList)
		oPropertiesList:Sort(.T.)
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
175
Is it possible to display a checkbox for ENUM types that allow BIT combinations

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:AllowMultipleValuesOnEnum := .T.
		oPropertiesList:Select(oPropertiesList)
		oPropertiesList:Sort(.T.)
		oPropertiesList:FilterBarPromptVisible := -1/*exFilterBarVisible*/
		oPropertiesList:FilterBarPromptPattern := "Inc"
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
174
Can I add different EditFile entries with different filters

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Text File","text.txt",17/*EditFile*/):SetProperty("Option",9/*exEditFileFilter*/,"Text Files (*.txt)|*.txt")
		oPropertiesList:Add("INI File","text.ini",17/*EditFile*/):SetProperty("Option",9/*exEditFileFilter*/,"INI Files (*.ini)|*.ini")
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
173
Is it possible to expand items/entries when user types for searching properties

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:ExpandOnSearch := .T.
		oPropertiesList:Select(oPropertiesList)
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
172
Is it possible to show ticks on the slider control

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Slider",50,16/*EditSlider*/)
		oProperty := oPropertiesList:Add("Slider w/h ticks",50,16/*EditSlider*/)
			oProperty:SliderStep := 10
			oProperty:SliderTickFrequency := 10
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
171
How can I edit a number between a range or interval
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oProperty := oPropertiesList:Add("Slider",50,16/*EditSlider*/)
			oProperty:Numeric := .T.
			oProperty:SpinStep := 0
			oProperty:SliderWidth := 0
			oProperty:SliderStep := 0
			oProperty:SliderMin := 0
			oProperty:SliderMax := 100

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
170
How can I edit a number between a range or interval
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oProperty := oPropertiesList:Add("Slider","0.5",16/*EditSlider*/)
			oProperty:NumericFloat := .T.
			oProperty:SpinStep := 0
			oProperty:SliderWidth := 0
			oProperty:SliderStep := 0
			oProperty:SliderMin := 0
			oProperty:SliderMax := 1

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
169
How can I add a slider or track bar editor, with a fixed size

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Slider","0.5",16/*EditSlider*/):SliderWidth := 48
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
168
How can I add a slider or track bar editor, so it covers half of the cell
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Slider","0.5",16/*EditSlider*/):SliderWidth := -50
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
167
How can I add a slider or track bar editor, so it covers the full cell

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Slider","0.5",16/*EditSlider*/):SliderWidth := -100
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
166
How can I add a spin editor within a range or interval of float numbers

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:AllowSpin := .T.
		oProperty := oPropertiesList:Add("Slider","0.5",16/*EditSlider*/)
			oProperty:NumericFloat := .T.
			oProperty:SpinStep := ".01"
			oProperty:SliderWidth := 0
			oProperty:SliderMin := 0
			oProperty:SliderMax := 1
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
165
How can I add a spin editor within a range or interval of numbers

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:AllowSpin := .T.
		oProperty := oPropertiesList:Add("Slider",10,16/*EditSlider*/)
			oProperty:Numeric := .T.
			oProperty:SliderWidth := 0
			oProperty:SliderMin := 5
			oProperty:SliderMax := 15
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
164
Can I use your HTML format to display a property

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oProperty,oProperty1
	LOCAL oPropertiesList

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oPropertiesList:SetProperty("SelBackColor",0x1000000)
		oPropertiesList:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oPropertiesList:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oPropertiesList:SetProperty("ColumnWidth",0,304)
		oProperty := oPropertiesList:Add("I1","link1",1/*Edit*/)
			oProperty:HTMLName := "<br>text<off 4>subscript</off><off -4>sup<off -4>ers</off>cript</off> icons <img>1</img>, <img>2</img>, ... pictures <img>p1</img>, <img>p2</img> <br><br>text <b>bold</b>, <i>italic</i>, <u>underline</u>, <s>strikeout</s>, ...<br><dotline>and so on...<br> <a>anchor</a> or <a2>hyperlink</a><br><fgcolor=FF0000>fgcolor</fgcolor> or <bgcolor=00FF00>bgcolor</bgcolor>"
			oProperty:Height := 128
		oProperty1 := oPropertiesList:Add("I2","link1",1/*Edit*/)
			oProperty1:HTMLName := "<sha ;;0>antialiasing</sha> format"
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
163
How can I display I picture to a property

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oProperty,oProperty1
	LOCAL oPropertiesList

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:SetProperty("HTMLPicture","pic1","c:\exontrol\images\zipdisk.gif")
		oPropertiesList:SetProperty("HTMLPicture","pic2","c:\exontrol\images\auction.gif")
		oProperty := oPropertiesList:Add("Picture 1","link1",1/*Edit*/)
			oProperty:HTMLName := "<img>pic1</img> <b>1</b>"
			oProperty:Height := 48
		oPropertiesList:Add("Edit","text",1/*Edit*/)
		oProperty1 := oPropertiesList:Add("Picture 2","link2",1/*Edit*/)
			oProperty1:HTMLName := "<img>pic2</img> <b>2</b>"
			oProperty1:Height := 32
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
162
How do I display an icon to a property

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:DefaultItemHeight := 18
		oPropertiesList:BeginUpdate()
		oPropertiesList:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oPropertiesList:Add("I1","link1",1/*Edit*/):HTMLName := "<img>1</img> <b>1</b>"
		oPropertiesList:Add("Edit","text",1/*Edit*/)
		oPropertiesList:Add("I2","link1",1/*Edit*/):HTMLName := "<img>2</img> <b>2</b>"
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
161
How do I specify the height of a property

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oProperty,oProperty1
	LOCAL oPropertiesList

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:SetProperty("HTMLPicture","pic1","c:\exontrol\images\zipdisk.gif")
		oPropertiesList:SetProperty("HTMLPicture","pic2","c:\exontrol\images\auction.gif")
		oProperty := oPropertiesList:Add("Picture 1","link1",1/*Edit*/)
			oProperty:HTMLName := "<img>pic1</img> <b>1</b>"
			oProperty:Height := 48
		oPropertiesList:Add("Edit","text",1/*Edit*/)
		oProperty1 := oPropertiesList:Add("Picture 2","link2",1/*Edit*/)
			oProperty1:HTMLName := "<img>pic2</img> <b>2</b>"
			oProperty1:Height := 48
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
160
How do I edit a float number

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:AllowSpin := .T.
		oProperty := oPropertiesList:Add("Edit","0.5",1/*Edit*/)
			oProperty:NumericFloat := .T.
			oProperty:SpinStep := "0.1"
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
159
How do I change the step for a spin

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:AllowSpin := .T.
		oPropertiesList:Add("Edit",10,1/*Edit*/):SpinStep := 10
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
158
How do I sort the items in a drop down editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oProperty := oPropertiesList:Add("Enum",1,8/*EditEnum*/)
			oProperty:DropDownItems := 1
			oProperty:AddValue(1,"First choice")
			oProperty:AddValue(2,"Second choice")
			oProperty:AddValue(3,"Third choice")
			oProperty:SortItems()
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
157
How do I specify the number of visible items in a drop down editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oProperty := oPropertiesList:Add("Enum",1,8/*EditEnum*/)
			oProperty:DropDownItems := 1
			oProperty:AddValue(1,"First choice")
			oProperty:AddValue(2,"Second choice")
			oProperty:AddValue(3,"Third choice")
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
156
How do I bold a property

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Edit","text",1/*Edit*/):Bold := .T.
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
155
How do I disable or enable a property

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Edit","text",1/*Edit*/):Enabled := .F.
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
154
How do I specify a tooltip for a property

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:AllowTooltip := .T.
		oPropertiesList:Add("ToolTip","",1/*Edit*/):ToolTip := "This is a bit of text that shows up when the user hovers the cursor"
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
153
How do I specify the masking character

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oProperty := oPropertiesList:Add("Edit",12,1/*Edit*/)
			oProperty:Mask := "##"
			oProperty:MaskChar := 48
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
152
How do I specify a mask

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Edit",12,1/*Edit*/):Mask := "##"
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
151
How do I edit a number

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:AllowSpin := .T.
		oPropertiesList:Add("Edit",15,1/*Edit*/):Numeric := .T.
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
150
How do I change the foreground color for a cell

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Edit","text",1/*Edit*/):SetProperty("CellForeColor",0,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
149
How do I change the foreground color for a cell

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Edit","text",1/*Edit*/):SetProperty("CellForeColor",1,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
148
How do I change the background color for a cell

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Edit","text",1/*Edit*/):SetProperty("CellBackColor",0,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
147
How do I change the background color for a cell

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Edit","text",1/*Edit*/):SetProperty("CellBackColor",1,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
146
How do I change the background color for a property

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Edit","text",1/*Edit*/):SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
145
How do I change the foreground color for a property

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Edit","text",1/*Edit*/):SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
144
How do I associate an extra data to a property

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Color",255,2/*EditColor*/):UserData := "your data"
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
143
How do I get the caption of the property, as it is displayed in the browser

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Color",255,2/*EditColor*/):ID := 12345
		oPropertiesList:Add(oPropertiesList:Property("Color"):DisplayValue(),"",-1/*Label*/):Bold := .T.
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
142
How do I get the value of the property

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Edit","text",1/*Edit*/):ID := 12345
		oPropertiesList:Add(oPropertiesList:Property("Edit"):Value(),"",-1/*Label*/):Bold := .T.
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
141
How do I make a property read only
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Edit","text",1/*Edit*/):Locked := .T.
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
140
How do I specify a description for a property

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("Edit","text",1/*Edit*/):Description := "This is just a description"
		oPropertiesList:SelectedProperty := oPropertiesList:Property("Edit")
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
139
How do I get the identifer of the property

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Edit","text",1/*Edit*/):ID := 12345
		oPropertiesList:Add(oPropertiesList:Property("Edit"):ID(),"",-1/*Label*/):Bold := .T.
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
138
How do I get the type of the property
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Edit","text",1/*Edit*/)
		oPropertiesList:Add(oPropertiesList:Property("Edit"):Type(),"",-1/*Label*/):Bold := .T.
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
137
How do I get the name of the property

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Edit","text",1/*Edit*/)
		oPropertiesList:Add(oPropertiesList:Property("Edit"):Name(),"",-1/*Label*/):Bold := .T.
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
136
How do I select a folder

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Folder","",18/*EditFolder*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
135
How do I select a file

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("File","",17/*EditFile*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
134
How do I slider or trackbar editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Slider",50,16/*EditSlider*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
133
How do I add a button

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Button","Aaa",15/*EditButton*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
132
How do I add a check box editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Check",.T.,14/*EditCheck*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
131
How do I add a color editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Color",255,13/*EditColorPage*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
130
How do I add a new object properties inside the control

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("MySelf 1",oPropertiesList,12/*EditObject*/)
		oPropertiesList:Add("MySelf 2",oPropertiesList,12/*EditObject*/)
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
129
How do I add a new objects inside the control

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:Add("MySelf",oPropertiesList,12/*EditObject*/)
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
128
How do I add a drop down editor with some predefined values

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oProperty := oPropertiesList:Add("DropDown","Aaa",11/*EditDropDown*/)
			oProperty:AddValue(1,"First choice")
			oProperty:AddValue(2,"Second choice")
			oProperty:AddValue(3,"Third choice")
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
127
How do I add a password editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Password","pass",10/*EditPassword*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
126
How do I add a date picker editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Date","1/1/2001",9/*EditDate*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
125
How do I add a drop down editor with some predefined values

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oProperty := oPropertiesList:Add("Enum",1,8/*EditEnum*/)
			oProperty:AddValue(1,"First choice")
			oProperty:AddValue(2,"Second choice")
			oProperty:AddValue(3,"Third choice")
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
124
How do I add a boolean editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Boolean",.T.,7/*EditBoolean*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
123
How do I add a button or a page editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Page","",6/*EditPage*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
122
How do I add a picture editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Picture",,5/*EditPicture*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
121
How do I add a font editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Font","Arial",4/*EditFontName*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
120
How do I add a font editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Font","Arial",3/*EditFont*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
119
How do I add a color editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Color",255,2/*EditColor*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
118
How do I add an edit

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Add("Edit","text",1/*Edit*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
117
How do I specify the character sets being included in the font editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:SetProperty("Option",7/*exFontCharSet*/,"0")
		oPropertiesList:Add("Font","Arial",4/*EditFontName*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
116
How do I show or hide the bottom scroll bar in the drop down date picker calendar editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:SetProperty("Option",6/*exDateShowScroll*/,.F.)
		oPropertiesList:Add("Date","1/1/2001",9/*EditDate*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
115
How do highlight the "Today" date is the drop down date picker calendar editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:SetProperty("Option",5/*exDateMarkToday*/,.T.)
		oPropertiesList:Add("Date","1/1/2001",9/*EditDate*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
114
How do I show or hide the "Today" button is the drop down date picker calendar editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:SetProperty("Option",4/*exDateShowTodayButton*/,.F.)
		oPropertiesList:Add("Date","1/1/2001",9/*EditDate*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
113
How to specify the first day of the week in the drop down date picker calendar editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:SetProperty("Option",3/*exDateFirstWeekDay*/,1)
		oPropertiesList:Add("Date","1/1/2001",9/*EditDate*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
112
How to specifies the shortcut for the weekdays to be displayed in the drop down date picker calendar editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:SetProperty("Option",2/*exDateWeekDays*/,"Du Lu Ma Mi Jo Vi Si")
		oPropertiesList:Add("Date","1/1/2001",9/*EditDate*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
111
How can I change the name of the months in the drop down date picker calendar editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:SetProperty("Option",1/*exDateMonths*/,"Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre Décembre")
		oPropertiesList:Add("Date","1/1/2001",9/*EditDate*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
110
Can I change the "Today" caption being displayed in the drop down date picker calendar editor

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:SetProperty("Option",0/*exDateTodayCaption*/,"Azi")
		oPropertiesList:Add("Date","1/1/2001",9/*EditDate*/)
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
109
How can I open the drop down editors, using a different than F4 key
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:EditOnSelect := .F.
		oPropertiesList:EditOnKey := 113
		oPropertiesList:Select(oPropertiesList)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
108
How do I display the color properties as RGB

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:BeginUpdate()
		oPropertiesList:DisplayColorAs := 1/*exRGB*/
		oPropertiesList:Add("Red",255,2/*EditColor*/)
		oPropertiesList:Add("Blue",16711680,2/*EditColor*/)
		oPropertiesList:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
107
How do I get the list of properties being listed as a string

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:Select(oPropertiesList)
		oPropertiesList:Add(" _ toString _ ",oPropertiesList:ToString(0/*exLiterals*/),15/*EditButton*/):Bold := .T.
		oPropertiesList:Sort(.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
106
How can I display a picture to a property

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:DefaultItemHeight := 48
		oPropertiesList:SetProperty("HTMLPicture","pic1","c:\exontrol\images\zipdisk.gif")
		oPropertiesList:SetProperty("HTMLPicture","pic2","c:\exontrol\images\auction.gif")
		oPropertiesList:Add("Picture 1","link1",1/*Edit*/):HTMLName := "Pic <img>pic1</img> or <img>pic2</img>"
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
105
How do I show or hide the properties with multiple parameters

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:ShowMultipleParams := .F.
		oPropertiesList:Select(oPropertiesList)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
104
How can I add a hyperlink or anchor element

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oPropertiesList:SetProperty("SelBackColor",oPropertiesList:BackColor())
		oPropertiesList:SetProperty("SelForeColor",oPropertiesList:ForeColor())
		oPropertiesList:Add("Link 1","link1",1/*Edit*/):HTMLName := "Link <a1>one</s>"
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
103
Can I change the visual effect, appearance for the anchor, hyperlink elements, in HTML captions, after the user clicks it

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:SetProperty("SelBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,128,255 } )  , .F. ))
		oPropertiesList:SetProperty("FormatAnchor",.F.,"<b><u><fgcolor=880000> </fgcolor></u></b>")
		oPropertiesList:Add("Link 1","link1",1/*Edit*/):HTMLName := "Link <a1>one</s>"
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
102
Can I change the visual effect, appearance for the anchor, hyperlink elements, in HTML captions

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:SetProperty("SelBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,128,255 } )  , .F. ))
		oPropertiesList:SetProperty("FormatAnchor",.T.,"<b><u> </u></b>")
		oPropertiesList:Add("Link 1","link1",1/*Edit*/):HTMLName := "Link <a1>one</s>"
		oPropertiesList:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
101
How do I specify the indentation of the child items relative to their parents

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

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

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

	oPropertiesList := XbpActiveXControl():new( oForm:drawingArea )
	oPropertiesList:CLSID  := "Exontrol.PropertiesList.1" /*{A703DF80-DFF3-48D7-A4C7-47CF6A48425C}*/
	oPropertiesList:create(,, {10,60},{610,370} )

		oPropertiesList:AutoIndent := .F.
		oPropertiesList:Indent := 8
		oPropertiesList:Select(oPropertiesList)
		oPropertiesList:ExpandAll()

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