110
|
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 oColumn
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:ImageSize := 32
oTreeCube:Font():Size := 16
oTreeCube:CheckBoxWidth := 32
oTreeCube:CheckBoxHeight := 32
oTreeCube: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 := oTreeCube: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=")
oTreeCube:SetProperty("Background",70/*exCheckBoxState0*/,0x1000000)
oTreeCube:SetProperty("Background",71/*exCheckBoxState1*/,0x2000000)
oTreeCube:SetProperty("Background",72/*exCheckBoxState2*/,0x3000000)
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ShowSelection := .F.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 16
oColumn := oFaceTree:Columns():Add("<c><b>Check")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oFaceTree:Items():ToString := "Check A<img>1</img>,Check B<img>2</img>,Check C<img>3</img>"
oFaceTree:ItemByIndex(1):SetProperty("State",0,1)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
109
|
ImageSize property on 16 (default) (specifies the size of control' icons)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:ImageSize := 16
oTreeCube:Images("gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOqdSqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVttmp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8acvQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtT" +;
"GsbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgPnwD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg==")
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ShowSelection := .F.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 16
oColumn := oFaceTree:Columns():Add("<c><b>Check")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oFaceTree:Items():ToString := "Check A<img>1</img>,Check B<img>2</img>,Check C<img>3</img>"
oFaceTree:ItemByIndex(1):SetProperty("State",0,1)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
108
|
How can I add a hierarchy (multiple-columns), using the Item.ToString method

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:TexturePicturePath := ""
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:LinesAtRoot := -1/*exLinesAtRoot*/
oFaceTree:Columns():Add(Transform(1,"")):Alignment := 0/*LeftAlignment*/
oFaceTree:Columns():Add(Transform(2,"")):Alignment := 0/*LeftAlignment*/
oFaceTree:Columns():Add(Transform(3,"")):Alignment := 0/*LeftAlignment*/
oFaceTree:Items():ToString := "Root 1;Root 2;Root 3(Child1.1;Child2.1;Child3.1(SubChild 1.1;SubChild 2.1;SubChild 3.1,SubChild 2.1;SubChild 2.2;SubChild 2.3),Child 1.2;Child 2.2;Child 3.2)"
oFaceTree:Items():ExpandAll()
DevOut( oFaceTree:Items:Item(0):ToString() )
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
107
|
How can I add a hierarchy (single column), using the Item.ToString method

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:TexturePicturePath := ""
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:LinesAtRoot := -1/*exLinesAtRoot*/
oFaceTree:Columns():Add(""):Alignment := 0/*LeftAlignment*/
oFaceTree:Items():Count := 1
oFaceTree:Items:Item(0):ToString := "Root(Child1(SubChild 1,SubChild 2),Child2)"
oFaceTree:Items():ExpandAll()
DevOut( oFaceTree:Items:Item(0):ToString() )
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
106
|
How can add items to a list

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:TexturePicturePath := ""
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:Columns():Add("Pos"):FormatColumn := "1 pos ``"
oFaceTree:Items():Count := oTreeCube:FrontFace():FaceTree():VisibleItemsCount()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
105
|
How can I split a cell

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFaceTree
LOCAL oItem,oItem1
LOCAL oItems
LOCAL oTreeCube
LOCAL s
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:SetProperty("HTMLPicture","P1","c:\exontrol\images\zipdisk.gif")
oTreeCube:SetProperty("HTMLPicture","P2","c:\exontrol\images\auction.gif")
oTreeCube:SetProperty("HTMLPicture","P3","c:\exontrol\images\colorize.gif")
oTreeCube:SetProperty("HTMLPicture","P4","c:\exontrol\images\auction.gif")
oFace := oTreeCube:FrontFace()
oFaceTree := oFace:CreateTree()
oFaceTree:Columns():Add("Default"):Alignment := 0/*LeftAlignment*/
oItems := oFaceTree:Items()
oItem := oItems:Add("Choose your quick actions")
oItem:SetProperty("SingleLine",0,.F.)
oItem1 := oItem:Items():Add("")
oItem1:Height := 48
s := 0
oItem1:SetProperty("Value",s,"<c><img>P1</img>")
oItem1:SetProperty("CellWidth",s,48)
oItem1:SetProperty("HasButton",s,.T.)
s := oItem1:SplitCell(s)
oItem1:SetProperty("Value",s,"<c><img>P2</img>")
oItem1:SetProperty("CellWidth",s,48)
oItem1:SetProperty("HasButton",s,.T.)
s := oItem1:SplitCell(s)
oItem1:SetProperty("Value",s,"<c><img>P3</img>")
oItem1:SetProperty("CellWidth",s,48)
oItem1:SetProperty("HasButton",s,.T.)
s := oItem1:SplitCell(s)
oItem1:SetProperty("Value",s,"<c><img>P4</img>")
oItem1:SetProperty("CellWidth",s,48)
oItem1:SetProperty("HasButton",s,.T.)
s := oItem1:SplitCell(s)
oItem:Expanded := .T.
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
104
|
I've noticed that the Face has no background color. Still, can I change the face's background color

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFaceCalendar
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oFace := oTreeCube:FrontFace()
oFaceCalendar := oFace:CreateCalendar()
oFaceCalendar:AutoSize := 1/*exFitClient*/
oFaceCalendar:MaxMonthX := oFaceCalendar:MinMonthX()
oFaceCalendar:MaxMonthY := oFaceCalendar:MinMonthY()
oFaceCalendar:ShowTodayButton := .F.
oFace:SetProperty("ExtraTitle","extra",1/*exTitleFaceBackColor*/,15790320)
oFace:SetProperty("ExtraTitle","extra",8/*exTitleFaceHeight*/,"height")
oFace:SetProperty("ExtraTitle","extra",9/*exTitleFaceVisible*/,1)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
103
|
How can I change the +/- expanding/collapsing buttons

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oAppearance
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:TexturePicturePath := ""
oTreeCube:BeginUpdate()
oAppearance := oTreeCube:VisualAppearance()
oAppearance:Add(1,"gBFLBCJwBAEHhEJAADhABDgCg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXIUBxAAqXZZFUaKAgOMJDTLBAzUSAAYhtHqeJBjID4JA6UJXRpIAIQSSBUjGOg6TiMUYZAguAxCEzZUT0fAYUQSCC3ZzDCKoRpiCT7Xg8V5OVbjUz9P7AMBwLA7erxap6PJeD54QymGp/R5eMhyLI8UxXFqRY6veKtJhGDIrT5CEIQVA9EyXJqnahqOiaCguPorQy/dYYdg2BYBPS6MAvG4bVrOd59XrgN42fY2ByzAqlMQwS7rOqiY6YWTnehWToHE+JZUmoLB5CufQuAkBYkGO+ZrDWAo7keZZyHmH5+i8X4bluaJyHgGB9mQHx3JjBpViqJRHmueZ7H8Xo3i2fYAl+d5tncMRfDcdZeDMDIjCCJwokoEoQiEJ4KCIfIdgU" +;
"SZIAWaoGCEUh2BIJ4gnKBgMDICAnHoCggg0Aw4k0KAJkIagaguYwIj4LAmiKEw2CUIIiHMUJSDQSYyGCFYMGQCJCD0JRjiMRg3gmTYjGSVgmgkchSD4JJklIRIXCSSQYj4U4UgkQhGE+EwJEkJJWhGpgGGIOBNmMdhPg8SRiHCGAlibNhohqJpJi4T4ZA2WYIgEYInGOGJlDkCQyECDoTEkKQ+E+C5oCIVhQCUCQpnSDoeg4SZZH8YdhjibQ7AiUgkgcJFyiyEYmGmOhqhyJ5pmILoYCKaRSB6Eg7CcZgZggaRqHqNoTiuDpKkKMormsQ4xiUYgYiKEo6CCWgWiqPovloZoGjoKQYiOLR1ECUAQIC")
oAppearance:Add(2,"gBFLBCJwBAEHhEJAADhABDwCg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXIUBxAAqXZZFUaKAgOMJDTLBAzUSAAYhtHqeJBjID4JA6UJXRpIAIQSSBUjGOg6TiMUYZAguAxCEzZUT0fAYUQSCC3ZzDCKoRpiCT7Xg8V5OVbjUz9P7AMBwLA7erxap6PJeD54QymGp/R5eMhyLI8UxXFqRY6veKtJhGDIrT5CEIQVA9EyXJqnahqOiaCguPorQy/dYYdg2BYBPS6MAvG4bVrOd59XrgN42fY2ByzAqlMQwS7rOqiY6YWTnehWToHE+JZUmoLB5CufQuAkBYkGO+ZrDWAo7keZZyHmPQ+g8X4fluYBhneEB9l0Iwpg6RRWiqFQfg+V5nnefh/GAB5yAIfRMFeRZdHeDJDCiSApkoMoEiQKBJmKCIfCcYQiHI" +;
"FYFkmeBaBOA5JmgsICEyAgJl6AZICMQJODMSgCHCGg/mKSI2C6C5jAiNgpCaIhjDYIggiIQxQlINBJjIYIVgwZAJAYPQlGOIxGDeCQNiMZJWCaCRyFIPgkmSUhEhcJJlCkUhThUZQiFCEYTmSQhSEkNYkHYBIBhiTgTHiXYTmOUhYhwJgJGmJhuhsJoZi4bYbCSeYUl2GJIBYCh4DmDhThCEwkAiaQ0hKE5oEIVITiEaB6BqAofkiaZwmSHgXnYGh4DuDpTjCDQiEgchAg0IpJBobodicKZqgaIAimmIguhcIZpEOMh4GGGIGhaKYrmkWpAmyLIrEqRo2DsGhWCGCgpCuQgNiEaosAsBYmGga5ChGCg6lcVANAEgI")
oTreeCube:SetProperty("Background",84/*exTreeGlyphCollapsed*/,0x1000000)
oTreeCube:SetProperty("Background",85/*exTreeGlyphExpanded*/,0x2000000)
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ExpandOnDblClick := .T.
oFaceTree:ItemPadding := 16
oFaceTree:HeaderVisible := .F.
oFaceTree:HasLines := 2/*exThinLine*/
oFaceTree:LinesAtRoot := 3/*exGroupLinesInside*/
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:Columns():Add("Def"):Alignment := 0/*LeftAlignment*/
oFaceTree:Items():ToString := "Root 1(Child 1,Child 2),Root 2(Child 3,Child 4)"
oFaceTree:ItemByIndex(3):Expanded := .T.
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
102
|
How can I use the ToString property

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:TexturePicturePath := ""
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:Columns():ToString := "Column 1,Column 2,Column 3,Column 4"
oFaceTree:Items():ToString := "1;2;3;4,5;6;7;8,9;10;11;12,13;14;15;16,17;18;29;20,21;22;23;24,25;26;27;28,29;30;31;32"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
101
|
How can I use the Background property

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceCalendar
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:VisualAppearance():Add(1,"C:\Program Files\Exontrol\ExButton\Sample\EBN\Assorted\calendar_single.ebn")
oTreeCube:SetProperty("Background",8/*exDateHeader*/,0x1000000)
oTreeCube:SetProperty("Background",7/*exWeeksHeader*/,AutomationTranslateColor( GraMakeRGBColor ( { 250,250,250 } ) , .F. ))
oTreeCube:SetProperty("Background",6/*exDaysHeader*/,AutomationTranslateColor( GraMakeRGBColor ( { 250,250,250 } ) , .F. ))
oTreeCube:SetProperty("Background",9/*exDateTodayUp*/,0x2000000)
oTreeCube:SetProperty("Background",31/*exDateTodayForeColor*/,AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oTreeCube:TexturePicturePath := ""
oFaceCalendar := oTreeCube:FrontFace():CreateCalendar()
oFaceCalendar:Date := "01/01/2016"
oFaceCalendar:AutoSize := 1/*exFitClient*/
oFaceCalendar:MaxMonthX := oFaceCalendar:MinMonthX()
oFaceCalendar:MaxMonthY := oFaceCalendar:MinMonthY()
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
100
|
How can I display two lists of radio-buttons

PROCEDURE OnFaceTreeStateChanged(oTreeCube,Tree,Item,Column)
LOCAL oItem
oItem := oTreeCube:FrontFace():FaceTree():ItemByIndex(Item)
DevOut( "State" )
DevOut( Transform(oItem:State(0),"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7
LOCAL oItems,oItems1,oItems2
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:FaceTreeStateChanged := {|Tree,Item,Column| OnFaceTreeStateChanged(oTreeCube,Tree,Item,Column)} /*Notifies that a cell changes its state into a face of tree type.*/
oTreeCube:TexturePicturePath := ""
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:HeaderVisible := .F.
oFaceTree:ItemPadding := 16
oFaceTree:DrawGridLines := 0/*exNoLines*/
oFaceTree:Columns():Add("Radio"):Alignment := 0/*LeftAlignment*/
oItems := oFaceTree:Items()
oItem := oItems:Add("Group A")
oItems1 := oItem:Items()
oItem1 := oItems1:Add("Radio <b>1")
oItem1:SetProperty("HasRadioButton",0,.T.)
oItem1:SetProperty("RadioGroup",0,1234)
oItem2 := oItems1:Add("Radio <b>2")
oItem2:SetProperty("HasRadioButton",0,.T.)
oItem2:SetProperty("RadioGroup",0,1234)
oItem2:SetProperty("State",0,1)
oItem3 := oItems1:Add("Radio <b>3")
oItem3:SetProperty("HasRadioButton",0,.T.)
oItem3:SetProperty("RadioGroup",0,1234)
oItem:Expanded := .T.
oItem4 := oItems:Add("Group B")
oItems2 := oItem4:Items()
oItem5 := oItems2:Add("Radio <b>1")
oItem5:SetProperty("HasRadioButton",0,.T.)
oItem5:SetProperty("RadioGroup",0,1235)
oItem6 := oItems2:Add("Radio <b>2")
oItem6:SetProperty("HasRadioButton",0,.T.)
oItem6:SetProperty("RadioGroup",0,1235)
oItem7 := oItems2:Add("Radio <b>3")
oItem7:SetProperty("HasRadioButton",0,.T.)
oItem7:SetProperty("RadioGroup",0,1235)
oItem7:SetProperty("State",0,1)
oItem4:Expanded := .T.
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
99
|
How can I display a list of check-boxes

PROCEDURE OnFaceTreeStateChanged(oTreeCube,Tree,Item,Column)
LOCAL oItem
oItem := oTreeCube:FrontFace():FaceTree():ItemByIndex(Item)
DevOut( "State" )
DevOut( Transform(oItem:State(0),"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oItem
LOCAL oItems
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:FaceTreeStateChanged := {|Tree,Item,Column| OnFaceTreeStateChanged(oTreeCube,Tree,Item,Column)} /*Notifies that a cell changes its state into a face of tree type.*/
oTreeCube:TexturePicturePath := ""
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:HeaderVisible := .F.
oFaceTree:ItemPadding := 16
oFaceTree:DrawGridLines := 0/*exNoLines*/
oFaceTree:Columns():Add("Check"):Alignment := 0/*LeftAlignment*/
oItems := oFaceTree:Items()
oItems:Add("Check <b>1"):SetProperty("HasCheckBox",0,.T.)
oItems:Add("Check <b>2"):SetProperty("HasCheckBox",0,.T.)
oItem := oItems:Add("Check <b>3")
oItem:SetProperty("HasCheckBox",0,.T.)
oItem:SetProperty("State",0,1)
oItems:Add("Check <b>4"):SetProperty("HasCheckBox",0,.T.)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
98
|
How do I get the selected caption

PROCEDURE OnFaceTreeSelectionChanged(oTreeCube,Tree)
DevOut( "Value" )
DevOut( Transform(oTreeCube:FrontFace:FaceTree():Value(),"") )
DevOut( "Caption" )
DevOut( oTreeCube:FrontFace:FaceTree():Caption() )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:FaceTreeSelectionChanged := {|Tree| OnFaceTreeSelectionChanged(oTreeCube,Tree)} /*Notifies that the user selects a new item/column into a face of tree type.*/
oTreeCube:TexturePicturePath := ""
oFace := oTreeCube:FrontFace()
oFaceTree := oFace:CreateTree()
oFaceTree:ItemPadding := 20
oFaceTree:Columns():Count := 5
oFaceTree:HeaderVisible := .F.
oFaceTree:Items():Count := oTreeCube:FrontFace():FaceTree():VisibleItemsCount()
oFaceTree:Columns:Item(0):FormatColumn := "(0:=(1989 + 5 * (0 index ``))) = 2016 ? `<b><sha ;;0>` + =:0 + `</b>` : =:0"
oFaceTree:Columns:Item(1):FormatColumn := "(0:=(1990 + 5 * (0 index ``))) = 2016 ? `<b><sha ;;0>` + =:0 + `</b>` : =:0"
oFaceTree:Columns:Item(2):FormatColumn := "(0:=(1991 + 5 * (0 index ``))) = 2016 ? `<b><sha ;;0>` + =:0 + `</b>` : =:0"
oFaceTree:Columns:Item(3):FormatColumn := "(0:=(1992 + 5 * (0 index ``))) = 2016 ? `<b><sha ;;0>` + =:0 + `</b>` : =:0"
oFaceTree:Columns:Item(4):FormatColumn := "(0:=(1993 + 5 * (0 index ``))) = 2016 ? `<b><sha ;;0>` + =:0 + `</b>` : =:0"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
97
|
How do I get the selected value

PROCEDURE OnFaceTreeSelectionChanged(oTreeCube,Tree)
DevOut( "Value" )
DevOut( Transform(oTreeCube:FrontFace:FaceTree():Value(),"") )
DevOut( "Caption" )
DevOut( oTreeCube:FrontFace:FaceTree():Caption() )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:FaceTreeSelectionChanged := {|Tree| OnFaceTreeSelectionChanged(oTreeCube,Tree)} /*Notifies that the user selects a new item/column into a face of tree type.*/
oTreeCube:TexturePicturePath := ""
oFace := oTreeCube:FrontFace()
oFaceTree := oFace:CreateTree()
oFaceTree:ItemPadding := 20
oFaceTree:Columns():Count := 5
oFaceTree:HeaderVisible := .F.
oFaceTree:Items():Count := oTreeCube:FrontFace():FaceTree():VisibleItemsCount()
oFaceTree:Columns:Item(0):FormatColumn := "(0:=(1989 + 5 * (0 index ``))) = 2016 ? `<b><sha ;;0>` + =:0 + `</b>` : =:0"
oFaceTree:Columns:Item(1):FormatColumn := "(0:=(1990 + 5 * (0 index ``))) = 2016 ? `<b><sha ;;0>` + =:0 + `</b>` : =:0"
oFaceTree:Columns:Item(2):FormatColumn := "(0:=(1991 + 5 * (0 index ``))) = 2016 ? `<b><sha ;;0>` + =:0 + `</b>` : =:0"
oFaceTree:Columns:Item(3):FormatColumn := "(0:=(1992 + 5 * (0 index ``))) = 2016 ? `<b><sha ;;0>` + =:0 + `</b>` : =:0"
oFaceTree:Columns:Item(4):FormatColumn := "(0:=(1993 + 5 * (0 index ``))) = 2016 ? `<b><sha ;;0>` + =:0 + `</b>` : =:0"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
96
|
How can I add buttons on the face

PROCEDURE OnFaceTreeButtonClick(oTreeCube,Tree,Item,Column)
DevOut( Transform(Item,"") )
DevOut( Transform(Column,"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:FaceTreeButtonClick := {|Tree,Item,Column| OnFaceTreeButtonClick(oTreeCube,Tree,Item,Column)} /*Notifies that a cell of button's type has been clicked.*/
oTreeCube:TexturePicturePath := ""
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:DrawGridLines := 0/*exNoLines*/
oFaceTree:ItemPadding := 16
oColumn := oFaceTree:Columns():Add("Buttons")
oColumn:FormatColumn := "1 index `A-Z`"
oColumn:SetProperty("Def",2/*exCellHasButton*/,.T.)
oFaceTree:Items():Count := 4
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
95
|
How do I programmatically selects a date (method 2)
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceCalendar
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oFaceCalendar := oTreeCube:FrontFace():CreateCalendar()
oFaceCalendar:Value := "Jan 21"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
94
|
How do I programmatically selects a date (method 1)
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceCalendar
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oFaceCalendar := oTreeCube:FrontFace():CreateCalendar()
oFaceCalendar:Date := "01/01/2001"
oFaceCalendar:SelDate := oFaceCalendar:Date()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
93
|
How can I display a hyperlink element
PROCEDURE OnAnchorClick(oTreeCube,Face,AnchorID,Options)
DevOut( Transform(Face,"") )
DevOut( Transform(AnchorID,"") )
DevOut( Transform(Options,"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:AnchorClick := {|Face,AnchorID,Options| OnAnchorClick(oTreeCube,Face,AnchorID,Options)} /*Occurs when an anchor element is clicked.*/
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ShowSelection := .F.
oFaceTree:HeaderVisible := .F.
oFaceTree:DrawGridLines := 0/*exNoLines*/
oFaceTree:Items():ToString := "<a A1\;options1>Item 1</a>,<a A2\;options2>Item 2</a>"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
92
|
Can I display image and multiple-lines items

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFaceTree
LOCAL oItem,oItem1,oItem10,oItem11,oItem12,oItem13,oItem14,oItem15,oItem16,oItem17,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7,oItem8,oItem9
LOCAL oItems
LOCAL oTreeCube
LOCAL s
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:SetProperty("HTMLPicture","DriveC","c:\exontrol\images\zipdisk.gif")
oTreeCube:SetProperty("HTMLPicture","DriveD","c:\exontrol\images\auction.gif")
oTreeCube:SetProperty("HTMLPicture","DriveE","c:\exontrol\images\colorize.gif")
oFace := oTreeCube:TopFace()
oFace:RelativeMargins := "0,32,0,0"
oFaceTree := oFace:CreateTree()
oFaceTree:HasLines := 0/*exNoLine*/
oFaceTree:DrawGridLines := 0/*exNoLines*/
oFaceTree:ItemPadding := 24
oFaceTree:HeaderVisible := .F.
oFaceTree:ShowSelection := .T.
oFaceTree:SetProperty("SelBackColor",AutomationTranslateColor( GraMakeRGBColor ( { 240,240,240 } ) , .F. ))
oFaceTree:Columns():Add("Default"):Alignment := 0/*LeftAlignment*/
oItems := oFaceTree:Items()
oItem := oItems:Add("Storage")
oItem:Divider := 0
oItem:Bold := .T.
oItem:Selectable := .F.
oItem1 := oItems:Add("Choose a drive to see what's taking up space.")
oItem1:Selectable := .F.
oItem1:SetProperty("SingleLine",0,.F.)
oItem2 := oItem1:Items():Add("<img>DriveC:64</img>")
oItem2:Height := 68
oItem2:SetProperty("BackgroundExt",0,"none[(76,4,100%-76,100%-8)](client[text=``],bottom[16,back=RGB(204,204,204)](left[0%,back=RGB(0,120,215)]))")
oItem2:SetProperty("BackgroundExtValue",0,2/*exIndexExt2*/,5/*exTextExtWordWrap*/,.T.)
oItem2:SetProperty("BackgroundExtValue",0,2/*exIndexExt2*/,4/*exTextExt*/,"<fgcolor=000000>LROG (C:)<br>58.7 GB used out of 150 GB")
oItem2:SetProperty("BackgroundExtValue",0,4/*exIndexExt4*/,2/*exClientExt*/,"39%")
oItem3 := oItem1:Items():Add("<img>DriveD:64</img>")
oItem3:Height := 68
oItem3:SetProperty("BackgroundExt",0,"none[(76,4,100%-76,100%-8)](client[text=``],bottom[16,back=RGB(204,204,204)](left[0%,back=RGB(0,120,215)]))")
oItem3:SetProperty("BackgroundExtValue",0,2/*exIndexExt2*/,5/*exTextExtWordWrap*/,.T.)
oItem3:SetProperty("BackgroundExtValue",0,2/*exIndexExt2*/,4/*exTextExt*/,"<fgcolor=000000>System (D:)<br>112 MB used out of 144 GB")
oItem3:SetProperty("BackgroundExtValue",0,4/*exIndexExt4*/,2/*exClientExt*/,"1%")
oItem4 := oItem1:Items():Add("<img>DriveD:64</img>")
oItem4:Height := 68
oItem4:SetProperty("BackgroundExt",0,"none[(76,4,100%-76,100%-8)](client[text=``],bottom[16,back=RGB(204,204,204)](left[0%,back=RGB(0,120,215)]))")
oItem4:SetProperty("BackgroundExtValue",0,2/*exIndexExt2*/,5/*exTextExtWordWrap*/,.T.)
oItem4:SetProperty("BackgroundExtValue",0,2/*exIndexExt2*/,4/*exTextExt*/,"<fgcolor=000000>Work (E:)<br>53.0 GB used out of 635 GB")
oItem4:SetProperty("BackgroundExtValue",0,4/*exIndexExt4*/,2/*exClientExt*/,"8%")
oItem5 := oItem1:Items():Add("<img>DriveE:64</img>")
oItem5:Height := 68
oItem5:SetProperty("BackgroundExt",0,"none[(76,4,100%-76,100%-8)](client[text=``],bottom[16,back=RGB(204,204,204)](left[0%,back=RGB(0,120,215)]))")
oItem5:SetProperty("BackgroundExtValue",0,2/*exIndexExt2*/,5/*exTextExtWordWrap*/,.T.)
oItem5:SetProperty("BackgroundExtValue",0,2/*exIndexExt2*/,4/*exTextExt*/,"<fgcolor=000000>DVD RW Drive (G:)<br>0.0 GB used out of 0.0 GB")
oItem5:SetProperty("BackgroundExtValue",0,4/*exIndexExt4*/,2/*exClientExt*/,"0%")
oItem1:Expanded := .T.
oItem6 := oItems:Add("Save Locations")
oItem6:Divider := 0
oItem6:Bold := .T.
oItem6:Selectable := .F.
oItem7 := oItems:Add("Change where your apps, documents, music, pictures and videos are saved by default.")
oItem7:Selectable := .F.
oItem7:SetProperty("SingleLine",0,.F.)
oItem8 := oItem7:Items():Add("New apps will save to:")
oItem8:Selectable := .F.
oItem9 := oItem8:Items():Add("Drive C")
oItem9:Selectable := .F.
oItem9:Height := 24
oItem9:SetProperty("HasRadioButton",0,.T.)
oItem9:SetProperty("RadioGroup",0,1234)
oItem9:SetProperty("State",0,1)
s := oItem9:SplitCell(0)
oItem9:SetProperty("Value",s,"Drive D")
oItem9:SetProperty("HasRadioButton",s,.T.)
oItem9:SetProperty("RadioGroup",s,1234)
s := oItem9:SplitCell(s)
oItem9:SetProperty("Value",s,"Drive E")
oItem9:SetProperty("HasRadioButton",s,.T.)
oItem9:SetProperty("RadioGroup",s,1234)
oItem8:Expanded := .T.
oItem10 := oItem7:Items():Add("New documents will save to:")
oItem10:Selectable := .F.
oItem11 := oItem10:Items():Add("Drive C")
oItem11:Selectable := .F.
oItem11:Height := 24
oItem11:SetProperty("HasRadioButton",0,.T.)
oItem11:SetProperty("RadioGroup",0,1235)
s := oItem11:SplitCell(0)
oItem11:SetProperty("Value",s,"Drive D")
oItem11:SetProperty("HasRadioButton",s,.T.)
oItem11:SetProperty("RadioGroup",s,1235)
oItem11:SetProperty("State",s,1)
s := oItem11:SplitCell(s)
oItem11:SetProperty("Value",s,"Drive E")
oItem11:SetProperty("HasRadioButton",s,.T.)
oItem11:SetProperty("RadioGroup",s,1235)
oItem10:Expanded := .T.
oItem12 := oItem7:Items():Add("New music will save to:")
oItem12:Selectable := .F.
oItem13 := oItem12:Items():Add("Drive C")
oItem13:Selectable := .F.
oItem13:Height := 24
oItem13:SetProperty("HasRadioButton",0,.T.)
oItem13:SetProperty("RadioGroup",0,1236)
s := oItem13:SplitCell(0)
oItem13:SetProperty("Value",s,"Drive D")
oItem13:SetProperty("HasRadioButton",s,.T.)
oItem13:SetProperty("RadioGroup",s,1236)
oItem13:SetProperty("State",s,1)
s := oItem13:SplitCell(s)
oItem13:SetProperty("Value",s,"Drive E")
oItem13:SetProperty("HasRadioButton",s,.T.)
oItem13:SetProperty("RadioGroup",s,1236)
oItem12:Expanded := .T.
oItem14 := oItem7:Items():Add("New pictures will save to:")
oItem14:Selectable := .F.
oItem15 := oItem14:Items():Add("Drive C")
oItem15:Selectable := .F.
oItem15:Height := 24
oItem15:SetProperty("HasRadioButton",0,.T.)
oItem15:SetProperty("RadioGroup",0,1237)
s := oItem15:SplitCell(0)
oItem15:SetProperty("Value",s,"Drive D")
oItem15:SetProperty("HasRadioButton",s,.T.)
oItem15:SetProperty("RadioGroup",s,1237)
oItem15:SetProperty("State",s,1)
s := oItem15:SplitCell(s)
oItem15:SetProperty("Value",s,"Drive E")
oItem15:SetProperty("HasRadioButton",s,.T.)
oItem15:SetProperty("RadioGroup",s,1237)
oItem14:Expanded := .T.
oItem16 := oItem7:Items():Add("New videos will save to:")
oItem16:Selectable := .F.
oItem17 := oItem16:Items():Add("Drive C")
oItem17:Selectable := .F.
oItem17:Height := 24
oItem17:SetProperty("HasRadioButton",0,.T.)
oItem17:SetProperty("RadioGroup",0,1238)
s := oItem17:SplitCell(0)
oItem17:SetProperty("Value",s,"Drive D")
oItem17:SetProperty("HasRadioButton",s,.T.)
oItem17:SetProperty("RadioGroup",s,1238)
oItem17:SetProperty("State",s,1)
s := oItem17:SplitCell(s)
oItem17:SetProperty("Value",s,"Drive E")
oItem17:SetProperty("HasRadioButton",s,.T.)
oItem17:SetProperty("RadioGroup",s,1238)
oItem16:Expanded := .T.
oItem7:Expanded := .T.
oFaceTree:EnsureVisibleItem(0)
oTreeCube:EnsureVisibleFaceMargin := 0
oTreeCube:EnsureVisibleFace(4/*exTopFace*/)
oTreeCube:AlwaysEnsureVisibleFace := 1/*exFitToEnsureFace*/
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
91
|
How can I use the BackgroundExt/BackgroundExtValue properties

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFaceTree
LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7,oItem8,oItem9
LOCAL oItems
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oFace := oTreeCube:BottomFace()
oFace:RelativeMargins := "0,32,0,0"
oFace:SetProperty("Title",0/*exTitleFaceCaption*/,"<c><font ;18>Battery Saver")
oFace:SetProperty("Title",11/*exTitleFaceBackgroundExt*/,"bottom[2],bottom[4,back=RGB(0,0,0)]")
oFaceTree := oFace:CreateTree()
oFaceTree:HasLines := 0/*exNoLine*/
oFaceTree:DrawGridLines := 0/*exNoLines*/
oFaceTree:ItemPadding := 24
oFaceTree:HeaderVisible := .F.
oFaceTree:ShowSelection := .F.
oFaceTree:Columns():Add("Default"):Alignment := 0/*LeftAlignment*/
oItems := oFaceTree:Items()
oItem := oItems:Add("Overview")
oItem:Divider := 0
oItem:Bold := .T.
oItem1 := oItems:Add("Batter level (charging):")
oItem1:SetProperty("SingleLine",0,.F.)
oItem2 := oItem1:Items():Add("")
oItem2:SetProperty("BackgroundExt",0,"none[(2,2,100%-4,100%-4)](top[24,text=`10%`],bottom[6,back=RGB(204,204,204)](left[10%,back=RGB(0,120,215)]))")
oItem2:SetProperty("BackgroundExtValue",0,4/*exIndexExt4*/,2/*exClientExt*/,"65%")
oItem2:SetProperty("BackgroundExtValue",0,2/*exIndexExt2*/,4/*exTextExt*/,oItem2:BackgroundExtValue(0,4/*exIndexExt4*/,2/*exClientExt*/))
oItem1:Expanded := .T.
oItem3 := oItems:Add("Estimated time to full charge:")
oItem4 := oItem3:Items():Add(0.15125)
oItem4:SetProperty("FormatCell",0,"((1:=int(0:= (value))) != 0 ? (=:1 + ' day(s)') : '') + (=:1 ? ' ' : '' ) + ((1:=int(0:=((=:0 - =:1 + 1/24/60/60/2)*24))) != 0 ? =:1 + ' hour(s)' : '' ) + (=:1 ? ' ' : '' ) + ((1:=round((=:0 - =:1)*60)) != 0 ? =:1 + ' min(s)' : '')")
oItem4:Height := 24
oItem3:Expanded := .T.
oItem5 := oItems:Add("Battery Saver")
oItem5:Divider := 0
oItem5:Bold := .T.
oItem6 := oItems:Add("Extends battery life by limiting background activity and push notifications. ")
oItem6:SetProperty("SingleLine",0,.F.)
oItem7 := oItems:Add("Batter saver is currently:")
oItem7:Enabled := .F.
oItem7:SetProperty("SingleLine",0,.F.)
oItem8 := oItem7:Items():Add("")
oItem8:Height := 24
oItem8:SetProperty("HasCheckBox",0,.T.)
oItem8:SetProperty("State",0,2)
oItem8:SetProperty("FormatCell",0,"state = 1 ? `On` : `Off`")
oItem8:Enabled := .F.
oItem7:Expanded := .T.
oItems:Add("Battery Saver is off while charging. Choose, when battery saver turns on automatically and how it affects your system."):SetProperty("SingleLine",0,.F.)
oItem9 := oItems:Add("<c>Battery Saver Settings")
oItem9:SetProperty("SingleLine",0,.F.)
oItem9:SetProperty("HasButton",0,.T.)
oTreeCube:EnsureVisibleFaceMargin := 0
oTreeCube:EnsureVisibleFace(1/*exBottomFace*/)
oTreeCube:AlwaysEnsureVisibleFace := 1/*exFitToEnsureFace*/
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
90
|
How can I change the visual appearance for check and radio buttons

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oAppearance,oAppearance1
LOCAL oFace
LOCAL oFaceTree
LOCAL oItem,oItem1,oItem10,oItem11,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7,oItem8,oItem9
LOCAL oItems
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:CheckBoxWidth := 44
oTreeCube:CheckBoxHeight := 20
oAppearance := oTreeCube:VisualAppearance()
oAppearance:Add(1,"gBFLBCJwBAEHhEJAADhABJACg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIxDFIsBxPFKCQChEZBUjKAwyDBIUzSDIUBhZBIKI7hGa3NBwJAAUTRch0j4iCRQGiYZyHKcxMYgIYCUBkERtMw0GyERQhGb4DoGA4IBhFZQVVLsRBIDh2bbuG4LSrWdJ3OyaN5EbbgZz9P7AMBwLA8EwXBqHYIUGJGbhlbTnR7HMhvDIsPDnFqIZhmOZZXjlfh7T7KNByO6LcI3AiDagtWpNTpjf5dV7YNh2LY9UzXNq3bI1W5aUqyAZ9QQpeB0LILYDbRp/FzyO5NNrHG6dZ7oOh1doOUItlaP5lgcPA7hEJ47H8SD0l4LwfhOSJ9nOIh9DefBREMKYMDaX59nsVhvlKdBpCGfgIl+L43lGG5lH+YAGlWZw/EYOAVH8ZQXncdBJDwIJGkiGYDlmUh2BKABhEgVJpgW" +;
"X4BA4BxcAeWB1H8KJiAaSJJgiWZWAmVA0CEWIln8JYikWfZpCIXARE0fw3GMRpJnaCRYBGWg6gqI5HgoJxfkYCQFlkX5PhkFYyBAJIImGABpGOWQ1k8OxlAWfZ6BGJA1noRQ+GQeQmEoX4kkkOheG2JQDjYUh+iMGJODUbBjHkbAzg6BxpH4bhsmOdZ6EEGAbmIAR/gSCZWkmfYShwYJYlOH5mnoBYvCSaBFnyDYhlcKAll2AwPAaSggCiWZaD6AogiEc4mBmBpYnePZxGMHw3lUeoGGUN5aH8NJpDoBgDgERg6GGFICh2d4GiWK5cngDgvHqWInG0cIfFyBwpjqLArkcTZVHWV5nGaNhxA6VoVicahajaNo9gUHI2nIdRwBwJoOkSMJlFmKpWjWWY2HwPYwm2SxJHIe5sGsYpiGcXpHj6XYxA6NBFAkQBAIC")
oAppearance:Add(2,"gBFLBCJwBAEHhEJAADhABB4Cg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIxDFIsBxPFKCQChEZBUjKAwyDBIUzSDIUBhZBIKI7hGa3NBwJAAUTRch0j4iCRQGiYZyHKcxMYgIYCUBkERtMw0GyERQhGb4DoGA4IBhFZQVVLsRBIDh2bbuG4LSrWdJ3Oy3KKiQy5cABPq/b6wDA8CwXAaHYRiGDYThmF4dRQAG6RcTLWrPFqVZheGYua4CLBxRrINA0LD9DyHJKnaZkDgpUQGN5dTS4GwPQCN3xRWzUyBaQzJfAZV7Lbw3PadX4XRLHcLwfAXFqWaaNZLneh5DouDz3P5YMuaRBicQ4nl6bpuBwKYRnuUY2jsfg9B0b43hOH5KjucQPnwOpMi+A4pnab5qB0a4znuf57n4f5gAeeJqC4R42mEcg5AoIRBnUfggkgLJiCaRA4AYEoEl+Y4AhcDpaFO" +;
"GIrBgDYyBwHICmIB5djge4hEilY8g0MotiUZICkMYB6AEIgYDYIh0g+Q5cm+CYjgOfJ6DuDZ2hSWggkESI6DCDJjCkFZDg0Yx4mYJYOmOVoiD8BQhlgfhEgwZRGBoJISy0IgqGoIpDhCJAVCUWQaFMY5fAkYgBD+D5TmyYAlENPBnCsRhFkoYYcmYMAAmkLRHDmGZ9h2Rw4BkeBnFmeZWHSGIYHeQZuHoHonjGboamaVwYmIJwEEYbZNiCaRKAmdx1hyNZChWIQpjcKZYHAKQ6FqHIoh0Vp6hkcBqgoAodikKgmi2LYnmsCohkAXoXkqMojgMIpKh2Gw6lEFAlAEgIA==")
oTreeCube:SetProperty("Background",70/*exCheckBoxState0*/,0x1000000)
oTreeCube:SetProperty("Background",71/*exCheckBoxState1*/,0x2000000)
oTreeCube:SetProperty("Background",72/*exCheckBoxState2*/,0x1f0f0f0)
oTreeCube:RadioButtonWidth := 23
oTreeCube:RadioButtonHeight := 23
oAppearance1 := oTreeCube:VisualAppearance()
oAppearance1:Add(3,"gBFLBCJwBAEHhEJAADhABNoCg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKQobh2A42SDAcgSFIADRfFoWmxTdAcYSCGSZZrGOiQADIM40R7UAABPBNKR1BKmHZDQRAApqXIjVDAYIQSSBUlkHScRijDICXSIIQmbajIZoJCiVZ3VaGETnRQlJQuEgOHZwDAsBwPBqBPziLp4WzmGqhR5ichYHI8RYVTKXYy3DxZW7OO4PQjQM7hHL8fwlfTuagyGpZOxjP5cdrYHw2J7NUzJeDxbhrTb6Zh7ILVX7TNIwXAdD4PIKmNryORsC4XG5pZ7oOh6Lo3G4rhWZI2nOL4eBON4LkeRJvHWDxvB6G5Lmac56D0OY3hMU5bm6bRoiAeA9DMX5riydJ+D8P4vEeO4xkEcQfCYBZrHKXgzlme4BmCB4eAUZRbAaAZeGsDg4EYCYEmERoaBE" +;
"OJaiMIY2EIXo2FYFYHmIBp1j8OoQhcYZNDiIgIiYE4Jl2BAlj0agOmiKgyH6Xo2jECYGE8WJmDODpehgFgZEIXI3DyfoQmQSQWEaEZkgkJhKhKZA2hmSxCEyGREnSFJkkkVhWwCCAthFKRjiIXhpiXOhihGYwJESSRCFuIxqGoPomkmDhuhWT45kSXYcl8UxdAkbgPBaMhTD0JApj4foRBoaJ5iqAxdmadhzDcWxpgIf4bhsY4Gg6GYYDcegNGUYg6VMIsBBmNg8CmRwuCOJBgBaAgXh6JQzl6JocE+OQQn+KpqkqNouivgQiiaLJPHaMZYHwQAHHIdRrA6ep2jMbYqx2RxzmqBpajOLxOnacYPHcHZnHGOlynmbo0jSbRLFaJoJlyNpplyKArhcGZcgMWpGjCXo4liM4ukiHpngkeJojiTZphmLIDG2Nwak2N4vEaAJsj2bpLgWFxlGGExOn4dgvHOMpxGgbwkAyaxEFCFAEICA=")
oAppearance1:Add(4,"gBFLBCJwBAEHhEJAADhABCEMACAADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKQobh2A42SDAcgSFIADRfFoWmxTdAcYSCGSZZrGOiQADINI0R7UAABPBIMSjAamHZDQRAApqXIjVaAhySQKksg6TiMUYZAbaRBCEzbUZDNBIopUQLVU5ABbUEqBIipIrEQLHNwPBaEYZiOIYW5re4cfzIMhyLI8Ob3CqHZhleTwTjWGYvSp1dBbTQ2QyVRanMDqOjsKxmW5Gbh5NhfHY8dxnDKcZ5jGSudrjEZ9VpmG74JzeEbjRj8chxT4PDxnBK/YDSWgdLo8VzXBpcG2MY4maXxzFKQRxHgOQeC8H4TkuZhzHoNR9kaXpNnONZsGGMo9B4A5bmuFZ7n4Pw/i+XpFmSVB/mAB41hsQJfBYOJXgGXAHm4CoCmCtYAHqXRWBGWB/F2Z5UnaAxZFO" +;
"aJ2DuTpzHCOQ5gwcg8veDBjlCaA0mGBg6BYapcEONZiHYHADg4MoKE+U4QkEIINAISAig4Y44moPIPA4EpoHSBoOngNgyDiW5jCGShCF+VouA2EQNhKHBMg+Y5pFYPYVmOQxYiAD4kEgNZRHSTokCWax4A4KA2DaDglGkUhYhoZRph4DYZB6NAllEbwOmgKhEhqJ4JjIa4ek8c48mGAoflcAQJhITxaBYCoHEuGZmHuIooioIgKgWJIUCWXh4hkNhImkM4JloMh6iaJRzhySAkCkVhFhUd4QhMJomD0KtvBCCJMGocouh6KIKiifoKlodAmAAOgrgYVoVD7Y5AlMJhDAqPoLh6D4DkCYosicSoYkkQhcmMapOD6LQKkqHgkCwKhwmILpHFqSJ7jaTZbHYBw1lCFwwnEcAqgOUoUGSa5DxkLQGHsVhWhQRJKkmFYkBuaI1lgdBtlMdZKi6LoKnSZQwggOp+kGJpjiufIDiyGQXCiYZCmyJxeAQYQi0YYI" +;
"+lieoqmmKwpHIdoskIGQGFWSg8DIBx6GCQ4AAYXhHjlo5fCqNpPjYRJ/kucwMkcMpM9GMwqk2Tx3AGa4AnIVpkm2N5cAgcJvk2XIsjGeYlF53hKk2dAnEGJR7nCdxlgYc4ajmEplk4NYNGcWpKiYRx5k4dYhC0RxggsTpXAGQA3jaBoEmuUIuFuCo4DoNoDHqShwCKXYPCSXYzmOMx6lwOwZoawrgkE0HwBY1xegdE2MMWQhBOhoEUBIQAgCAgA==")
oTreeCube:SetProperty("Background",73/*exRadioButtonState0*/,0x3000000)
oTreeCube:SetProperty("Background",74/*exRadioButtonState1*/,0x4000000)
oFace := oTreeCube:RightFace()
oFace:RelativeMargins := "0,32,0,0"
oFace:SetProperty("Title",0/*exTitleFaceCaption*/,"<c><font ;18>Table mode")
oFace:SetProperty("Title",11/*exTitleFaceBackgroundExt*/,"bottom[2],bottom[4,back=RGB(0,0,0)]")
oFaceTree := oFace:CreateTree()
oFaceTree:HasLines := 0/*exNoLine*/
oFaceTree:DrawGridLines := 0/*exNoLines*/
oFaceTree:ItemPadding := 24
oFaceTree:HeaderVisible := .F.
oFaceTree:ShowSelection := .F.
oFaceTree:Columns():Add("Default"):Alignment := 0/*LeftAlignment*/
oItems := oFaceTree:Items()
oItem := oItems:Add("Make windows more touch-friendly when using your device as a table")
oItem:SetProperty("SingleLine",0,.F.)
oItem1 := oItem:Items():Add("")
oItem1:Height := 24
oItem1:SetProperty("HasCheckBox",0,.T.)
oItem1:SetProperty("State",0,0)
oItem1:SetProperty("FormatCell",0,"state = 0 ? `Off` : `On`")
oItem:Expanded := .T.
oItem2 := oItems:Add("When I sign in")
oItem2:SetProperty("SingleLine",0,.F.)
oItem3 := oItem2:Items():Add("Automatically swicth to table mode")
oItem3:Height := 24
oItem3:SetProperty("HasRadioButton",0,.T.)
oItem3:SetProperty("RadioGroup",0,1234)
oItem4 := oItem2:Items():Add("Go to the desktop")
oItem4:Height := 24
oItem4:SetProperty("HasRadioButton",0,.T.)
oItem4:SetProperty("RadioGroup",0,1234)
oItem5 := oItem2:Items():Add("Remember what I used last")
oItem5:Height := 24
oItem5:SetProperty("HasRadioButton",0,.T.)
oItem5:SetProperty("RadioGroup",0,1234)
oItem5:SetProperty("State",0,1)
oItem2:Expanded := .T.
oItem6 := oItems:Add("When this device automatically switches table mode on or off")
oItem6:SetProperty("SingleLine",0,.F.)
oItem7 := oItem6:Items():Add("Don't ask me and dont' switch")
oItem7:Height := 24
oItem7:SetProperty("HasRadioButton",0,.T.)
oItem7:SetProperty("RadioGroup",0,1235)
oItem8 := oItem6:Items():Add("Always ask me before switching")
oItem8:Height := 24
oItem8:SetProperty("HasRadioButton",0,.T.)
oItem8:SetProperty("RadioGroup",0,1235)
oItem8:SetProperty("State",0,1)
oItem9 := oItem6:Items():Add("Don't ask me and always' switch")
oItem9:Height := 24
oItem9:SetProperty("HasRadioButton",0,.T.)
oItem9:SetProperty("RadioGroup",0,1235)
oItem6:Expanded := .T.
oItem10 := oItems:Add("Hide app icons on the taskbar in table mode")
oItem10:SetProperty("SingleLine",0,.F.)
oItem11 := oItem10:Items():Add("")
oItem11:Height := 24
oItem11:SetProperty("HasCheckBox",0,.T.)
oItem11:SetProperty("State",0,0)
oItem11:SetProperty("FormatCell",0,"state = 0 ? `Off` : `On`")
oItem10:Expanded := .T.
oTreeCube:EnsureVisibleFaceMargin := 0
oTreeCube:EnsureVisibleFace(2/*exRightFace*/)
oTreeCube:AlwaysEnsureVisibleFace := 1/*exFitToEnsureFace*/
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
89
|
How can I display more group of radio-buttons

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFaceTree
LOCAL oItem,oItem1,oItem10,oItem11,oItem12,oItem13,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7,oItem8,oItem9
LOCAL oItems
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oFace := oTreeCube:LeftFace()
oFace:RelativeMargins := "0,32,0,0"
oFace:SetProperty("Title",0/*exTitleFaceCaption*/,"<c><font ;18>Multitasking")
oFace:SetProperty("Title",11/*exTitleFaceBackgroundExt*/,"bottom[2],bottom[4,back=RGB(0,0,0)]")
oFaceTree := oFace:CreateTree()
oFaceTree:HasLines := 0/*exNoLine*/
oFaceTree:DrawGridLines := 0/*exNoLines*/
oFaceTree:ItemPadding := 24
oFaceTree:HeaderVisible := .F.
oFaceTree:ShowSelection := .F.
oFaceTree:Columns():Add("Default"):Alignment := 0/*LeftAlignment*/
oItems := oFaceTree:Items()
oItem := oItems:Add("Snap")
oItem:Divider := 0
oItem:Bold := .T.
oItem1 := oItems:Add("Arrange windows automatically by dragging them to the sides of corners of the scree")
oItem1:SetProperty("SingleLine",0,.F.)
oItem2 := oItem1:Items():Add("")
oItem2:Height := 24
oItem2:SetProperty("HasCheckBox",0,.T.)
oItem2:SetProperty("State",0,1)
oItem2:SetProperty("FormatCell",0,"state = 0 ? `Off` : `On`")
oItem1:Expanded := .T.
oItem3 := oItems:Add("When I snap more than one window, automatically adjust the size of the windows")
oItem3:SetProperty("SingleLine",0,.F.)
oItem4 := oItem3:Items():Add("")
oItem4:Height := 24
oItem4:SetProperty("HasCheckBox",0,.T.)
oItem4:SetProperty("State",0,1)
oItem4:SetProperty("FormatCell",0,"state = 0 ? `Off` : `On`")
oItem3:Expanded := .T.
oItem5 := oItems:Add("When I snap a window, show what I can snap next to it")
oItem5:SetProperty("SingleLine",0,.F.)
oItem6 := oItem5:Items():Add("")
oItem6:Height := 24
oItem6:SetProperty("HasCheckBox",0,.T.)
oItem6:SetProperty("FormatCell",0,"state = 0 ? `Off` : `On`")
oItem5:Expanded := .T.
oItem7 := oItems:Add("Virtual desktops")
oItem7:Divider := 0
oItem7:Bold := .T.
oItem8 := oItems:Add("On the taskbar, show windows that are open on:")
oItem8:SetProperty("SingleLine",0,.F.)
oItem9 := oItem8:Items():Add("Only the desktop I'm using")
oItem9:Height := 24
oItem9:SetProperty("HasRadioButton",0,.T.)
oItem9:SetProperty("RadioGroup",0,1234)
oItem9:SetProperty("State",0,1)
oItem10 := oItem8:Items():Add("All desktops")
oItem10:Height := 24
oItem10:SetProperty("HasRadioButton",0,.T.)
oItem10:SetProperty("RadioGroup",0,1234)
oItem8:Expanded := .T.
oItem11 := oItems:Add("Pressing ALT+TAB, show windows that are open on:")
oItem11:SetProperty("SingleLine",0,.F.)
oItem12 := oItem11:Items():Add("Only the desktop I'm using")
oItem12:Height := 24
oItem12:SetProperty("HasRadioButton",0,.T.)
oItem12:SetProperty("RadioGroup",0,1235)
oItem12:SetProperty("State",0,1)
oItem13 := oItem11:Items():Add("All desktops")
oItem13:Height := 24
oItem13:SetProperty("HasRadioButton",0,.T.)
oItem13:SetProperty("RadioGroup",0,1235)
oItem11:Expanded := .T.
oTreeCube:EnsureVisibleFaceMargin := 0
oTreeCube:EnsureVisibleFace(3/*exLeftFace*/)
oTreeCube:AlwaysEnsureVisibleFace := 1/*exFitToEnsureFace*/
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
88
|
How can I use images with the control

PROCEDURE OnFaceTreeButtonClick(oTreeCube,Tree,Item,Column)
DevOut( "FaceTreeButtonClick" )
RETURN
PROCEDURE OnFaceTreeStateChanged(oTreeCube,Tree,Item,Column)
DevOut( "FaceTreeStateChanged" )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFaceTree
LOCAL oItem,oItem1,oItem10,oItem11,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7,oItem8,oItem9
LOCAL oItems
LOCAL oTreeCube
LOCAL s
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:FaceTreeButtonClick := {|Tree,Item,Column| OnFaceTreeButtonClick(oTreeCube,Tree,Item,Column)} /*Notifies that a cell of button's type has been clicked.*/
oTreeCube:FaceTreeStateChanged := {|Tree,Item,Column| OnFaceTreeStateChanged(oTreeCube,Tree,Item,Column)} /*Notifies that a cell changes its state into a face of tree type.*/
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:SetProperty("HTMLPicture","P1","c:\exontrol\images\zipdisk.gif")
oTreeCube:SetProperty("HTMLPicture","P2","c:\exontrol\images\auction.gif")
oTreeCube:SetProperty("HTMLPicture","P3","c:\exontrol\images\colorize.gif")
oTreeCube:SetProperty("HTMLPicture","P4","c:\exontrol\images\auction.gif")
oFace := oTreeCube:FrontFace()
oFace:RelativeMargins := "0,32,0,0"
oFace:SetProperty("Title",0/*exTitleFaceCaption*/,"<c><font ;18>Notifications")
oFace:SetProperty("Title",11/*exTitleFaceBackgroundExt*/,"bottom[2],bottom[4,back=RGB(0,0,0)]")
oFaceTree := oFace:CreateTree()
oFaceTree:HasLines := 0/*exNoLine*/
oFaceTree:DrawGridLines := 0/*exNoLines*/
oFaceTree:ItemPadding := 24
oFaceTree:HeaderVisible := .F.
oFaceTree:ShowSelection := .F.
oFaceTree:Columns():Add("Default"):Alignment := 0/*LeftAlignment*/
oItems := oFaceTree:Items()
oItem := oItems:Add("Choose your quick actions")
oItem:SetProperty("SingleLine",0,.F.)
oItem1 := oItem:Items():Add("")
oItem1:Height := 48
s := 0
oItem1:SetProperty("Value",s,"<c><img>P1</img>")
oItem1:SetProperty("CellWidth",s,48)
oItem1:SetProperty("HasButton",s,.T.)
s := oItem1:SplitCell(s)
oItem1:SetProperty("Value",s,"<c><img>P2</img>")
oItem1:SetProperty("CellWidth",s,48)
oItem1:SetProperty("HasButton",s,.T.)
s := oItem1:SplitCell(s)
oItem1:SetProperty("Value",s,"<c><img>P3</img>")
oItem1:SetProperty("CellWidth",s,48)
oItem1:SetProperty("HasButton",s,.T.)
s := oItem1:SplitCell(s)
oItem1:SetProperty("Value",s,"<c><img>P4</img>")
oItem1:SetProperty("CellWidth",s,48)
oItem1:SetProperty("HasButton",s,.T.)
s := oItem1:SplitCell(s)
oItem:Expanded := .T.
oItem2 := oItems:Add("Show me tips about Windows")
oItem2:SetProperty("SingleLine",0,.F.)
oItem3 := oItem2:Items():Add("")
oItem3:Height := 24
oItem3:SetProperty("HasCheckBox",0,.T.)
oItem3:SetProperty("State",0,1)
oItem3:SetProperty("FormatCell",0,"state = 0 ? `Off` : `On`")
oItem2:Expanded := .T.
oItem4 := oItems:Add("Show app notifications ")
oItem4:SetProperty("SingleLine",0,.F.)
oItem5 := oItem4:Items():Add("")
oItem5:Height := 24
oItem5:SetProperty("HasCheckBox",0,.T.)
oItem5:SetProperty("State",0,1)
oItem5:SetProperty("FormatCell",0,"state = 0 ? `Off` : `On`")
oItem4:Expanded := .T.
oItem6 := oItems:Add("Show notifications on lock screen")
oItem6:SetProperty("SingleLine",0,.F.)
oItem7 := oItem6:Items():Add("")
oItem7:Height := 24
oItem7:SetProperty("HasCheckBox",0,.T.)
oItem7:SetProperty("FormatCell",0,"state = 0 ? `Off` : `On`")
oItem6:Expanded := .T.
oItem8 := oItems:Add("Show alarms, reminders and incomming VOIP calls on the lock screen")
oItem8:SetProperty("SingleLine",0,.F.)
oItem9 := oItem8:Items():Add("")
oItem9:Height := 24
oItem9:SetProperty("HasCheckBox",0,.T.)
oItem9:SetProperty("State",0,1)
oItem9:SetProperty("FormatCell",0,"state = 0 ? `Off` : `On`")
oItem8:Expanded := .T.
oItem10 := oItems:Add("Hide notications while presentation")
oItem10:SetProperty("SingleLine",0,.F.)
oItem11 := oItem10:Items():Add("")
oItem11:Height := 24
oItem11:SetProperty("HasCheckBox",0,.T.)
oItem11:SetProperty("State",0,0)
oItem11:SetProperty("FormatCell",0,"state = 0 ? `Off` : `On`")
oItem10:Expanded := .T.
oTreeCube:EnsureVisibleFaceMargin := 0
oTreeCube:EnsureVisibleFace(0/*exFrontFace*/)
oTreeCube:AlwaysEnsureVisibleFace := 1/*exFitToEnsureFace*/
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
87
|
How do I display a progress bar

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oFaceTree
LOCAL oItem,oItem1,oItem2,oItem3,oItem4
LOCAL oItems
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:TexturePicturePath := ""
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ItemPadding := 16
oColumn := oFaceTree:Columns():Add("Pos")
oColumn:FormatColumn := "1 pos ``"
oColumn:Width := 8
oFaceTree:Columns():Add("Progress"):Alignment := 0/*LeftAlignment*/
oItems := oFaceTree:Items()
oItem := oItems:Add("")
oItem:SetProperty("BackgroundExt",1,"none[(2,2,100%-4,100%-4)](top[24,text=`10%`],bottom[6,back=RGB(204,204,204)](left[10%,back=RGB(0,120,215)]))")
oItem:SetProperty("BackgroundExtValue",1,4/*exIndexExt4*/,2/*exClientExt*/,"25%")
oItem:SetProperty("BackgroundExtValue",1,2/*exIndexExt2*/,4/*exTextExt*/,oItem:BackgroundExtValue(1,4/*exIndexExt4*/,2/*exClientExt*/))
oItem1 := oItems:Add("")
oItem1:SetProperty("BackgroundExt",1,"none[(2,2,100%-4,100%-4)](top[24,text=`10%`],bottom[6,back=RGB(204,204,204)](left[10%,back=RGB(0,120,215)]))")
oItem1:SetProperty("BackgroundExtValue",1,4/*exIndexExt4*/,2/*exClientExt*/,"15%")
oItem1:SetProperty("BackgroundExtValue",1,2/*exIndexExt2*/,4/*exTextExt*/,oItem1:BackgroundExtValue(1,4/*exIndexExt4*/,2/*exClientExt*/))
oItem1:SetProperty("BackgroundExtValue",1,4/*exIndexExt4*/,1/*exBackColorExt*/,65280)
oItem2 := oItems:Add("")
oItem2:SetProperty("BackgroundExt",1,"none[(2,2,100%-4,100%-4)](top[24,text=`10%`],bottom[6,back=RGB(204,204,204)](left[10%,back=RGB(0,120,215)]))")
oItem2:SetProperty("BackgroundExtValue",1,4/*exIndexExt4*/,2/*exClientExt*/,"75%")
oItem2:SetProperty("BackgroundExtValue",1,2/*exIndexExt2*/,4/*exTextExt*/,oItem2:BackgroundExtValue(1,4/*exIndexExt4*/,2/*exClientExt*/))
oItem3 := oItems:Add("")
oItem3:SetProperty("BackgroundExt",1,"none[(2,2,100%-4,100%-4)](top[24,text=`10%`],bottom[6,back=RGB(204,204,204)](left[10%,back=RGB(0,120,215)]))")
oItem3:SetProperty("BackgroundExtValue",1,4/*exIndexExt4*/,2/*exClientExt*/,"85%")
oItem3:SetProperty("BackgroundExtValue",1,2/*exIndexExt2*/,4/*exTextExt*/,oItem3:BackgroundExtValue(1,4/*exIndexExt4*/,2/*exClientExt*/))
oItem4 := oItems:Add("")
oItem4:SetProperty("BackgroundExt",1,"none[(2,2,100%-4,100%-4)](top[24,text=`10%`],bottom[6,back=RGB(204,204,204)](left[10%,back=RGB(0,120,215)]))")
oItem4:SetProperty("BackgroundExtValue",1,4/*exIndexExt4*/,2/*exClientExt*/,"5%")
oItem4:SetProperty("BackgroundExtValue",1,2/*exIndexExt2*/,4/*exTextExt*/,oItem4:BackgroundExtValue(1,4/*exIndexExt4*/,2/*exClientExt*/))
oItem4:SetProperty("BackgroundExtValue",1,4/*exIndexExt4*/,1/*exBackColorExt*/,255)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
86
|
I have a column of check box type, the question if I can automatically display on/off when user changes the check's state

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oAppearance
LOCAL oColumn
LOCAL oFaceTree
LOCAL oItem,oItem1
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:CheckBoxWidth := 32
oTreeCube:CheckBoxHeight := 29
oAppearance := oTreeCube:VisualAppearance()
oAppearance:Add(1,"gBFLBCJwBAEHhEJAADhABQACg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFIYRoAmCYZRnAYZIpjOZ5BiKAwgQiHMbwTLjfyMACjH7nnJEEigNIxToOU4jFDGIAWArAZBEbTENBtBIUIRoCA6CgOCAYRa4AJTdL1Er2ex2G7WMpWURkHTUJgGN4BVbdeoxPi/b6wDA8CwXAaHXpfbaKYQ7brYaikchyLI8Tq9bDNIgADLoYADJIoCRqEyudKQcrXJakaZqOoaXo+W5VVzWLpDVo0XBdTiLAAzKDgA6bRqBSjgMjuIpcbABazPJTwPJcXxnGyMehyWJ47KoKZOkoNRTiIRoCDgCZXm+eA6m0dQQj8MRInCUY7CIVoCEAFZonefApC2BQglWHIKAAPx/D4FoyHgTZsAIXwYAWYR8kMR5YAAP4PmOdZ7H8X54AoDhziASAaAiAoeAecZ+CQ" +;
"IAID4GhwGEF5eBOAphHgZgbgiWQYHYB4CGICA2CSCpPnMYIjgEYZoiIFYDCGCIyCsNgKCCRgSgyHZ4FoKoNiGOJgDKDphEidg0giJEnDiDojBkFZXg+IxZCYGoLgMOQSCmFBlCgOJZCmA4jDiCYJmSZw6FCEglheRhbA4ZZpgIV4ZCYV4+GeGhhniTghhsYAps+HBkGmTh0hmChpiId4PCSeQeHuHwnmmKhyg+aA3gYdohh2cxUhwCJNBIRZuiIXoDGiJwOkyWR9nkPwoiKFA2G2YBznaHIlB0cxGBiAYfAONJUCgIBmlAFg6k0AhaioJ5OkMTIdi0axzEyHmEBIYJpDMCJanyDowiwQwyq0LBbB6Sowg6KwYmoMxI26GwIBwU4Mj0GpgCOCI6BmG4mmYX4mG2a4GmCOAmhuFhfjmAALiKao5m6S4ml8bpNmKQBQgkFpzjSbg1koc44lYKQviKFp9j+TRrnsAZADALAXASQZwDwJp8xQc4uiSQ5xAwRw" +;
"SkSYhDi0ERCFAECAg")
oAppearance:Add(2,"gBFLBCJwBAEHhEJAADhABZ8MACAADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFIYRoAmCYZRnAYZIpjOZ5BiKAwgQiHMbwTLjfyMACjH7nnJEEigNIxToOU4jFDGIAWArAZBEbTENBtBIUIRoCA6CgOCAYRa4AJTdL1Er2ex2G7WMpWURkHTUJgGN4BVbdeoxPi/b6wDA8CwXAaHXpfbaKYQ7brYaikchyLI8Tq9bDNIgADLoYADJIoCRqEyudKQcrXJakaZqOoaXo+W5VVzWLpDVo0XBdTiLAAzKDgA6bRqBSjgMjuIpcbABazPJTwPJcXxnGyMehyWJ47KoKZOkoNRTiIRoCDgCZXm+eA6m0dQQj8MRInCUY7CIVoCEAFZonePwfA6fx7n2MIkBqM4REAB5vnOQpWCeAhnjACR9B4IoEC0OQMAGSZ0H2AxHmQAA/g+Y51n6AAgCgEZLDa" +;
"ChgmCUQkACAw8g4AJgjKEgNH6IQIEmYB/mAEhCAOBYZDMZIlA2TQSEQCheAGiwKDmTBiAWYYDCCaIWBOChijiMJ/DYXx4loNINBsQBdkWDpiCidgRg+YRYFoRANCMEAuEcXhlHiVISAMTgSlwXh1mOSISE+CZhEiKgLCiQw5FYWYaleFpQBiA4PhOSJhHMJgYD4Yx3mKn5fDYCgwkiUQkiUaRigIYhoEkZZUASTRiHAIodCSWYKCaHgmFkBh0CiAwZn6AYhGaUhcBiEhmkoEJQCOQBTiiTQjlwGZwDOE4oncXh5hmHIzGCIgMCkah0lMJYBFeMAHiyQRqmKMomiCY5wnoPUzFyuIMmIJh2ioXJqi6Ehkg0coEC6H7zHSUgkkCaxA42ToDmydw7GCahygODQNCIVASgoGQ7GyWAyEeaA9n2GQkAsBgGjQKBqGmwxNiKHA7HATxjiSTgzGwaY6h2J5AGOiwfFkM4UkEHQPiWQhQisD5zFyHwKimcAWgZhp" +;
"rBQAA6AyAgVleHILlucAAj+KA5joDhjg0VhOBEPpwjkBgQD+H5wh2bACBmYBBlwAQPGOKJRH0DwTHiNpHjICgSjiLYkCUGrzk4ApUFoNRJjCBxBGQTwjgCOpPBsWRnDGK4DAiMxDlKXp3ECRpFiuKgOh8AZODKcBqH0NR9GGdA+A6YxplMdRlHmPY4DsTRig2YXfECDg2lmJAjnCeQ8meOANwYwSBXEsDUeQZxdDxDgGwbY3QjjmHiKUcIwQnBfGADYZowR7B6E6E4MI2g1AUAsOkFwCwOhmECC0ZYkxzhhFME4egXQThHGkPUDoPwqtkE6E8LQaQJiHDiK4KYaBCiwFwOkaYVROhqXoIcdw9BzAcCKNAZg3Qbg2BsD0cY+BvBPEWOUfIHgziVHMOMYwWQEAACGAEZYgg7gaGKCUXQ6hoD7F2JwW5txIhPHYBQTwwQljzD6AYW4zx6h9B+F8bo9h/AfDONUZwkhziJF8FwHALBaCTAwIEG4CASDfC4Fw" +;
"AIRRHuhBAOUUwAxoAQH6C0eACgDAeAMGoGgGREDPAiKAAIVwBgYA2AUZ4QgEAOEGMANwCwIjWCIEgJIASAg==")
oAppearance:Add(3,"gBFLBCJwBAEHhEJAADhABT0MACAADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFIYRoAmCYZRnAYZIpjOZ5BiKAwgQiHMbwTLjfyMACjH7nnJEEigNIxToOU4jFDGIAWArAZBEbTENBtBIUIRoCA6CgOCAYRa4AJTdL1Er2ex2G7WMpWURkHTUJgGN4BVbdeoxPi/b6wDA8CwXAaHXpfbaKYQ7brYaikchyLI8Tq9bDNIgADLoYADJIoCRqEyudKQcrXJakaZqOoaXo+W5VVzWLpDVo0XBdTiLAAzKDgA6bRqBSjgMjuIpcbABazPJTwPJcXxnGyMehyWJ47KoKZOkoNRTiIRoCDgCZXm+eA6m0dQQj8MRInCUY7CIVoCEAFZonePR+D6d57GESA1GcIoAA+X5fgW2oJh6QAlnMdZHlgFIogGXw3lQNB+AAA54n4PxflefgBgCXIyBIFgZmG" +;
"AYOBqAhKEgLZ5gOIQHgGfoAAkCAKBQZJIDiJBogqRwYjYGAZksGJFmGAogkiAgRgkIhohyfwgiOSIsGiCxkAGRBwhCRgZBYM4HGMWA+DeBJhEIBhOg+JAZEYQAaGUQhyFYdZjEgfhKgiIQohWc4TggGRCFKGJkCkDBehmTpJiWTIWGCWRtl+CJkkcfIAhyZgphIdoLEaWZkHeHpmjkIhaggZp5HYORzCcMgCHWFIkDGQBviKZx4jQZIjkuKhFkENgKDCThJiAHR5kIXhykeeh2geFBGmqBBmiiaI6hQb4diiGYcF4PgqkYTJXCgApDDiCYbGmBw6hqIJZCGeo6hUBoZlgaovmOY5CkIPQsEqKoJh2J4RjQeYylkM5cm0NgMhGegNH8JZImGE4BEeWpygiEJhiGDIGjeXATgaYgXG4SweGQGRugKOpqGSThTAQdA+hcCQuhsP5HjuVoPBkJQqhaZAXEsO52hkNYNGEcwCjmJAaCaew5HCBhOA8PpvJQDg" +;
"/iyMZmiMGYGv4dw4jGB5MlKRpwCEcwEhAKhcE4OhRisdwEhmSZHGyJwjGQTRMjcHZHmKXBUGuJxHniHwlkqXpzG8Oo+moWRKmgGRKC0BZzk2c/FmiUZkFGBohBuJQhH8TgxjUB4ElUJwCDMRIRHuNBYhyd5WmuTJKECQYuEuCJhHWTYShQNhtm0M5zFmSpvFGbgvkgKI9DgXw8jcRwwm0GoCgEAxhoAWB0MwgQWi7EmOcMIpgnDwC4CcA4wh4gcB+BUYYcROBPA0GkCYhw4iuCmDgEg1wWAwDmBQJwlw9ifD4OsTAcQLhDBmHQbg1gzBvCWNMegnQnhNGqHUDoXwujWHqAYLICAAAbCKDAOQ4BMD9GaFUUo2QYjzFcLcTovBIhODuBoYoJxEBSHwP4JIrRyB5D8FcTI5x8jeEeJsco7xSC5HEG8S4DgEjnHaNQWIfRJheDaH8BgTgoB8EqFYMoFxPg/CeMUeovAMDBGKJkBgXxGgLHsH4R4QQpj7EyP8" +;
"ZI1hEChBQAggI")
oTreeCube:SetProperty("Background",70/*exCheckBoxState0*/,0x1000000)
oTreeCube:SetProperty("Background",71/*exCheckBoxState1*/,0x2000000)
oTreeCube:SetProperty("Background",72/*exCheckBoxState2*/,0x3000000)
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:HasLines := 2/*exThinLine*/
oFaceTree:ShowSelection := .F.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 16
oColumn := oFaceTree:Columns():Add("<c><b>Partial Check")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn:FormatColumn := "`Check <b>` + 1 rpos `` + '</b> ' + (state=0 ? `<off 4>(off)` : (state=1 ? `<off 4>(on)` : ``))"
oColumn:PartialCheck := .T.
oFaceTree:Items():Count := oTreeCube:FrontFace():FaceTree():VisibleItemsCount()
oItem := oFaceTree:ItemByIndex(1)
oItem:Items():Count := 3
oItem:Expanded := .T.
oItem:SetProperty("State",0,1)
oItem1 := oFaceTree:ItemByIndex(2)
oItem1:Items():Count := 3
oItem1:Expanded := .T.
oItem1:Items():Item(1):SetProperty("State",0,1)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
85
|
How do I print the control

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oPrint
LOCAL oFaceCalendar
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oFaceCalendar := oTreeCube:FrontFace():CreateCalendar()
oFaceCalendar:AutoSize := 1/*exFitClient*/
oFaceCalendar:MaxMonthX := 1
oFaceCalendar:MaxMonthY := 1
oPrint := CreateObject("Exontrol.Print")
oPrint:PrintExt := oTreeCube
oPrint:Preview()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
84
|
How can I get the caption from the point

PROCEDURE OnMouseMove(oTreeCube,Button,Shift,X,Y)
DevOut( oTreeCube:FrontFace:FaceTree():CaptionFromPoint(-1,-1) )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oTreeCube,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/
oTreeCube:TexturePicturePath := "C:\Program Files\Exontrol\ExTreeCube\Sample\Texture\Chapel"
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ItemPadding := 16
oFaceTree:HeaderVisible := .F.
oFaceTree:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oFaceTree:Items():ToString := "<sha \;\;0><font \;18>Place <b>A,<sha \;\;0><font \;18>Place <b>B,<sha \;\;0><font \;18>Place <b>C,<sha \;\;0><font \;18>Place <b>D,<sha \;\;0><font \;18>Place <b>E"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
83
|
How can I get the value from the point

PROCEDURE OnMouseMove(oTreeCube,Button,Shift,X,Y)
DevOut( Transform(oTreeCube:FrontFace:FaceTree():ValueFromPoint(-1,-1),"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oTreeCube,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/
oTreeCube:TexturePicturePath := "C:\Program Files\Exontrol\ExTreeCube\Sample\Texture\Chapel"
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ItemPadding := 16
oFaceTree:HeaderVisible := .F.
oFaceTree:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oFaceTree:Items():ToString := "<sha \;\;0><font \;18>Place <b>A,<sha \;\;0><font \;18>Place <b>B,<sha \;\;0><font \;18>Place <b>C,<sha \;\;0><font \;18>Place <b>D,<sha \;\;0><font \;18>Place <b>E"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
82
|
How can I get the column from the point
PROCEDURE OnMouseMove(oTreeCube,Button,Shift,X,Y)
DevOut( Transform(oTreeCube:FrontFace:FaceTree():ColumnFromPoint(-1,-1),"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oTreeCube,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:FullRowSelect := .T.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:Columns():Add("A"):FormatColumn := "0 pos `A-Z`"
oFaceTree:Columns():Add("B"):FormatColumn := "0 pos `B-Z`"
oFaceTree:Columns():Add("C"):FormatColumn := "0 pos `C-Z`"
oFaceTree:Columns():Add("D"):FormatColumn := "0 pos `D-Z`"
oFaceTree:Items():Count := 4
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
81
|
How can I get the item from the point
PROCEDURE OnMouseMove(oTreeCube,Button,Shift,X,Y)
DevOut( Transform(oTreeCube:FrontFace:FaceTree():ItemFromPoint(-1,-1),"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oTreeCube,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:FullRowSelect := .T.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:Columns():Add("A"):FormatColumn := "0 pos `A-Z`"
oFaceTree:Columns():Add("B"):FormatColumn := "0 pos `B-Z`"
oFaceTree:Columns():Add("C"):FormatColumn := "0 pos `C-Z`"
oFaceTree:Columns():Add("D"):FormatColumn := "0 pos `D-Z`"
oFaceTree:Items():Count := 4
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
80
|
How can I get the value from the point (calendar's date)
PROCEDURE OnMouseMove(oTreeCube,Button,Shift,X,Y)
DevOut( "Date:" )
DevOut( Transform(oTreeCube:FrontFace:FaceCalendar():ValueFromPoint(-1,-1),"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceCalendar
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oTreeCube,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/
oFaceCalendar := oTreeCube:FrontFace():CreateCalendar()
oFaceCalendar:AutoSize := 1/*exFitClient*/
oFaceCalendar:MaxMonthX := 1
oFaceCalendar:MaxMonthY := 1
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
79
|
How can I get the date from the point (calendar's date)
PROCEDURE OnMouseMove(oTreeCube,Button,Shift,X,Y)
DevOut( "Date:" )
DevOut( Transform(oTreeCube:FrontFace:FaceCalendar():DateFromPoint(-1,-1),"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceCalendar
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oTreeCube,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/
oFaceCalendar := oTreeCube:FrontFace():CreateCalendar()
oFaceCalendar:AutoSize := 1/*exFitClient*/
oFaceCalendar:MaxMonthX := 1
oFaceCalendar:MaxMonthY := 1
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
78
|
How can I get the face from the point

PROCEDURE OnMouseMove(oTreeCube,Button,Shift,X,Y)
DevOut( "Face:" )
DevOut( Transform(oTreeCube:FaceFromPoint(-1,-1),"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oTreeCube,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/
oTreeCube:IdentifyFace := 1/*exIdentifyFaceCaption*/
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
77
|
Does your control support partial-check feature

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oAppearance
LOCAL oColumn
LOCAL oFaceTree
LOCAL oItem,oItem1
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:CheckBoxWidth := 32
oTreeCube:CheckBoxHeight := 29
oAppearance := oTreeCube:VisualAppearance()
oAppearance:Add(1,"gBFLBCJwBAEHhEJAADhABQACg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFIYRoAmCYZRnAYZIpjOZ5BiKAwgQiHMbwTLjfyMACjH7nnJEEigNIxToOU4jFDGIAWArAZBEbTENBtBIUIRoCA6CgOCAYRa4AJTdL1Er2ex2G7WMpWURkHTUJgGN4BVbdeoxPi/b6wDA8CwXAaHXpfbaKYQ7brYaikchyLI8Tq9bDNIgADLoYADJIoCRqEyudKQcrXJakaZqOoaXo+W5VVzWLpDVo0XBdTiLAAzKDgA6bRqBSjgMjuIpcbABazPJTwPJcXxnGyMehyWJ47KoKZOkoNRTiIRoCDgCZXm+eA6m0dQQj8MRInCUY7CIVoCEAFZonefApC2BQglWHIKAAPx/D4FoyHgTZsAIXwYAWYR8kMR5YAAP4PmOdZ7H8X54AoDhziASAaAiAoeAecZ+CQ" +;
"IAID4GhwGEF5eBOAphHgZgbgiWQYHYB4CGICA2CSCpPnMYIjgEYZoiIFYDCGCIyCsNgKCCRgSgyHZ4FoKoNiGOJgDKDphEidg0giJEnDiDojBkFZXg+IxZCYGoLgMOQSCmFBlCgOJZCmA4jDiCYJmSZw6FCEglheRhbA4ZZpgIV4ZCYV4+GeGhhniTghhsYAps+HBkGmTh0hmChpiId4PCSeQeHuHwnmmKhyg+aA3gYdohh2cxUhwCJNBIRZuiIXoDGiJwOkyWR9nkPwoiKFA2G2YBznaHIlB0cxGBiAYfAONJUCgIBmlAFg6k0AhaioJ5OkMTIdi0axzEyHmEBIYJpDMCJanyDowiwQwyq0LBbB6Sowg6KwYmoMxI26GwIBwU4Mj0GpgCOCI6BmG4mmYX4mG2a4GmCOAmhuFhfjmAALiKao5m6S4ml8bpNmKQBQgkFpzjSbg1koc44lYKQviKFp9j+TRrnsAZADALAXASQZwDwJp8xQc4uiSQ5xAwRw" +;
"SkSYhDi0ERCFAECAg")
oAppearance:Add(2,"gBFLBCJwBAEHhEJAADhABZ8MACAADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFIYRoAmCYZRnAYZIpjOZ5BiKAwgQiHMbwTLjfyMACjH7nnJEEigNIxToOU4jFDGIAWArAZBEbTENBtBIUIRoCA6CgOCAYRa4AJTdL1Er2ex2G7WMpWURkHTUJgGN4BVbdeoxPi/b6wDA8CwXAaHXpfbaKYQ7brYaikchyLI8Tq9bDNIgADLoYADJIoCRqEyudKQcrXJakaZqOoaXo+W5VVzWLpDVo0XBdTiLAAzKDgA6bRqBSjgMjuIpcbABazPJTwPJcXxnGyMehyWJ47KoKZOkoNRTiIRoCDgCZXm+eA6m0dQQj8MRInCUY7CIVoCEAFZonePwfA6fx7n2MIkBqM4REAB5vnOQpWCeAhnjACR9B4IoEC0OQMAGSZ0H2AxHmQAA/g+Y51n6AAgCgEZLDa" +;
"ChgmCUQkACAw8g4AJgjKEgNH6IQIEmYB/mAEhCAOBYZDMZIlA2TQSEQCheAGiwKDmTBiAWYYDCCaIWBOChijiMJ/DYXx4loNINBsQBdkWDpiCidgRg+YRYFoRANCMEAuEcXhlHiVISAMTgSlwXh1mOSISE+CZhEiKgLCiQw5FYWYaleFpQBiA4PhOSJhHMJgYD4Yx3mKn5fDYCgwkiUQkiUaRigIYhoEkZZUASTRiHAIodCSWYKCaHgmFkBh0CiAwZn6AYhGaUhcBiEhmkoEJQCOQBTiiTQjlwGZwDOE4oncXh5hmHIzGCIgMCkah0lMJYBFeMAHiyQRqmKMomiCY5wnoPUzFyuIMmIJh2ioXJqi6Ehkg0coEC6H7zHSUgkkCaxA42ToDmydw7GCahygODQNCIVASgoGQ7GyWAyEeaA9n2GQkAsBgGjQKBqGmwxNiKHA7HATxjiSTgzGwaY6h2J5AGOiwfFkM4UkEHQPiWQhQisD5zFyHwKimcAWgZhp" +;
"rBQAA6AyAgVleHILlucAAj+KA5joDhjg0VhOBEPpwjkBgQD+H5wh2bACBmYBBlwAQPGOKJRH0DwTHiNpHjICgSjiLYkCUGrzk4ApUFoNRJjCBxBGQTwjgCOpPBsWRnDGK4DAiMxDlKXp3ECRpFiuKgOh8AZODKcBqH0NR9GGdA+A6YxplMdRlHmPY4DsTRig2YXfECDg2lmJAjnCeQ8meOANwYwSBXEsDUeQZxdDxDgGwbY3QjjmHiKUcIwQnBfGADYZowR7B6E6E4MI2g1AUAsOkFwCwOhmECC0ZYkxzhhFME4egXQThHGkPUDoPwqtkE6E8LQaQJiHDiK4KYaBCiwFwOkaYVROhqXoIcdw9BzAcCKNAZg3Qbg2BsD0cY+BvBPEWOUfIHgziVHMOMYwWQEAACGAEZYgg7gaGKCUXQ6hoD7F2JwW5txIhPHYBQTwwQljzD6AYW4zx6h9B+F8bo9h/AfDONUZwkhziJF8FwHALBaCTAwIEG4CASDfC4Fw" +;
"AIRRHuhBAOUUwAxoAQH6C0eACgDAeAMGoGgGREDPAiKAAIVwBgYA2AUZ4QgEAOEGMANwCwIjWCIEgJIASAg==")
oAppearance:Add(3,"gBFLBCJwBAEHhEJAADhABT0MACAADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFIYRoAmCYZRnAYZIpjOZ5BiKAwgQiHMbwTLjfyMACjH7nnJEEigNIxToOU4jFDGIAWArAZBEbTENBtBIUIRoCA6CgOCAYRa4AJTdL1Er2ex2G7WMpWURkHTUJgGN4BVbdeoxPi/b6wDA8CwXAaHXpfbaKYQ7brYaikchyLI8Tq9bDNIgADLoYADJIoCRqEyudKQcrXJakaZqOoaXo+W5VVzWLpDVo0XBdTiLAAzKDgA6bRqBSjgMjuIpcbABazPJTwPJcXxnGyMehyWJ47KoKZOkoNRTiIRoCDgCZXm+eA6m0dQQj8MRInCUY7CIVoCEAFZonePR+D6d57GESA1GcIoAA+X5fgW2oJh6QAlnMdZHlgFIogGXw3lQNB+AAA54n4PxflefgBgCXIyBIFgZmG" +;
"AYOBqAhKEgLZ5gOIQHgGfoAAkCAKBQZJIDiJBogqRwYjYGAZksGJFmGAogkiAgRgkIhohyfwgiOSIsGiCxkAGRBwhCRgZBYM4HGMWA+DeBJhEIBhOg+JAZEYQAaGUQhyFYdZjEgfhKgiIQohWc4TggGRCFKGJkCkDBehmTpJiWTIWGCWRtl+CJkkcfIAhyZgphIdoLEaWZkHeHpmjkIhaggZp5HYORzCcMgCHWFIkDGQBviKZx4jQZIjkuKhFkENgKDCThJiAHR5kIXhykeeh2geFBGmqBBmiiaI6hQb4diiGYcF4PgqkYTJXCgApDDiCYbGmBw6hqIJZCGeo6hUBoZlgaovmOY5CkIPQsEqKoJh2J4RjQeYylkM5cm0NgMhGegNH8JZImGE4BEeWpygiEJhiGDIGjeXATgaYgXG4SweGQGRugKOpqGSThTAQdA+hcCQuhsP5HjuVoPBkJQqhaZAXEsO52hkNYNGEcwCjmJAaCaew5HCBhOA8PpvJQDg" +;
"/iyMZmiMGYGv4dw4jGB5MlKRpwCEcwEhAKhcE4OhRisdwEhmSZHGyJwjGQTRMjcHZHmKXBUGuJxHniHwlkqXpzG8Oo+moWRKmgGRKC0BZzk2c/FmiUZkFGBohBuJQhH8TgxjUB4ElUJwCDMRIRHuNBYhyd5WmuTJKECQYuEuCJhHWTYShQNhtm0M5zFmSpvFGbgvkgKI9DgXw8jcRwwm0GoCgEAxhoAWB0MwgQWi7EmOcMIpgnDwC4CcA4wh4gcB+BUYYcROBPA0GkCYhw4iuCmDgEg1wWAwDmBQJwlw9ifD4OsTAcQLhDBmHQbg1gzBvCWNMegnQnhNGqHUDoXwujWHqAYLICAAAbCKDAOQ4BMD9GaFUUo2QYjzFcLcTovBIhODuBoYoJxEBSHwP4JIrRyB5D8FcTI5x8jeEeJsco7xSC5HEG8S4DgEjnHaNQWIfRJheDaH8BgTgoB8EqFYMoFxPg/CeMUeovAMDBGKJkBgXxGgLHsH4R4QQpj7EyP8" +;
"ZI1hEChBQAggI")
oTreeCube:SetProperty("Background",70/*exCheckBoxState0*/,0x1000000)
oTreeCube:SetProperty("Background",71/*exCheckBoxState1*/,0x2000000)
oTreeCube:SetProperty("Background",72/*exCheckBoxState2*/,0x3000000)
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:HasLines := 2/*exThinLine*/
oFaceTree:ShowSelection := .F.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 16
oColumn := oFaceTree:Columns():Add("<c><b>Partial Check")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn:FormatColumn := "`Check <b>` + 1 rpos ``"
oColumn:PartialCheck := .T.
oFaceTree:Items():Count := oTreeCube:FrontFace():FaceTree():VisibleItemsCount()
oItem := oFaceTree:ItemByIndex(1)
oItem:Items():Count := 3
oItem:Expanded := .T.
oItem:SetProperty("State",0,1)
oItem1 := oFaceTree:ItemByIndex(2)
oItem1:Items():Count := 3
oItem1:Expanded := .T.
oItem1:Items():Item(1):SetProperty("State",0,1)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
76
|
I am using the Items.ToString, just wondering if I can use it for multiple columns

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:TexturePicturePath := ""
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:DrawGridLines := 0/*exNoLines*/
oFaceTree:HeaderVisible := .F.
oFaceTree:Columns():Count := 4
oFaceTree:Items():ToString := "1;2;3;4,5;6;7;8,9;10;11;12,13;14;15;16,17;18;29;20,21;22;23;24,25;26;27;28,29;30;31;32"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
75
|
How can I show the item on multiple-lines

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oFaceTree
LOCAL oItems
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 12
oColumn := oFaceTree:Columns():Add("<c><b>Items")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",16/*exCellSingleLine*/,.F.)
oItems := oFaceTree:Items()
oItems:Add("Short")
oItems:Add("The eXTreeCube library provides fish-eye representation / cube map texturing of different components such as calendar, multiple - columns tree view and so on. Cube map texturing is a form of environment texture mapping that uses a viewing direction (3D vector) to map into a view plane the six 2D textures arranged like the faces of a cube. ")
oItems:Add("Short")
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
74
|
How can I change the visual appearance for the control's radio buttons

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oAppearance
LOCAL oColumn
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:RadioButtonWidth := 23
oTreeCube:RadioButtonHeight := 23
oAppearance := oTreeCube:VisualAppearance()
oAppearance:Add(1,"gBFLBCJwBAEHhEJAADhABNoCg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKQobh2A42SDAcgSFIADRfFoWmxTdAcYSCGSZZrGOiQADIM40R7UAABPBNKR1BKmHZDQRAApqXIjVDAYIQSSBUlkHScRijDICXSIIQmbajIZoJCiVZ3VaGETnRQlJQuEgOHZwDAsBwPBqBPziLp4WzmGqhR5ichYHI8RYVTKXYy3DxZW7OO4PQjQM7hHL8fwlfTuagyGpZOxjP5cdrYHw2J7NUzJeDxbhrTb6Zh7ILVX7TNIwXAdD4PIKmNryORsC4XG5pZ7oOh6Lo3G4rhWZI2nOL4eBON4LkeRJvHWDxvB6G5Lmac56D0OY3hMU5bm6bRoiAeA9DMX5riydJ+D8P4vEeO4xkEcQfCYBZrHKXgzlme4BmCB4eAUZRbAaAZeGsDg4EYCYEmERoaBE" +;
"OJaiMIY2EIXo2FYFYHmIBp1j8OoQhcYZNDiIgIiYE4Jl2BAlj0agOmiKgyH6Xo2jECYGE8WJmDODpehgFgZEIXI3DyfoQmQSQWEaEZkgkJhKhKZA2hmSxCEyGREnSFJkkkVhWwCCAthFKRjiIXhpiXOhihGYwJESSRCFuIxqGoPomkmDhuhWT45kSXYcl8UxdAkbgPBaMhTD0JApj4foRBoaJ5iqAxdmadhzDcWxpgIf4bhsY4Gg6GYYDcegNGUYg6VMIsBBmNg8CmRwuCOJBgBaAgXh6JQzl6JocE+OQQn+KpqkqNouivgQiiaLJPHaMZYHwQAHHIdRrA6ep2jMbYqx2RxzmqBpajOLxOnacYPHcHZnHGOlynmbo0jSbRLFaJoJlyNpplyKArhcGZcgMWpGjCXo4liM4ukiHpngkeJojiTZphmLIDG2Nwak2N4vEaAJsj2bpLgWFxlGGExOn4dgvHOMpxGgbwkAyaxEFCFAEICA=")
oAppearance:Add(2,"gBFLBCJwBAEHhEJAADhABCEMACAADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKQobh2A42SDAcgSFIADRfFoWmxTdAcYSCGSZZrGOiQADINI0R7UAABPBIMSjAamHZDQRAApqXIjVaAhySQKksg6TiMUYZAbaRBCEzbUZDNBIopUQLVU5ABbUEqBIipIrEQLHNwPBaEYZiOIYW5re4cfzIMhyLI8Ob3CqHZhleTwTjWGYvSp1dBbTQ2QyVRanMDqOjsKxmW5Gbh5NhfHY8dxnDKcZ5jGSudrjEZ9VpmG74JzeEbjRj8chxT4PDxnBK/YDSWgdLo8VzXBpcG2MY4maXxzFKQRxHgOQeC8H4TkuZhzHoNR9kaXpNnONZsGGMo9B4A5bmuFZ7n4Pw/i+XpFmSVB/mAB41hsQJfBYOJXgGXAHm4CoCmCtYAHqXRWBGWB/F2Z5UnaAxZFO" +;
"aJ2DuTpzHCOQ5gwcg8veDBjlCaA0mGBg6BYapcEONZiHYHADg4MoKE+U4QkEIINAISAig4Y44moPIPA4EpoHSBoOngNgyDiW5jCGShCF+VouA2EQNhKHBMg+Y5pFYPYVmOQxYiAD4kEgNZRHSTokCWax4A4KA2DaDglGkUhYhoZRph4DYZB6NAllEbwOmgKhEhqJ4JjIa4ek8c48mGAoflcAQJhITxaBYCoHEuGZmHuIooioIgKgWJIUCWXh4hkNhImkM4JloMh6iaJRzhySAkCkVhFhUd4QhMJomD0KtvBCCJMGocouh6KIKiifoKlodAmAAOgrgYVoVD7Y5AlMJhDAqPoLh6D4DkCYosicSoYkkQhcmMapOD6LQKkqHgkCwKhwmILpHFqSJ7jaTZbHYBw1lCFwwnEcAqgOUoUGSa5DxkLQGHsVhWhQRJKkmFYkBuaI1lgdBtlMdZKi6LoKnSZQwggOp+kGJpjiufIDiyGQXCiYZCmyJxeAQYQi0YYI" +;
"+lieoqmmKwpHIdoskIGQGFWSg8DIBx6GCQ4AAYXhHjlo5fCqNpPjYRJ/kucwMkcMpM9GMwqk2Tx3AGa4AnIVpkm2N5cAgcJvk2XIsjGeYlF53hKk2dAnEGJR7nCdxlgYc4ajmEplk4NYNGcWpKiYRx5k4dYhC0RxggsTpXAGQA3jaBoEmuUIuFuCo4DoNoDHqShwCKXYPCSXYzmOMx6lwOwZoawrgkE0HwBY1xegdE2MMWQhBOhoEUBIQAgCAgA==")
oTreeCube:SetProperty("Background",73/*exRadioButtonState0*/,0x1000000)
oTreeCube:SetProperty("Background",74/*exRadioButtonState1*/,0x2000000)
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ShowSelection := .F.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 12
oColumn := oFaceTree:Columns():Add("<c><b>Radio")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",1/*exCellHasRadioButton*/,.T.)
oFaceTree:Items():ToString := "Radio 1,Radio 2,Radio 3,Radio 4"
oFaceTree:ItemByIndex(1):SetProperty("State",0,1)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
73
|
How can I change the visual appearance for the control's check boxes (6)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oAppearance
LOCAL oColumn
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:CheckBoxWidth := 16
oTreeCube:CheckBoxHeight := 16
oAppearance := oTreeCube:VisualAppearance()
oAppearance:Add(1,"gBFLBCJwBAEHhEJAADhABKMGACAADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKQobh2A42SDAcgSFIACxfFoWRrnaA5QoGM4EDTRYADCKsaQ/J0LcI1FLUEyUf6sAArB74XiCIAIQiUBomGahajkMoYZAAaDCCI2a4aDZCIoVHalKgxC5oKSqCJqbptMZ/HrgJQYGRuC4NQ7CcDKDATbr9MZ9ZBCNZoPimEYtS7MMLyRB8QpyAytaBhRaaGwmSr3U7Oc50d69FYTIxcYZoCq1XBOGYMZLcNR3La9YYnBqMbRAeJYNped6NSDVcKxLgaa4fTrOZZzHL9HpviMWYBnWOr+kwJ4zlqY53CAZQ/B4GZzmab5qHyT4cDeDInkwPp8DCTI/h+Iw7nMZZhj4B5eGKL57gYGAgAadZoG8soBgYfxKjcSRYCCYJGGYDoDmCQgNh0ZIZAaSB2gW" +;
"YJ2F4FwdhsJpuBQfRiAWdQJDqUQUCUASAgA==")
oAppearance:Add(2,"gBFLBCJwBAEHhEJAADhABV0GACAADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKQobh2A42SDAcgSFIACxfFoWRrnaA5QoGM4EDTRYADCKsaQ/J0LcI1FLUEyUf6sAArB74XiCIAIQiUBomGahajkMoYZAAaDCCI2a4aDZCIoVHalKgxC5oKSqCJqbptMZ/HrgJQYGRuC4NQ7CcDKDATbr9MZ9ZBCNZoPimEYtS7MMLQXK8QpyAytaBhRaaGwmSr3U7Oc50d69FYQXqvYZoCq1XBOGYMZLcNR3La9YYnBqMbRAeJYNpedy2YbkFC5LStHwbCrBVpxWotDxQjWVgrHYGI9iybhbiGUo+jafA6DKZxjkoVgxHoHR+iqXx2jMA52l8XJ/CMJ5TkaCp7nmOwHk+XovmECR8BWMYyAIHAgEOBgGFaSo4CWeQVgoSA0lOA5fEGEZQBSYRGBi" +;
"eYFlWMhiBoPZhkabI3geYIzDYIoHA8dxAH2CZYGMLgqHeW4zAYLgWCMB4gGIeoOjcQgJCqWBhgIOhvGKRhAn2D5blcWBaB+JBGi2EhWAgOQlhmEpYgiHB9DwJQCloUgWmUQoOFaEZXlaSB2haZJGF4WwdhsJRslmGJGDmFhYg8ZoHBiZYalCE4tBEQhQBAgI=")
oTreeCube:SetProperty("Background",70/*exCheckBoxState0*/,0x1000000)
oTreeCube:SetProperty("Background",71/*exCheckBoxState1*/,0x2000000)
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ShowSelection := .F.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 16
oColumn := oFaceTree:Columns():Add("<c><b>Check")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oFaceTree:Items():ToString := "Check A,Check B,Check C,Check D"
oFaceTree:ItemByIndex(1):SetProperty("State",0,1)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
72
|
How can I change the visual appearance for the control's check boxes (5)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oAppearance
LOCAL oColumn
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:CheckBoxWidth := 24
oTreeCube:CheckBoxHeight := 24
oAppearance := oTreeCube:VisualAppearance()
oAppearance:Add(1,"gBFLBCJwBAEHhEJAADhABO8GACAADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKQobh2A42SDAcgSFIADRfFoWmxTdAcYSCGSZZrGOiQADIM40R7UAABPBNKR1DZ+KxAB76cheIIgAhCJQGSYZaDqOQyRhkBTqEIITZsRoNUIiRStayuDCLTwoSooXayfjHYAwOBYHgmC4NQ7EMRxLAmOw1ZKPQjgDDvDilM4tS7MMxzLK8cx3FjqaAyWhQTgePZNU7UNLwPRMCb3LqvbBsOxbHqma5tWjVYDwPZ9cz3Pq9biAG57fwnC59YLheK5Li9Q4jLbMdByXLMDxHiuRJpnWOw7k6RxrjuM5pj+PA+C8H4TkuZpznoPQ+H8B4rlubp3nsfYfA+H5Tl2cp6n4Pw+C+P5rnucx/B+aAFmqAAgCgFZlHSVZICYCoCmCSA2A6A5hAgPZTGWIQYFY" +;
"FoFmCVsjj2YZIHYHoHmICIGCKCJiEiCZBGMTJjiIKoJGKSI2C6CBOjiRYSEITp4lWIgyhiOJmDqDpYHiIYgDqEITi0ERCFAECAg==")
oAppearance:Add(2,"gBFLBCJwBAEHhEJAADhABA4Cg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKQobh2A42SDAcgSFIADRfFoWmxTdAcYSCGSZZrGOiQADIM40R7UAABPBNKR1DZ+KxAB76cheIIgAhCJQGSYZaDqOQyRhkBTqEIITZsRoNUIiRStayuDCLTwoSooXayfjHYAwOBYHgmC4NQ7EMRxLAmOw1ZKPQjgDDvDilM4tS7MMxzLK8cx3FjqaAyWhQTgePZNU7UNLwPRMCb3LqvbBsOxbHqma5tWjVYDwPZ9cz3Pq9biAG57fq7ZLEYziOR4Hg+JzFbDVKq0aYjA5RlCU5mm8OR6l6Q53pqaAkgQXgBBMeRmGabhtjsTAeGuaZsm+aQMDwfwvAuJYch2dBsj0XJWkqHIZnMCIOEMBICHiXwHFWVx+A+V5pj4eRGGefJvDcC4WjyXArEWF4OAy" +;
"AgghYCYsDAT5oHYHoHmGU5sncPANGKAA+HiXJyi4IA/g8U4klQfAeDeVIdgqYxIlWaoNGMQ5gnAOIOHMIIQg4IZonSEIBB0OIInCEAjGgaY6GCJIJDYQIRiEOBVmEN5LEGHhOggIx5F4WoKmKWI9lOCgdAkahZhaZhIH4QoRAMCQaE2GJmFmFhQgUJQZgoShwiSSY2HaBxllmFZqFcJ5JnYfofmgCgGgKIJoCeKYWiEKIKCaCogBqd4oneI5pAoRoSiSaRKFaFolmkVwFg0M4OgodoYieagKgaFA6moRhJAkO5qgaCJKGKapKjaLhhmmNoAmoQhOjQRQJEAQCAg==")
oTreeCube:SetProperty("Background",70/*exCheckBoxState0*/,0x1000000)
oTreeCube:SetProperty("Background",71/*exCheckBoxState1*/,0x2000000)
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ShowSelection := .F.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 16
oColumn := oFaceTree:Columns():Add("<c><b>Check")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oFaceTree:Items():ToString := "Check A,Check B,Check C,Check D"
oFaceTree:ItemByIndex(1):SetProperty("State",0,1)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
71
|
How can I change the visual appearance for the control's check boxes (4)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oAppearance
LOCAL oColumn
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:CheckBoxWidth := 32
oTreeCube:CheckBoxHeight := 32
oAppearance := oTreeCube:VisualAppearance()
oAppearance:Add(1,"gBFLBCJwBAEHhEJAADhABfICg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRijDIAbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EMRwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsOatVqjG5sYjcGC3La9cz3Pq/bpuDCbMxuaK1TrYXr1TTrcofBDldAxXRKDxRDWVhLnYOw9i6XxzjuXprCaOoKB6EwbiCZZCGOdZYlcT4xHmbhMnwNxtn+G5bmqdZ7n4Pw/i+X5zm+dQ9g4CAFjsfAJheOI8HsDoWDWTB/lwSAQkmA5PEgRYoDyDwYFY" +;
"FoFmGCBmBqBphDgRJ0gOTIYBGRB/lyRh0iSCZbjYWJzgWDwIjYLoLmMCJGDKDJjBgWgqG6YhyhGHRzA2aJ1mCABOAiOJvhCZBJBYRoRmSCQmEqEQimkAZgg8TZnDCV4UkmCUmBKZYJGYWoWCUUhiFMNZckNUh2GENoaGaGZmgmJhqhqZpGGIEx2GYIxSGGGJdggWJth2Z4JmYeoemeSZ2H6H4hGmQhihyTRHGYLg7CiCgmgqIpokoNoOiOaJ4jqAochqaZGgaCxpAoZoaiaaJqEmWIcGgShcnCJwqEqFoR3YOoFlgchflqNouiuawHmWSYqGkWZQhcatzmaOoumuSp2j6L5bBaKo0GQKRnGGCxqiyCwmkqMpsksNpOGUGI7A0ew1G0Rxlg0PptgsZuDG2Sx2l6N5tnYNZZjUDRXDCVo5l2FoymqOpukuNpujubwLjmWY5k0ZwxkaFxYlWdp6j6b5Lnafo/nABQdg2FxcUsY5BkmXAkmeQpckwNRrkKTh" +;
"8CSHZBk4NwyC4KxxgMDwakOMZDn8GgwnGAo2C4cwthMcwmCcMoHBMHRehwTIghySYNksZwcH4HBMEsHx5hyPItiweYxnwSZEH4Mozn0fR+DMAo7EYJ50gkdZelKdNql2UgJn0GIukwH4HicQRai2GI4mSVpNl0dZGledgNgcYpYDWUx3FsOQi5YV5anaTY3G6W53A2RxylydxFjiaxEFCCgBBAQ==")
oAppearance:Add(2,"gBFLBCJwBAEHhEJAADhABcoFg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRijDIAbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EMRwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsLpOS5LNKsaxmWLYdhFdTxQi6LpvfA8BwXC6JY7heRYRbFbYxRjGNi1TS7G4nGKd5WGuL4UHwI4VkaYxii8V4pgQMgVBQdQ5iCTYGi8T4vlWbJ3nuPg+l+H5AlSCg6ByPBoE8Ap3jqYxhBido5g0OgOGOGI4CsSpCCAcgcAuEokiEN5NCKfJ9DyTRjnS" +;
"cg1CEYxOBmBpPCgagdgcIZoHoGIFA4AxQkCAxKAgKBwgGSpIBCZhjF2E5UnQPQMiMCJBCIBwxkSQgsgo+JtDKT4ziiQw+k6EwAnsOgLnkHI+yCQ4iEuE4klkPhShEJBpAoPgymOMoaDgHBjFMBgyD0HYTiCZSZhIIIGC4ChiHSew5kwM5omILZPiOBI0hwZw5kodIdA+M4Uj4PxOmMSJ9DuTQzmyZgviceZagaHVfj4awwmaAh2GUIYmCOEZZDaDRDFGdwcg4EwyHMN4LBOaJbCoaZqgKH8qkMfIyD8DozDyfA7A0Coui0OpMmOZJdCsahKg6NooioChwmEMxLEoXJbDUTRXGSUgykyMgQG0GpPHMdI3D4TRCgSeQ0kmaw+lGNAtCOZJVCiT5DhyRQwAqMg0EoDBBGEGAsASC5yiSCw+k4Mp6lWNQuksTpRjMTxDGzJwGmGMpDDKXYTECSAxl6Q5olkK4PgMMIVkASRMBMBgzEkaZEjsNALhIZA6AeQB" +;
"gk0ZJEgAAJ0CIAgODMNIsD6DRih9uYwFyAwfCUb5ijmbI+gwdxkk8MZMGeMpPCkDxzBiC5MHMPJLDSSROFMLIoBEQogEMFJPnENYQGgE4DCOaJfC7tYkhGTQ0kyWwykuXpMiyRpKjKR4wngM4JmOWJACCdYtHMWw+Eych4nINYLAEYA8AgdAEEsQZajaQoog4GxPiMVIolcdxNG8XZVkmNoRwWRVBlFeFEeAZQJgnFiHgHwcAhjhHgGMSI5xki2CyA4EQsA3i0HkBsLwKRFgAHcPkHopBJBcBeDUYI7xyDOHqKkWo2hLCsDIBIY4qQ5A8DoMMYwOAqCSBGKgU4yB2iDBwIgB4hxQgAAWNgBoAgsBdEcBUQ4sQ9A/HqD0JI8RpBzH2OYVgahLBHFiJQJweQiDhDUE4SAARQAzFsG0EQwA6AOWSBkFgVAIBCHeGERQFQiCQHeFkC4vkiB8DyB4F4QxVDvGMNEOQexMjlBeOAKQiQLgfDA7QEAaRiBdEkH8" +;
"TI7AZiFBAGYBIABWjYBiGACioQ4C1A+AMMgWhfgxHgPsT4URIB0COKgPgjRwiAB8AYUArxBgCF6J4GY5hrAOCAPAAoGRRCsCIMEXATXfgAF8BMJwURuEQDgD4Q4OBoAeHGFgLIwQrC2D0JoSQ+QvhrHoHERggR4A2GKMQH4FwBD0CgAgAAkAFhAEwEYAoYAiBeEUBEAYEBRI8EUCIcAVAEDQG0PcZYIBVgSHEAEGojB4j1AeFkHQ+wsBDBQGQTwyBdDREMAwNAjQhh+BoMYZA1wNhjEIG8QwwROAmEGCgBQCBgBQHKBoUYDQqiNEGNgGgowQjZA0MMHAZwWBgGsD4I4QBqAfDGJAMgrhAiRBGKQQgPRJAyB8EkJIWQUglGOBgZYFgGBYAIDsACmRgjgH0B4EYnQljIBiJwOwRh8DZA2CIGAOwDhRGEDQQwLAulGACJwZYOQ2gtDKMQWglwpDeC6AoUIJgPBiGAAACgggoBDAUPEHgJwShIGwDsEYtBnA" +;
"JHiBoEQxRgCqAoCkeAbBUAhE2C8EwxBcibBkO0TgjxQjIBkIMIATwDCuGAB0QQEAJAtEKDgUQHgBi0DsJ0SI9AygkAwM0KQ4wIBcAUOEfQPRDgSB8BoZIrg1jNFSP0G4KACCzA4GMHgWqnjwHYAMDATgDhDHYMATokhpA9AaEAYoFwhDkHmAcHIogUBHAANsDIpR+B0EoEEbIRxUgAH+KMegihIDSB0E2X44BNgRFmAEZINhYhYBQIQYoDgUCFHsIgG1hQZhmDgIwCIoRwA7CQGMdYTxniVCAD4OQGhOiHDAJ4BowQSAFAIIAGAcxHBBGGEwRYVB3gfBmDAOoURIi0BsAYQA0KlA0DMA0IImQrhqH6F4VgFRHCxCtLYKwxgyhYYGFgNYjQQidCCICllpJUjVAUOwLwxQ2gwEwDUcwmBrh6H4F4BY6A02kAaNjMYYADBrH6IkF4FVPiDGgEgAYWwkUIGAGIYoWQpDuDkMUVARwCjgDMMMAIoRBAuAKIkN" +;
"gHQyBEEIJACBAQA==")
oAppearance:Add(3,"gBFLBCJwBAEHhEJAADhABQ4Fg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRijDIAbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EMRwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsLpOS5LNKsaxmWLYdhFdTxQi6LpvfA8BwXC6JY7heRYRbFbYxRjGNi1TS7G4nGKd5WGuL4UHwI4VkaYxii8V4pgQMgVBQdQ5iCTYGi8T4vlWbJ3nuPg+l+H5AlSCg6ByPBoE8Ap3jqYxhBido5g0OgOGOGI4CsSpCCAcgcAuEosiYN5NHMOJ+D4TpTnS" +;
"eQ7CEY4uBmBpPhgagdgcIZoHibIEyUBJZDQIJShoCgcCAcoyAQOYYlcZJ1D0DxDCiQgwEiAZMHEMJLFKPJ9D2DoDnidQ4k+Y5QmKEROBkIhKD0JIZDIS4TGUCQuEeEJjnOIg8CuY4RkYNgwGMM5RllGpThDRYIGKZIpCkJFUH0PINyWcQ3CaaZCG+HBnEOTJhD8Tx4GoeQ/GcaZSHOH5nCmQhshoZhihYYwhiYA4RlkNoNEMUZ3ByDjwEsPxOnMaJ9DuDR6F6GYmCmKh0nANtMioP4Gg8aoSiIO5NhodociqaY6GaFYkEyOg8lsNRNTaUgykyMgQG0GpPiONJbD8DpDEyfA6k0KwOkWMQsGsAJU0SagwkoJQJDIPISCQCJTGSUwyGaM4KkmMgtksHpFjAZ4TGCBAbgaSpcksdhNAMIJHHsD5TjSWWMAMOpwjyLwbk6cAz0KRJiDkDYzESCwiggcgcgYIQwCIEINCMCITj6TVxkMXp2j0cQLlCTo7E2F4" +;
"ymkMZdhMPJHDGHpLAyVg+k4UwrCCSIyByDJ8DuDY8CiWY0kiXAXC6QJwFKGIjCeJpjgyezjlyDw6klHx5myRoMGwZwbkcToTEiew4kwbQfEmUgPkOKJUD4DpTHSHQmgkXI/ASTA1g0XIEDMTBimyfI7jSLYHEiUoPk0Fw/kadAsHGao8A0A5smEMJ2mNyg5gzJZwDgCpChyIZVyIZwFCMJEPASRkBqE+IcHInRcDxA2H4bIsx0AtDsIBpwZwYicD6BscwDwUBgHCIYaIfgtiVH2O4WgUwJjEFeAEQA7y4hMCiBMS4aRdB9A4CYE4LxljyBMHcDItBxinDCLcTYmgejBFQ9UTg9gFBOEmAQTI7A4iZGMGkQAWQ7jYA2HIL8BRAjDG4HcCwARbjZHiNoDw1nLDnGyNINQ+wjCpBMEgcovQUgICQJEcgWRuBvAyJ4d4ugpCUAINcHogxIgnDiM4N4axzD3F2JMTY/hRqYF6FsWIxhYAGGoAALQYgYirBwBE" +;
"BwpAjBEAAIEIYsA2gOHCMAGgXAACIDmMITAUgFABH0D0I4WwvhNFGMAOIvxRD2GKNcMA8gjAPDCPwBogRPAxA8PgRwZRICYDED8RAXQEghEAN8DIgwIBdB4JYWwMgtiQHoFQKAiRFguFKGwGQhglDsEOVwEQQRkCKBwOIHgSREDRBYHEXQcQdD7GIGARQHRxipBrMobgewDCUCADsEYWAzgMHKHQDQxxsDzA6EMfAeQHB4GQDkUYPA0iECiKoGgRhcDdA2GMQA8AOCjDSPgHI4QnApAKBICwHg1A+BcAwcYsgbjGGQNkCIgRsA6EcBEWANADjsB0B8YYzQQDIGSBcEYZBCCPEkFIHQSgkgZAwG4IwBAbAYGGAgL4Ch4g8BOCQuFFBaDOASPcAALgChUDyB4cYtgiiOEyCcEopRCCvEsFIKomQEjnB4L8YgQBfgWEEMgPADhojaDsEcaIlBFiDBqEcRgQQ4ArEOPAfYQhUjmCsMsHIYwShmDmAoDYsRqj" +;
"xAUAkHwPwDjYH2DsEopA9AaECIoFwhRkjmAcHIUAUBHABFsDMJY+B0goEGLIOozhoj/B2CcPg7hPATGdduAALgiiEBsBkd4Fg2iUCEPsG4RxKDDEoMIGARhDiAHaBcZ4rbeBUBQPkYo+gFAdE+AwKAEQhjGEUE8aQ1QYBQFCJwTgww1BDEaAEVQMwjBgGoBkSghhIjSBUEkJI6QagpFIHQPgZgojaBsDgIw8BvBgHYAG3QeAUhFFSMQfonwxg2D6E8ZQcwnjLG6DYCgjoAitB0IEKIyxigUA8DQZoq5tgiBICoIoUQXDjDgG4BouhFZdBQJEDYQw0BsEsMEawRAkBJACQEA==")
oTreeCube:SetProperty("Background",70/*exCheckBoxState0*/,0x1000000)
oTreeCube:SetProperty("Background",71/*exCheckBoxState1*/,0x2000000)
oTreeCube:SetProperty("Background",72/*exCheckBoxState2*/,0x3000000)
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ShowSelection := .F.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 16
oColumn := oFaceTree:Columns():Add("<c><b>Check")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oFaceTree:Items():ToString := "Check A,Check B,Check C,Check D"
oFaceTree:ItemByIndex(1):SetProperty("State",0,1)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
70
|
How can I change the visual appearance for the control's check boxes (3)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oAppearance
LOCAL oColumn
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:CheckBoxWidth := 32
oTreeCube:CheckBoxHeight := 29
oAppearance := oTreeCube:VisualAppearance()
oAppearance:Add(1,"gBFLBCJwBAEHhEJAADhABQACg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFIYRoAmCYZRnAYZIpjOZ5BiKAwgQiHMbwTLjfyMACjH7nnJEEigNIxToOU4jFDGIAWArAZBEbTENBtBIUIRoCA6CgOCAYRa4AJTdL1Er2ex2G7WMpWURkHTUJgGN4BVbdeoxPi/b6wDA8CwXAaHXpfbaKYQ7brYaikchyLI8Tq9bDNIgADLoYADJIoCRqEyudKQcrXJakaZqOoaXo+W5VVzWLpDVo0XBdTiLAAzKDgA6bRqBSjgMjuIpcbABazPJTwPJcXxnGyMehyWJ47KoKZOkoNRTiIRoCDgCZXm+eA6m0dQQj8MRInCUY7CIVoCEAFZonefApC2BQglWHIKAAPx/D4FoyHgTZsAIXwYAWYR8kMR5YAAP4PmOdZ7H8X54AoDhziASAaAiAoeAecZ+CQ" +;
"IAID4GhwGEF5eBOAphHgZgbgiWQYHYB4CGICA2CSCpPnMYIjgEYZoiIFYDCGCIyCsNgKCCRgSgyHZ4FoKoNiGOJgDKDphEidg0giJEnDiDojBkFZXg+IxZCYGoLgMOQSCmFBlCgOJZCmA4jDiCYJmSZw6FCEglheRhbA4ZZpgIV4ZCYV4+GeGhhniTghhsYAps+HBkGmTh0hmChpiId4PCSeQeHuHwnmmKhyg+aA3gYdohh2cxUhwCJNBIRZuiIXoDGiJwOkyWR9nkPwoiKFA2G2YBznaHIlB0cxGBiAYfAONJUCgIBmlAFg6k0AhaioJ5OkMTIdi0axzEyHmEBIYJpDMCJanyDowiwQwyq0LBbB6Sowg6KwYmoMxI26GwIBwU4Mj0GpgCOCI6BmG4mmYX4mG2a4GmCOAmhuFhfjmAALiKao5m6S4ml8bpNmKQBQgkFpzjSbg1koc44lYKQviKFp9j+TRrnsAZADALAXASQZwDwJp8xQc4uiSQ5xAwRw" +;
"SkSYhDi0ERCFAECAg")
oAppearance:Add(2,"gBFLBCJwBAEHhEJAADhABZ8MACAADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFIYRoAmCYZRnAYZIpjOZ5BiKAwgQiHMbwTLjfyMACjH7nnJEEigNIxToOU4jFDGIAWArAZBEbTENBtBIUIRoCA6CgOCAYRa4AJTdL1Er2ex2G7WMpWURkHTUJgGN4BVbdeoxPi/b6wDA8CwXAaHXpfbaKYQ7brYaikchyLI8Tq9bDNIgADLoYADJIoCRqEyudKQcrXJakaZqOoaXo+W5VVzWLpDVo0XBdTiLAAzKDgA6bRqBSjgMjuIpcbABazPJTwPJcXxnGyMehyWJ47KoKZOkoNRTiIRoCDgCZXm+eA6m0dQQj8MRInCUY7CIVoCEAFZonePwfA6fx7n2MIkBqM4REAB5vnOQpWCeAhnjACR9B4IoEC0OQMAGSZ0H2AxHmQAA/g+Y51n6AAgCgEZLDa" +;
"ChgmCUQkACAw8g4AJgjKEgNH6IQIEmYB/mAEhCAOBYZDMZIlA2TQSEQCheAGiwKDmTBiAWYYDCCaIWBOChijiMJ/DYXx4loNINBsQBdkWDpiCidgRg+YRYFoRANCMEAuEcXhlHiVISAMTgSlwXh1mOSISE+CZhEiKgLCiQw5FYWYaleFpQBiA4PhOSJhHMJgYD4Yx3mKn5fDYCgwkiUQkiUaRigIYhoEkZZUASTRiHAIodCSWYKCaHgmFkBh0CiAwZn6AYhGaUhcBiEhmkoEJQCOQBTiiTQjlwGZwDOE4oncXh5hmHIzGCIgMCkah0lMJYBFeMAHiyQRqmKMomiCY5wnoPUzFyuIMmIJh2ioXJqi6Ehkg0coEC6H7zHSUgkkCaxA42ToDmydw7GCahygODQNCIVASgoGQ7GyWAyEeaA9n2GQkAsBgGjQKBqGmwxNiKHA7HATxjiSTgzGwaY6h2J5AGOiwfFkM4UkEHQPiWQhQisD5zFyHwKimcAWgZhp" +;
"rBQAA6AyAgVleHILlucAAj+KA5joDhjg0VhOBEPpwjkBgQD+H5wh2bACBmYBBlwAQPGOKJRH0DwTHiNpHjICgSjiLYkCUGrzk4ApUFoNRJjCBxBGQTwjgCOpPBsWRnDGK4DAiMxDlKXp3ECRpFiuKgOh8AZODKcBqH0NR9GGdA+A6YxplMdRlHmPY4DsTRig2YXfECDg2lmJAjnCeQ8meOANwYwSBXEsDUeQZxdDxDgGwbY3QjjmHiKUcIwQnBfGADYZowR7B6E6E4MI2g1AUAsOkFwCwOhmECC0ZYkxzhhFME4egXQThHGkPUDoPwqtkE6E8LQaQJiHDiK4KYaBCiwFwOkaYVROhqXoIcdw9BzAcCKNAZg3Qbg2BsD0cY+BvBPEWOUfIHgziVHMOMYwWQEAACGAEZYgg7gaGKCUXQ6hoD7F2JwW5txIhPHYBQTwwQljzD6AYW4zx6h9B+F8bo9h/AfDONUZwkhziJF8FwHALBaCTAwIEG4CASDfC4Fw" +;
"AIRRHuhBAOUUwAxoAQH6C0eACgDAeAMGoGgGREDPAiKAAIVwBgYA2AUZ4QgEAOEGMANwCwIjWCIEgJIASAg==")
oAppearance:Add(3,"gBFLBCJwBAEHhEJAADhABT0MACAADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFIYRoAmCYZRnAYZIpjOZ5BiKAwgQiHMbwTLjfyMACjH7nnJEEigNIxToOU4jFDGIAWArAZBEbTENBtBIUIRoCA6CgOCAYRa4AJTdL1Er2ex2G7WMpWURkHTUJgGN4BVbdeoxPi/b6wDA8CwXAaHXpfbaKYQ7brYaikchyLI8Tq9bDNIgADLoYADJIoCRqEyudKQcrXJakaZqOoaXo+W5VVzWLpDVo0XBdTiLAAzKDgA6bRqBSjgMjuIpcbABazPJTwPJcXxnGyMehyWJ47KoKZOkoNRTiIRoCDgCZXm+eA6m0dQQj8MRInCUY7CIVoCEAFZonePR+D6d57GESA1GcIoAA+X5fgW2oJh6QAlnMdZHlgFIogGXw3lQNB+AAA54n4PxflefgBgCXIyBIFgZmG" +;
"AYOBqAhKEgLZ5gOIQHgGfoAAkCAKBQZJIDiJBogqRwYjYGAZksGJFmGAogkiAgRgkIhohyfwgiOSIsGiCxkAGRBwhCRgZBYM4HGMWA+DeBJhEIBhOg+JAZEYQAaGUQhyFYdZjEgfhKgiIQohWc4TggGRCFKGJkCkDBehmTpJiWTIWGCWRtl+CJkkcfIAhyZgphIdoLEaWZkHeHpmjkIhaggZp5HYORzCcMgCHWFIkDGQBviKZx4jQZIjkuKhFkENgKDCThJiAHR5kIXhykeeh2geFBGmqBBmiiaI6hQb4diiGYcF4PgqkYTJXCgApDDiCYbGmBw6hqIJZCGeo6hUBoZlgaovmOY5CkIPQsEqKoJh2J4RjQeYylkM5cm0NgMhGegNH8JZImGE4BEeWpygiEJhiGDIGjeXATgaYgXG4SweGQGRugKOpqGSThTAQdA+hcCQuhsP5HjuVoPBkJQqhaZAXEsO52hkNYNGEcwCjmJAaCaew5HCBhOA8PpvJQDg" +;
"/iyMZmiMGYGv4dw4jGB5MlKRpwCEcwEhAKhcE4OhRisdwEhmSZHGyJwjGQTRMjcHZHmKXBUGuJxHniHwlkqXpzG8Oo+moWRKmgGRKC0BZzk2c/FmiUZkFGBohBuJQhH8TgxjUB4ElUJwCDMRIRHuNBYhyd5WmuTJKECQYuEuCJhHWTYShQNhtm0M5zFmSpvFGbgvkgKI9DgXw8jcRwwm0GoCgEAxhoAWB0MwgQWi7EmOcMIpgnDwC4CcA4wh4gcB+BUYYcROBPA0GkCYhw4iuCmDgEg1wWAwDmBQJwlw9ifD4OsTAcQLhDBmHQbg1gzBvCWNMegnQnhNGqHUDoXwujWHqAYLICAAAbCKDAOQ4BMD9GaFUUo2QYjzFcLcTovBIhODuBoYoJxEBSHwP4JIrRyB5D8FcTI5x8jeEeJsco7xSC5HEG8S4DgEjnHaNQWIfRJheDaH8BgTgoB8EqFYMoFxPg/CeMUeovAMDBGKJkBgXxGgLHsH4R4QQpj7EyP8" +;
"ZI1hEChBQAggI")
oTreeCube:SetProperty("Background",70/*exCheckBoxState0*/,0x1000000)
oTreeCube:SetProperty("Background",71/*exCheckBoxState1*/,0x2000000)
oTreeCube:SetProperty("Background",72/*exCheckBoxState2*/,0x3000000)
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ShowSelection := .F.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 16
oColumn := oFaceTree:Columns():Add("<c><b>Check")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oFaceTree:Items():ToString := "Check A,Check B,Check C,Check D"
oFaceTree:ItemByIndex(1):SetProperty("State",0,1)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
69
|
How can I change the visual appearance for the control's check boxes (2)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oAppearance
LOCAL oColumn
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:CheckBoxWidth := 44
oTreeCube:CheckBoxHeight := 20
oAppearance := oTreeCube:VisualAppearance()
oAppearance:Add(1,"gBFLBCJwBAEHhEJAADhABJACg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIxDFIsBxPFKCQChEZBUjKAwyDBIUzSDIUBhZBIKI7hGa3NBwJAAUTRch0j4iCRQGiYZyHKcxMYgIYCUBkERtMw0GyERQhGb4DoGA4IBhFZQVVLsRBIDh2bbuG4LSrWdJ3OyaN5EbbgZz9P7AMBwLA8EwXBqHYIUGJGbhlbTnR7HMhvDIsPDnFqIZhmOZZXjlfh7T7KNByO6LcI3AiDagtWpNTpjf5dV7YNh2LY9UzXNq3bI1W5aUqyAZ9QQpeB0LILYDbRp/FzyO5NNrHG6dZ7oOh1doOUItlaP5lgcPA7hEJ47H8SD0l4LwfhOSJ9nOIh9DefBREMKYMDaX59nsVhvlKdBpCGfgIl+L43lGG5lH+YAGlWZw/EYOAVH8ZQXncdBJDwIJGkiGYDlmUh2BKABhEgVJpgW" +;
"X4BA4BxcAeWB1H8KJiAaSJJgiWZWAmVA0CEWIln8JYikWfZpCIXARE0fw3GMRpJnaCRYBGWg6gqI5HgoJxfkYCQFlkX5PhkFYyBAJIImGABpGOWQ1k8OxlAWfZ6BGJA1noRQ+GQeQmEoX4kkkOheG2JQDjYUh+iMGJODUbBjHkbAzg6BxpH4bhsmOdZ6EEGAbmIAR/gSCZWkmfYShwYJYlOH5mnoBYvCSaBFnyDYhlcKAll2AwPAaSggCiWZaD6AogiEc4mBmBpYnePZxGMHw3lUeoGGUN5aH8NJpDoBgDgERg6GGFICh2d4GiWK5cngDgvHqWInG0cIfFyBwpjqLArkcTZVHWV5nGaNhxA6VoVicahajaNo9gUHI2nIdRwBwJoOkSMJlFmKpWjWWY2HwPYwm2SxJHIe5sGsYpiGcXpHj6XYxA6NBFAkQBAIC")
oAppearance:Add(2,"gBFLBCJwBAEHhEJAADhABB4Cg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIxDFIsBxPFKCQChEZBUjKAwyDBIUzSDIUBhZBIKI7hGa3NBwJAAUTRch0j4iCRQGiYZyHKcxMYgIYCUBkERtMw0GyERQhGb4DoGA4IBhFZQVVLsRBIDh2bbuG4LSrWdJ3Oy3KKiQy5cABPq/b6wDA8CwXAaHYRiGDYThmF4dRQAG6RcTLWrPFqVZheGYua4CLBxRrINA0LD9DyHJKnaZkDgpUQGN5dTS4GwPQCN3xRWzUyBaQzJfAZV7Lbw3PadX4XRLHcLwfAXFqWaaNZLneh5DouDz3P5YMuaRBicQ4nl6bpuBwKYRnuUY2jsfg9B0b43hOH5KjucQPnwOpMi+A4pnab5qB0a4znuf57n4f5gAeeJqC4R42mEcg5AoIRBnUfggkgLJiCaRA4AYEoEl+Y4AhcDpaFO" +;
"GIrBgDYyBwHICmIB5djge4hEilY8g0MotiUZICkMYB6AEIgYDYIh0g+Q5cm+CYjgOfJ6DuDZ2hSWggkESI6DCDJjCkFZDg0Yx4mYJYOmOVoiD8BQhlgfhEgwZRGBoJISy0IgqGoIpDhCJAVCUWQaFMY5fAkYgBD+D5TmyYAlENPBnCsRhFkoYYcmYMAAmkLRHDmGZ9h2Rw4BkeBnFmeZWHSGIYHeQZuHoHonjGboamaVwYmIJwEEYbZNiCaRKAmdx1hyNZChWIQpjcKZYHAKQ6FqHIoh0Vp6hkcBqgoAodikKgmi2LYnmsCohkAXoXkqMojgMIpKh2Gw6lEFAlAEgIA==")
oTreeCube:SetProperty("Background",70/*exCheckBoxState0*/,0x1000000)
oTreeCube:SetProperty("Background",71/*exCheckBoxState1*/,0x2000000)
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ShowSelection := .F.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 16
oColumn := oFaceTree:Columns():Add("<c><b>Check")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oFaceTree:Items():ToString := "Check A,Check B,Check C,Check D"
oFaceTree:ItemByIndex(1):SetProperty("State",0,1)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
68
|
How can I change the visual appearance for the control's check boxes (1)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oAppearance
LOCAL oColumn
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:CheckBoxWidth := 37
oTreeCube:CheckBoxHeight := 15
oAppearance := oTreeCube:VisualAppearance()
oAppearance:Add(1,"gBFLBCJwBAEHhEJAADhABOkGACAADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjQAsTRQFocAChEYxXjKBA1SJNUgyj6WCQPR7CM5OaDgSABIijJDoGAwIgkUBpGKdBynEYoYxAYySQAIIjaYhoNoJChCM7QHQEBwQDCLUgrGbIbCQHDtW5cFr3DaLEzsXi8FwvK67cr2fp/YBgOBYHbdcJ5OxkbouPC7Sa0AKKYywGRNFijV4se7MHzzLKHXxZa6UNJhGhaHomCYkYDILhxfDMGx7GqvbBsOxPXj2DZLW7cNIyDS3NyfLqzcBwOZZdrPC6NPzTdSuHQOC43Tqgcb0PDaVghmOVpnHYOAcE6FxzEuCAAGGOw+C2HhzjuZpRGGAAXj8H4zGWZ53mEPAXgyZ43kWZZ4H4L4ehwRp/muTh2l+F5ll8cpZEeeZYHQIEZEoW5MBgNZ9gGGpzioEoCF+GA0kG" +;
"ApYlYnY6iAaBtjaBQfAabYpgMIJWgIGx9BmNhiBsNBikiAZwgWIg2DoMRkAyKJWB+C4fAYGg1DKIw2DAAA6lEFAlAEgI=")
oAppearance:Add(2,"gBFLBCJwBAEHhEJAADhABC4Cg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjQAsTRQFocAChEYxXjKBA1SJNUgyj6WCQPR7CM5OaDgSABIijJDoGAwIgkUBpGKdBynEYoYxAYySQAIIjaYhoNoJChCM7QHQEBwQDCLUgrGbIbCQHDtW5cFr3DaLKI0J5kUBENhjaBafJ+XzfeBYDgmAYNQbDcJxDC8KwWeQjXYTdyXHilZLaADJcqZVChSwzCafZ5oOK6Bodfq0VY2HabNgnYbNbT7bBrLq6UwWTjZTYZMxuHKMVyLJK/b5wOi3axKBBJWjYOR5Li+MbvNLFCRmO6ObpjgWHxsCiS5vleW5dkCOBBHWPA4F4Rw3kuZpYG0NwbjuD4LAyWhUho9BnmueZ4nof5+BwS40E+Nx9jYeaKAWNhulkF41m8fBfDOVJoDWDJCCALw7g0cphngP5OEMBISH8" +;
"Wg3hI05ckaUYRAAGL8H4PpPgOVJnDUTIiBAKRfkwcZ0BuBAhCeYgVgWXA3AEfRsiGSJlkobIYnAAgYAWDJyEQPgyAgAIFh6CxBjOMJUCyrQckcJxjniahSHMF54gGRoPl4EZsBgOpNAKMhNDGSZnjYOIUmGRo0mwdAAAgFg1hYGIpGiagzgqE5onMOoelgahkgAIZll2U4bCMaZ2AYagnHgbgDFuXQ2GwM4fCiCYtmMapoBgdJaDAaBni2PYiifSR8HQDpqD6AYmEwFxBlIboWnoGoJiUahGHmNonCYZwmGaJwNiKKBriQWRaEmFooA6UxQhsFAdAqDo6iViJYFCLQdCOLQREIUAQICA=")
oTreeCube:SetProperty("Background",70/*exCheckBoxState0*/,0x1000000)
oTreeCube:SetProperty("Background",71/*exCheckBoxState1*/,0x2000000)
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ShowSelection := .F.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 12
oColumn := oFaceTree:Columns():Add("<c><b>Check")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oFaceTree:Items():ToString := "Check A,Check B,Check C,Check D"
oFaceTree:ItemByIndex(1):SetProperty("State",0,1)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
67
|
How can I display an item to fit the control's width

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1
LOCAL oFaceTree
LOCAL oItem,oItem1
LOCAL oItems,oItems1,oItems2
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:HasLines := 2/*exThinLine*/
oFaceTree:ItemPadding := 10
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:Columns():Add("<c>Default"):Alignment := 0/*LeftAlignment*/
oColumn := oFaceTree:Columns():Add("Pos")
oColumn:Position := 0
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:FormatColumn := "1 rpos ``"
oColumn:Width := 24
oColumn1 := oFaceTree:Columns():Add("Pos")
oColumn1:Alignment := 0/*LeftAlignment*/
oColumn1:FormatColumn := "1 rpos ``"
oColumn1:Width := 24
oItems := oFaceTree:Items()
oItem := oItems:Add("<r>Root 1")
oItem:Bold := .T.
oItem:Divider := 0
oItem:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor ( { 240,240,240 } ) , .F. ))
oItem:Selectable := .F.
oItems1 := oItem:Items()
oItems1:Add("Child 1")
oItems1:Add("Child 2")
oItems1:Add("Child 3")
oItem1 := oItems:Add("<r>Root 2")
oItem1:Bold := .T.
oItem1:Divider := 0
oItem1:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor ( { 240,240,240 } ) , .F. ))
oItem1:Selectable := .F.
oItems2 := oItem1:Items()
oItems2:Add("Child 1")
oItems2:Add("Child 2")
oItems2:Add("Child 3")
oItems:ExpandAll()
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
66
|
Is it possible to prevent showing the selecting item ( hide )
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:CheckBoxWidth := 32
oTreeCube:TexturePicturePath := ""
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ShowSelection := .F.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 10
oColumn := oFaceTree:Columns():Add("<c><b>Check")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oFaceTree:Items():ToString := "Item A,Item B,Item C,Item D"
oFaceTree:ItemByIndex(1):SetProperty("State",0,1)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
65
|
Is it possible to provide a few radio-buttons only, not for entire column

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oFaceTree
LOCAL oItem,oItem1,oItem2
LOCAL oItems
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ShowSelection := .F.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 10
oColumn := oFaceTree:Columns():Add("<c><b>Def")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",48/*exCellPaddingLeft*/,4)
oItems := oFaceTree:Items()
oItems:Add("Item 1")
oItem := oItems:Add("Radio 1")
oItem:SetProperty("HasRadioButton",0,.T.)
oItem:SetProperty("RadioGroup",0,1234)
oItem1 := oItems:Add("Radio 2")
oItem1:SetProperty("HasRadioButton",0,.T.)
oItem1:SetProperty("RadioGroup",0,1234)
oItem1:SetProperty("State",0,.T.)
oItem2 := oItems:Add("Radio 3")
oItem2:SetProperty("HasRadioButton",0,.T.)
oItem2:SetProperty("RadioGroup",0,1234)
oItems:Add("Item 1")
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
64
|
Is it possible to provide a few check box only, not for entire column

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oFaceTree
LOCAL oItem
LOCAL oItems
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ShowSelection := .F.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 10
oColumn := oFaceTree:Columns():Add("<c><b>Def")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",48/*exCellPaddingLeft*/,4)
oItems := oFaceTree:Items()
oItems:Add("Item 1")
oItems:Add("Check 1"):SetProperty("HasCheckBox",0,.T.)
oItem := oItems:Add("Check 2")
oItem:SetProperty("HasCheckBox",0,.T.)
oItem:SetProperty("State",0,1)
oItems:Add("Item 1")
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
63
|
How can I show radio-buttons for the entire column

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ShowSelection := .F.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 10
oColumn := oFaceTree:Columns():Add("<c><b>Radio")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",1/*exCellHasRadioButton*/,.T.)
oFaceTree:Items():ToString := "Item A,Item B,Item C,Item D"
oFaceTree:ItemByIndex(1):SetProperty("State",0,1)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
62
|
How can I show check-boxes for the entire column

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ShowSelection := .F.
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:ItemPadding := 10
oColumn := oFaceTree:Columns():Add("<c><b>Check")
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oFaceTree:Items():ToString := "Item A,Item B,Item C,Item D"
oFaceTree:ItemByIndex(1):SetProperty("State",0,1)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
61
|
How do I select programmatically a value in the calendar

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceCalendar
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:TexturePicturePath := "C:\Program Files\Exontrol\ExTreeCube\Sample\Texture\Chapel"
oTreeCube:SetProperty("Background",21/*exDateHeaderForeColor*/,AutomationTranslateColor( GraMakeRGBColor ( { 1,0,0 } ) , .F. ))
oFaceCalendar := oTreeCube:FrontFace():CreateCalendar()
oFaceCalendar:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oFaceCalendar:NonworkingDays := 0
oFaceCalendar:Value := "12/31/2016"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
60
|
How do I select programmatically a caption in the list

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:TexturePicturePath := "C:\Program Files\Exontrol\ExTreeCube\Sample\Texture\JapanGarden"
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ItemPadding := 40
oFaceTree:HeaderVisible := .F.
oFaceTree:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oFaceTree:Items():ToString := ",<sha \;\;0><font \;18>Garden <b>A,<sha \;\;0><font \;18>Garden <b>B,<sha \;\;0><font \;18>Garden <b>C,"
oFaceTree:Caption := "Garden B"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
59
|
How do I select programmatically a value in the list

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:TexturePicturePath := "C:\Program Files\Exontrol\ExTreeCube\Sample\Texture\JapanGarden"
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ItemPadding := 40
oFaceTree:HeaderVisible := .F.
oFaceTree:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oFaceTree:Items():ToString := ",<sha \;\;0><font \;18>Garden <b>A,<sha \;\;0><font \;18>Garden <b>B,<sha \;\;0><font \;18>Garden <b>C,"
oFaceTree:Value := "<sha ;;0><font ;18>Garden <b>B"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
58
|
How can I show solid lines instead

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oFaceTree
LOCAL oItem
LOCAL oItems,oItems1,oItems2
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:HasButtons := 1/*exArrow*/
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ItemPadding := 10
oFaceTree:HeaderVisible := .F.
oFaceTree:HasLines := 1/*exSolidLine*/
oFaceTree:LinesAtRoot := 2/*exGroupLines*/
oFaceTree:GridLineStyle := 48/*exGridLinesSolid*/
oFaceTree:DrawGridLines := -1/*exAllLines*/
oFaceTree:Columns():Add(""):Alignment := 0/*LeftAlignment*/
oColumn := oFaceTree:Columns():Add("")
oColumn:Alignment := 2/*RightAlignment*/
oColumn:FormatColumn := "lower(%0) right 1"
oItems := oFaceTree:Items()
oItem := oItems:Add("Root <b>1")
oItems1 := oItem:Items()
oItems1:Add("Child 1")
oItems1:Add("Child 2")
oItems1:Add("Child 3")
oItem:Expanded := .T.
oItems2 := oItems:Add("Root <b>2"):Items()
oItems2:Add("Child 1")
oItems2:Add("Child 2")
oItems2:Add("Child 3")
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
57
|
How can I select the entire item rather than the column only

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:FullRowSelect := .T.
oFaceTree:Columns():Count := 3
oColumn := oFaceTree:Columns:Item(0)
oColumn:Caption := "<b><c>Pos"
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:FormatColumn := "0 pos ``"
oColumn:Width := 64
oFaceTree:Items():Count := oTreeCube:FrontFace():FaceTree():VisibleItemsCount()
oFaceTree:SelectItem := 1
oTreeCube:EnsureVisibleFace(0/*exFrontFace*/)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
56
|
How can I change the visual appearance 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 oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:SetProperty("BackColorHeader",0x1000000)
oFaceTree:Columns():Count := 5
oTreeCube:EnsureVisibleFace(0/*exFrontFace*/)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
55
|
How can I add multiple-columns, so the horizontal scroll bar is displayed

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ColumnAutoResize := .F.
oFaceTree:Columns():Count := 20
oTreeCube:EnsureVisibleFace(0/*exFrontFace*/)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
54
|
How can I add multiple-columns

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oFaceTree
LOCAL oItems,oItems1,oItems2
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ItemPadding := 10
oFaceTree:LinesAtRoot := 2/*exGroupLines*/
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:Columns():Add("Default"):Alignment := 0/*LeftAlignment*/
oColumn := oFaceTree:Columns():Add("Pos")
oColumn:Position := 0
oColumn:Alignment := 0/*LeftAlignment*/
oColumn:FormatColumn := "1 rpos ``"
oColumn:Width := 24
oItems := oFaceTree:Items()
oItems1 := oItems:Add("Root 1"):Items()
oItems1:Add("Child 1")
oItems1:Add("Child 2")
oItems1:Add("Child 3")
oItems2 := oItems:Add("Root 2"):Items()
oItems2:Add("Child 1")
oItems2:Add("Child 2")
oItems2:Add("Child 3")
oItems:ExpandAll()
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
53
|
How do I add a hierarchy

PROCEDURE OnFaceTreeExpandItem(oTreeCube,Tree,Item)
DevOut( Transform(Item,"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oItems,oItems1,oItems2
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:FaceTreeExpandItem := {|Tree,Item| OnFaceTreeExpandItem(oTreeCube,Tree,Item)} /*Notifies that an item has been expanded/collapsed into a face of tree type.*/
oTreeCube:BeginUpdate()
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ExpandOnDblClick := .T.
oFaceTree:ItemPadding := 10
oFaceTree:HeaderVisible := .F.
oFaceTree:LinesAtRoot := 2/*exGroupLines*/
oFaceTree:DrawGridLines := -2/*exRowLines*/
oFaceTree:Columns():Add(""):Alignment := 0/*LeftAlignment*/
oItems := oFaceTree:Items()
oItems1 := oItems:Add("Root 1"):Items()
oItems1:Add("Child 1")
oItems1:Add("Child 2")
oItems1:Add("Child 3")
oItems2 := oItems:Add("Root 2"):Items()
oItems2:Add("Child 1")
oItems2:Add("Child 2")
oItems2:Add("Child 3")
oItems:ExpandAll()
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
52
|
How can I display a calendar control

PROCEDURE OnFaceCalendarValueChanged(oTreeCube,Calendar)
DevOut( Transform(Calendar,"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceCalendar
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:FaceCalendarValueChanged := {|Calendar| OnFaceCalendarValueChanged(oTreeCube,Calendar)} /*Notifies that the user selects a new date/value into a face of the calendar type.*/
oFaceCalendar := oTreeCube:FrontFace():CreateCalendar()
oFaceCalendar:Value := "01/02/2001"
oFaceCalendar:MonthNames := oFaceCalendar:LocMonthNames()
oFaceCalendar:WeekDays := oFaceCalendar:LocWeekDays(2)
oFaceCalendar:FirstWeekDay := oFaceCalendar:LocFirstWeekDay()
oFaceCalendar:AutoSize := 1/*exFitClient*/
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
51
|
How can I change the picture/texture on the faces

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:TexturePicturePath := "C:\Program Files\Exontrol\ExTreeCube\Sample\Texture\Earth"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
50
|
How can I get ride of the default texture

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:IdentifyFace := 7/*exIdentifyFaceFrame+exIdentifyFaceName+exIdentifyFaceCaption*/
oTreeCube:TexturePicturePath := ""
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
49
|
How do I get ride of grid lines, and the top border it shows on the tree face

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oItems
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:ItemPadding := 20
oFaceTree:HeaderVisible := .F.
oFaceTree:DrawGridLines := 0/*exNoLines*/
oItems := oFaceTree:Items()
oItems:Add("Item A")
oItems:Add("Item B")
oItems:Add("Item C")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
48
|
How can I add a list of items (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oItems := oTreeCube:FrontFace():CreateTree():Items()
oItems:Add("Item A")
oItems:Add("Item B")
oItems:Add("Item C")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
47
|
How can I add a list of items (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oFaceTree := oTreeCube:FrontFace():CreateTree()
oFaceTree:Items():ToString := "Item A,Item B,Item C"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
46
|
Fisheye Calendar View - Year

PROCEDURE OnFaceTreeValueChanged(oTreeCube,Tree)
/*f.FaceCalendar.Year = Tree.Caption*/
LOCAL f
f := oTreeCube:Face(oTreeCube:VisibleFace())
f := oTreeCube:FrontFace()
f:Date := f:FaceCalendar():Date()
f:Move(1/*exRotateLeft*/)
f:Date := f:FaceCalendar():Date()
f:Move(2/*exRotateRight*/)
f:Date := f:FaceCalendar():Date()
f:Move(2/*exRotateRight*/)
f:Move(2/*exRotateRight*/)
RETURN
PROCEDURE OnMove(oTreeCube,RotateDir,FromFace,ToFace)
LOCAL f
f := oTreeCube:Face(ToFace)
f:FaceCalendar():SelDate := oTreeCube:Face(FromFace):FaceCalendar():SelDate()
oTreeCube:Face(FromFace):FaceCalendar():UnselectDate()
f:Date := f:FaceCalendar():Date()
f:Move(1/*exRotateLeft*/)
f:Date := f:FaceCalendar():Date()
f:Move(2/*exRotateRight*/)
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFaceCalendar,oFaceCalendar1,oFaceCalendar2,oFaceCalendar3
LOCAL oFaceTree
LOCAL oTreeCube
LOCAL d
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:FaceTreeValueChanged := {|Tree| OnFaceTreeValueChanged(oTreeCube,Tree)} /*Notifies that the user selects a new item/column/value into a face of the tree type.*/
oTreeCube:Move := {|RotateDir,FromFace,ToFace| OnMove(oTreeCube,RotateDir,FromFace,ToFace)} /*Occurs once a new face became visible, by moving/rotating from a face to another, into the giving direction.*/
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:EnsureVisibleFaceMargin := 32
oTreeCube:EnsureVisibleFaceOnDblClick := .F.
oTreeCube:EnsureVisibleFaces := "0,2,1,3,4"
oFaceCalendar := oTreeCube:FrontFace():CreateCalendar()
oFaceCalendar:Date := "01/01/2016"
oFaceCalendar:AutoSize := 1/*exFitClient*/
oFaceCalendar:MaxMonthX := 1
oFaceCalendar:MaxMonthY := 1
oFaceCalendar:ShowTodayButton := .F.
oFaceCalendar:FirstWeekDay := 1/*exMonday*/
oFaceCalendar:SetProperty("SelBackColor",0x2000000)
oFaceCalendar:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,0 } ) , .F. ))
oFaceCalendar:ShowNonMonthDays := .T.
d := oTreeCube:FrontFace():FaceCalendar():Date()
oFaceCalendar1 := oTreeCube:LeftFace():CreateCalendar()
oFaceCalendar1:Date := d
oFaceCalendar1:Move(1/*exRotateLeft*/)
oFaceCalendar1:AutoSize := 1/*exFitClient*/
oFaceCalendar1:MaxMonthX := 1
oFaceCalendar1:MaxMonthY := 1
oFaceCalendar1:ShowTodayButton := .F.
oFaceCalendar1:FirstWeekDay := 1/*exMonday*/
oFaceCalendar1:SetProperty("SelBackColor",0x2000000)
oFaceCalendar1:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,0 } ) , .F. ))
oFaceCalendar1:ShowNonMonthDays := .T.
oFaceCalendar2 := oTreeCube:RightFace():CreateCalendar()
oFaceCalendar2:Date := d
oFaceCalendar2:Move(2/*exRotateRight*/)
oFaceCalendar2:AutoSize := 1/*exFitClient*/
oFaceCalendar2:MaxMonthX := 1
oFaceCalendar2:MaxMonthY := 1
oFaceCalendar2:ShowTodayButton := .F.
oFaceCalendar2:FirstWeekDay := 1/*exMonday*/
oFaceCalendar2:SetProperty("SelBackColor",0x2000000)
oFaceCalendar2:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,0 } ) , .F. ))
oFaceCalendar2:ShowNonMonthDays := .T.
oFaceCalendar3 := oTreeCube:BottomFace():CreateCalendar()
oFaceCalendar3:Date := d
oFaceCalendar3:Move(2/*exRotateRight*/)
oFaceCalendar3:Move(2/*exRotateRight*/)
oFaceCalendar3:AutoSize := 1/*exFitClient*/
oFaceCalendar3:MaxMonthX := 1
oFaceCalendar3:MaxMonthY := 1
oFaceCalendar3:ShowTodayButton := .F.
oFaceCalendar3:FirstWeekDay := 1/*exMonday*/
oFaceCalendar3:SetProperty("SelBackColor",0x2000000)
oFaceCalendar3:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,0 } ) , .F. ))
oFaceCalendar3:ShowNonMonthDays := .T.
oFace := oTreeCube:TopFace()
oFaceTree := oFace:CreateTree()
oFaceTree:ItemPadding := 20
oFaceTree:SetProperty("SelBackColor",0x2000000)
oFaceTree:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,0 } ) , .F. ))
oFaceTree:Columns():Count := 5
oFaceTree:HeaderVisible := .F.
oFaceTree:Items():Count := oTreeCube:TopFace():FaceTree():VisibleItemsCount()
oFaceTree:Columns:Item(0):FormatColumn := "(0:=(1989 + 5 * (0 index ``))) = 2016 ? `<b><sha ;;0>` + =:0 + `</b>` : =:0"
oFaceTree:Columns:Item(1):FormatColumn := "(0:=(1990 + 5 * (0 index ``))) = 2016 ? `<b><sha ;;0>` + =:0 + `</b>` : =:0"
oFaceTree:Columns:Item(2):FormatColumn := "(0:=(1991 + 5 * (0 index ``))) = 2016 ? `<b><sha ;;0>` + =:0 + `</b>` : =:0"
oFaceTree:Columns:Item(3):FormatColumn := "(0:=(1992 + 5 * (0 index ``))) = 2016 ? `<b><sha ;;0>` + =:0 + `</b>` : =:0"
oFaceTree:Columns:Item(4):FormatColumn := "(0:=(1993 + 5 * (0 index ``))) = 2016 ? `<b><sha ;;0>` + =:0 + `</b>` : =:0"
oFaceTree:Caption := Transform(oTreeCube:FrontFace():FaceCalendar():Year(),"")
oTreeCube:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAADhABXgCg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDIAkRRdDSOYDmGQYDiCIoRShOMIjHLUXxtDaIZZmWCQCglf5HABRb7xPLoARTAaeJKoWboJAiGwLQjQUyABSdEyRJSLYhGIZRFqKZIRDSMFiwTZNVypAaIYqqaA6qzfJymabAAZJEradozTLIE7xVLEVYNKCmZCwMAAcgmEQgSTAda2BYELTzECoYDGCrcKpWCaNQLWEB5BQeJSNL6kIqsazgAqPLJtWhaVwxXIEI5AAC5QA0S7pOxeO6JbRGdZbNrlbz1PTMaazTgYDzmWqiYxxMraXxSlmMprGsIpVl2LRnD0A5bnSN49mAARAlIYw6B0ThGFGDIBG0QghBMfZRiGNAkFECZoG6YQBgiOgCmuRRSg6GAElWAJMkgFgGgGYIIAyVQ7GCRhUAAOQhAMBgSDWIRDG4" +;
"Fg3CGCBmBmBYNjgUJWDIIgIECZBCEsKIUkqCZhiiJgqgaYRjB4LguiMBAkiqDLenYrBjgiZg6gGIwyioMoNCAWJqEKEJjkiTg/CqIxZA4SoNmQWJ5AODxMlkRJehSZRJFYVoVmUEw2D2EZlhkXhehfURuE+DJllkfhmhUJgZBoYwqiWEx+G6G5nAmRhyhoZJgAIUIUGcKZmHqHQlkmYh6h+Zp5nIawzigQ4CgaIZogoJoKiEDJpgodoMmiSgqhKJNxDoPQzmmA4GhqJppkodoeiYDJ6FpaQpmqFomigKgiiqJIpiqShuiiGoonqKoZisapaj4dYl3WCo6i6a5KnaPotiQeoCj6MJsEsAhrDQLIDg6SoymySw2k6MgNAqJpQjOLRLFaUI0iyGxWlq/p6kIPY0m2Oxul2LZjDMRpmgiLoLiaaoIi4YxGinoY7kaauhnuGJlj2b4Lmaeo+m8Sx6mWOZhAubwCj2bpLhqKYJkyKTnECThYgoVJCCiYpPBIL5" +;
"xEMLwWjsTQsGcGpGi6XBYkuRQLvcIhCE8DIWDCSZLiKdwqC+MpMjcLZKguXIcjiTJyFOQYnD+TYMmSLZOkmHJ3D6T50AybItiGYJji2MwABAECAg=")
oTreeCube:VisualAppearance():Add(2,"gBFLBCJwBAEHhEJAADhABOkGACAADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEYFDSAUIjKKkIhkGIYZBGQBJDjWGgyQjOEByDIMRwjE4YBpkGYYJDSIYHTZIUzTJAdGSVJKNKAoKCaEg2R4qsZCCKwUgmTo9VBJU9CFi6ZIRDSMFiyXZUIxHEKnIqrOjbBjaUpYABLErTBKUSzrEadAAwGbKJj+VJBULMVD2BDWGABOYAKarWa7fhaUqJUTVdI1VBOIYmADPcaqCxrLgMMpnWxpN42bjdPY7V6Bc7yXJsHimK5GUTQA4aFIENydJzINjsKBKBriLIybpeFr7BiME4/YLhAA0vZNUYsg0XguBqaAeEOIYUjqYQgGCCBJECUhjDoHROEYWooAGTRMCEEx9lGIY0CQUZOnuZQDBEdYFkeI5+H+igGAKAJgEgFgGgGUAzn4CoCmCSA2A6A5hAgCgQgSYRIE4EoFGG" +;
"CBiBeBhhkgPgbgcYgICoH4IGGWIOCSBhiGiHgVgoYooFoAYLGIWI+DCCgjCiTgrgII4ImYOoOmOSJ1n4OpWmQDQBICA==")
oTreeCube:SetProperty("Background",8/*exDateHeader*/,0x1000000)
oTreeCube:SetProperty("Background",7/*exWeeksHeader*/,AutomationTranslateColor( GraMakeRGBColor ( { 250,250,250 } ) , .F. ))
oTreeCube:SetProperty("Background",6/*exDaysHeader*/,AutomationTranslateColor( GraMakeRGBColor ( { 250,250,250 } ) , .F. ))
oTreeCube:SetProperty("Background",9/*exDateTodayUp*/,0x2000000)
oTreeCube:SetProperty("Background",31/*exDateTodayForeColor*/,AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oTreeCube:EnsureVisibleFace(0/*exFrontFace*/)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
45
|
How can I add a FaceTree object ( method 2 )

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oFace := oTreeCube:FrontFace()
oFaceTree := oFace:CreateTree()
oFaceTree:Items():ToString := "Item <b>1,Item <b>2,Item <b>3"
oFaceTree:SelectItem := 1
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
44
|
How can I add a FaceTree object ( method 1 )

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFaceTree
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oFace := oTreeCube:FrontFace()
oFace:Type := 1/*exFaceTree*/
oFaceTree := oFace:FaceTree()
oFaceTree:Items():ToString := "Item <b>1,Item <b>2,Item <b>3"
oFaceTree:SelectItem := 1
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
43
|
How can I add a FaceCalendar object ( method 2 )

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFaceCalendar
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oFace := oTreeCube:FrontFace()
oFaceCalendar := oFace:CreateCalendar()
oFaceCalendar:AutoSize := 1/*exFitClient*/
oFaceCalendar:Value := "12/31/1971"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
42
|
How can I add a FaceCalendar object ( method 1 )

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFaceCalendar
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oFace := oTreeCube:FrontFace()
oFace:Type := 2/*exFaceCalendar*/
oFaceCalendar := oFace:FaceCalendar()
oFaceCalendar:AutoSize := 1/*exFitClient*/
oFaceCalendar:Value := "12/31/1971"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
41
|
How can I add a FacePicture object ( method 2 )

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFacePicture
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:IdentifyFace := 7/*exIdentifyFaceFrame+exIdentifyFaceName+exIdentifyFaceCaption*/
oFace := oTreeCube:FrontFace()
oFacePicture := oFace:CreatePicture()
oFacePicture:Picture := oTreeCube:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
oFacePicture:PictureDisplay := 48/*Tile*/
oFacePicture:Width := "2 * pwidth"
oFacePicture:Height := "2 * pheight"
oFacePicture:Top := "122"
oFacePicture:Left := "46"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
40
|
How can I add a FacePicture object ( method 1 )

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFacePicture
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:IdentifyFace := 7/*exIdentifyFaceFrame+exIdentifyFaceName+exIdentifyFaceCaption*/
oFace := oTreeCube:FrontFace()
oFace:Type := 3/*exFacePicture*/
oFacePicture := oFace:FacePicture()
oFacePicture:Picture := oTreeCube:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
oFacePicture:PictureDisplay := 48/*Tile*/
oFacePicture:Width := "2 * pwidth"
oFacePicture:Height := "2 * pheight"
oFacePicture:Top := "122"
oFacePicture:Left := "46"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
39
|
How can I prevent bringing a specified face into the front
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:EnsureVisibleFaces := "0"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
38
|
Is it possible to show one face opaque, while other semi-transparent

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:DefaultFaceType := 2/*exFaceCalendar*/
oTreeCube:TransparentContent := 75
oTreeCube:FrontFace():TransparentContent := 0
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
37
|
How can I add a Calendar control

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFaceCalendar
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:Margins := "0,0,0,0"
oFace := oTreeCube:FrontFace()
oFace:Type := 2/*exFaceCalendar*/
oFaceCalendar := oFace:FaceCalendar()
oFaceCalendar:ShowNonMonthDays := .T.
oFaceCalendar:AutoSize := 1/*exFitClient*/
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
36
|
Is it possible to init faces at once
PROCEDURE OnInitFaceContent(oTreeCube,Face)
/*Face.FaceContent.ShowTodayButton = False*/
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:InitFaceContent := {|Face| OnInitFaceContent(oTreeCube,Face)} /*Notifies your application that a face changes its type, so you can initialize its content.*/
oTreeCube:DefaultFaceType := 2/*exFaceCalendar*/
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
35
|
How can I disable zoom when rolling the mouse wheel
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:OnMouseWheel := 0/*exMouseWheelNothing*/
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
34
|
Fisheye Calendar View - LR

PROCEDURE OnMove(oTreeCube,RotateDir,FromFace,ToFace)
LOCAL oFaceCalendar,oFaceCalendar1
oTreeCube:FrontFace():FaceCalendar():Move(RotateDir)
oFaceCalendar := oTreeCube:LeftFace():FaceCalendar()
oFaceCalendar:Date := oTreeCube:FrontFace():FaceCalendar():Date()
oFaceCalendar:PrevMonth()
oFaceCalendar1 := oTreeCube:RightFace():FaceCalendar()
oFaceCalendar1:Date := oTreeCube:FrontFace():FaceCalendar():Date()
oFaceCalendar1:NextMonth()
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oAppearance
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:Move := {|RotateDir,FromFace,ToFace| OnMove(oTreeCube,RotateDir,FromFace,ToFace)} /*Occurs once a new face became visible, by moving/rotating from a face to another, into the giving direction.*/
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oAppearance := oTreeCube:VisualAppearance()
oAppearance:Add(1,"gBFLBCJwBAEHhEJAADhABdQFg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQ1DBJQwwXBIZhgGIBIRgUBJCjWGodQLOEgwHIERQjEyUJAmCYhRiCB42TrNIJwSBUPwTGKBXZDQRAApKVIWUAMFBVg7GRYcVxIUgAdDYMyZJyBa4qapaTheEQyDSJNr3DCMUTlBK7IhsKCaLhqZIDUzGVpWbZdMRlFCVJYgOTqDgQMIkUhSE5TVIEew3H7DaymKrKeobFoaZ6AAL3ZBNTR5J6EbTwWRcZpuRJGWDGdhwTocB5MADbZAwOpNLgOc53TjdF4DBwAATzJCQL50KCbfziG67WxVeqQJgiggNpOAwbZjDGHoGC2IZAgAORbFiPxDHoAIsmIewdiGHpHEGTIzm2Nocn0TgSluBpgnEbgcF4PAPnkSQAA+c58AAVwcheiRzF4NIJiofYWgUJAIEIRQBiQYwdAcUZIGU" +;
"V5QDKCAHECRAhDYGhGgMZAkCgaRiEaHAYEWRpIG2ERFkIQBwm2CxiniOgwgyYpjmoNg3g2YxwkwwYzCiSwyCOaQCD8MxjkibJLDMDJDCoPgyEyMwskkNpNjMaJ1hSYxIkYVoVEACRWFqC4OBOCJgCkShSgiCQiEgQZ8gAHpIAIBB8hoZo5iobIbmaaYqGZWByCCAwnkoAhwlQNQNCkbhXguJYYkqAoVguQpwjsIxIlIJNHksE4kmoOhgSsEokmkShUnCJZLzYOwigiIgYjULYLDmegwiAZ5zjSNwuAsYg8g8IplAMZoRhST1UCMJ5IGIqoiEiIgUgoIpIGqbo9i8JgyBaNQggmUh4hoOBOAOAoRDoLJCFSFQkgsQpQjGH4qEiQJJDITB6CCCQ7G2ShEjsLwLhGIBpBiBIhCwRAQEQIJsEIEJDkuLptjsLphAwRI7kOMQkEoEJFnGABaiyCZ6ESeI/kkAhAg2IRLikYgwDoToTiCEQkgiUxElEM5pBIbI" +;
"cCYBQhEwTASASGB0E4EZEmEPBIkccZ8HsIJInILB4E2RpvasSwTAQUgIgMH5pVGYg4GuYx8l8NxqDiQoFC4SYSGiFokEyYw4kwFhF8GSQSkQPITCGUp0i0NwllKcoxBcJwRkqEooiaJBLCKSIvCp54aDYPoAAORJyDwSWUhENANAwQgBB6R4xlqcgPDSbQzE+XB3EweBGBGRABigawZE6GcLoHxCAQFICkAIvhOhgACM4OYnBhjQHsDoT4Zxsj0DYJsEwwBhJgMIOsXIcwOC+CCJMRA2BgCFFYJUegiBzA6AaMcDLuAAAdBiMUBQDWyhuC2JYTQiBMAmEQNwaw5xtjzB6MAPAHhDDEHyD4JwUgRiAHEDUTgNggABHEJwAYkBzA2GkDMAIRAQAIBCM8No3ERC4D4B8Q4FxygiBwI4IYbxIjjGyB4c4mQACUXaD8dYhh/CfGqNwNIXhfizCyPsPw7xfjkD4FQRo+R7h9D8K8bI3A+jeGoAIfAnxNjhD3JY" +;
"LIvxDj2H8KAIYcQ/ivGCP8X4JxGD9AGIgNgUgRCECgIkaAegHiBFmPkQYTx4jsB+OEf4AAPAzBkBwEI1AdCHAqCIFYBQwCoAQIECgHwag4BuAIMA4AbgUBEIgJ4KQIDlAGIcg4HBRkyAOHAdwHBqCIGKBgUYCAVAFCgJwagYQ+AvD0YAKYCgwhGH4F4eYxg3ijFQEEWQ8RqDfEOGgdhUBYA2AMHYdwEARBMAOGkJgpAWiFGAKoGgRhIDQCkCEcAPQDhBGYDkQ4KAABrHaHAKYCwAhgBWKAEAnw5jOGaNoYwKB+DmA0JwFYBxhAsCMAgOoIgYjGBwMUCYAgyBKAeDEdAPBqggGsBoYYVAihICiOgHoRxRCRl6PQHgLhAB3A+CMBYmAuhgHZRgaAzhbgHDUJECQYgoBIAYFERgMQMjKEGBUUQtAqgKBiEoFAWREDjA4CsBktw4B/AUMEdARwEgBAMFAHYhhTDnFMAMdADwwjwB2IweIngZhUEUNECwSwKB" +;
"NFePEeILApCyG4B0QQOAkAIGCHIFwxRdCRA+LMRwOwFDQH8B+B4aQ3huGYCIQYoA7AMHALgGwBwwDwA0EwEAggMhDBgGACAAgAA+BMUgHoqABCRCSKMEgRRECxAcLIIw+7RhoGCNMBwMQUgrAINATYEh5hZCQI8PQAQHDHBIM4DM9wwiMACIkCA6BwDACOGMFQEQHh6BYKQLQ/B/ARFEDgIoJRojAFqBUCQLgpDjF6J0U4MQnT5BGJADQ8w1BxEeOVTgRx6hBE2EMOAbhGihCyC0E42A+AWAEMQK4DhkCzCYEcNQ1RQhqAcKAR44RnA6AODgWoFhRDMCGAgMg1QZgDDQG4BoIRMAzEMBAZwGgBgVDIAwEIqAagGCAPIDwQxMCECYLUFgVhdChHyF0dQghRgdDIDAAgmhBAGAkAIPATgRBAoqB4mYYAWAQBmLAiQmgrj7AHXgFABhYD2B8MULAVAqAABYxMAACAfDHCwJsC4Xw2DtE0DwCwZhlCeA2CcM" +;
"ArBkgBICA")
oAppearance:Add(2,"CP:1 -6 0 6 0")
oTreeCube:SetProperty("Background",8/*exDateHeader*/,0x2000000)
oTreeCube:SetProperty("Background",21/*exDateHeaderForeColor*/,AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oTreeCube:SetProperty("Background",7/*exWeeksHeader*/,AutomationTranslateColor( GraMakeRGBColor ( { 240,240,240 } ) , .F. ))
oTreeCube:SetProperty("Background",6/*exDaysHeader*/,AutomationTranslateColor( GraMakeRGBColor ( { 240,240,240 } ) , .F. ))
oTreeCube:SetProperty("Background",9/*exDateTodayUp*/,0x2000000)
oTreeCube:SetProperty("Background",31/*exDateTodayForeColor*/,AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oTreeCube:AllowRotate := 3/*exRotateRight+exRotateLeft*/
oTreeCube:EnsureVisibleFaceOnDblClick := .F.
oTreeCube:DefaultFaceType := 2/*exFaceCalendar*/
oTreeCube:FrontFace():FaceCalendar():Date := "01/01/2016"
oTreeCube:TopFace():Type := 0/*exFaceNone*/
oTreeCube:DownFace():Type := 0/*exFaceNone*/
oTreeCube:AlwaysEnsureVisibleFace := 17/*exAlwaysVisibleFrontFace+exFitToEnsureFace*/
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
33
|
Fisheye Calendar View - S

PROCEDURE OnFaceCalendarDateChanged(oTreeCube,Calendar)
LOCAL oFaceCalendar,oFaceCalendar1,oFaceCalendar2,oFaceCalendar3
LOCAL currentDate
currentDate := oTreeCube:FrontFace:FaceCalendar():Date()
oFaceCalendar := oTreeCube:LeftFace():FaceCalendar()
oFaceCalendar:Date := currentDate
oFaceCalendar:PrevMonth()
oFaceCalendar1 := oTreeCube:RightFace():FaceCalendar()
oFaceCalendar1:Date := currentDate
oFaceCalendar1:NextMonth()
oFaceCalendar2 := oTreeCube:TopFace():FaceCalendar()
oFaceCalendar2:Date := currentDate
oFaceCalendar2:PrevYear()
oFaceCalendar3 := oTreeCube:DownFace():FaceCalendar()
oFaceCalendar3:Date := currentDate
oFaceCalendar3:NextYear()
RETURN
PROCEDURE OnInitFaceCalendar(oTreeCube,Calendar)
RETURN
PROCEDURE OnMove(oTreeCube,RotateDir,FromFace,ToFace)
oTreeCube:FrontFace():FaceCalendar():Move(RotateDir)
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:FaceCalendarDateChanged := {|Calendar| OnFaceCalendarDateChanged(oTreeCube,Calendar)} /*Notifies that the user browses for a new date into a face of calendar type.*/
oTreeCube:InitFaceCalendar := {|Calendar| OnInitFaceCalendar(oTreeCube,Calendar)} /*Notifies your application that a face changes its type to exFaceCalendar.*/
oTreeCube:Move := {|RotateDir,FromFace,ToFace| OnMove(oTreeCube,RotateDir,FromFace,ToFace)} /*Occurs once a new face became visible, by moving/rotating from a face to another, into the giving direction.*/
oTreeCube:BeginUpdate()
oTreeCube:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAADhABXgCg6AADACAxRDAMgBQKAAzQFAYaBsHCGAAGMZRZgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDIAkRRdDSOYDmGQYDiCIoRShOMIjHLUXxtDaIZZmWCQCglf5HABRb7xPLoARTAaeJKoWboJAiGwLQjQUyABSdEyRJSLYhGIZRFqKZIRDSMFiwTZNVypAaIYqqaA6qzfJymabAAZJEradozTLIE7xVLEVYNKCmZCwMAAcgmEQgSTAda2BYELTzECoYDGCrcKpWCaNQLWEB5BQeJSNL6kIqsazgAqPLJtWhaVwxXIEI5AAC5QA0S7pOxeO6JbRGdZbNrlbz1PTMaazTgYDzmWqiYxxMraXxSlmMprGsIpVl2LRnD0A5bnSN49mAARAlIYw6B0ThGFGDIBG0QghBMfZRiGNAkFECZoG6YQBgiOgCmuRRSg6GAElWAJMkgFgGgGYIIAyVQ7GCRhUAAOQhAMBgSDWIRDG4" +;
"Fg3CGCBmBmBYNjgUJWDIIgIECZBCEsKIUkqCZhiiJgqgaYRjB4LguiMBAkiqDLenYrBjgiZg6gGIwyioMoNCAWJqEKEJjkiTg/CqIxZA4SoNmQWJ5AODxMlkRJehSZRJFYVoVmUEw2D2EZlhkXhehfURuE+DJllkfhmhUJgZBoYwqiWEx+G6G5nAmRhyhoZJgAIUIUGcKZmHqHQlkmYh6h+Zp5nIawzigQ4CgaIZogoJoKiEDJpgodoMmiSgqhKJNxDoPQzmmA4GhqJppkodoeiYDJ6FpaQpmqFomigKgiiqJIpiqShuiiGoonqKoZisapaj4dYl3WCo6i6a5KnaPotiQeoCj6MJsEsAhrDQLIDg6SoymySw2k6MgNAqJpQjOLRLFaUI0iyGxWlq/p6kIPY0m2Oxul2LZjDMRpmgiLoLiaaoIi4YxGinoY7kaauhnuGJlj2b4Lmaeo+m8Sx6mWOZhAubwCj2bpLhqKYJkyKTnECThYgoVJCCiYpPBIL5" +;
"xEMLwWjsTQsGcGpGi6XBYkuRQLvcIhCE8DIWDCSZLiKdwqC+MpMjcLZKguXIcjiTJyFOQYnD+TYMmSLZOkmHJ3D6T50AybItiGYJji2MwABAECAg=")
oTreeCube:SetProperty("Background",8/*exDateHeader*/,0x1000000)
oTreeCube:SetProperty("Background",7/*exWeeksHeader*/,AutomationTranslateColor( GraMakeRGBColor ( { 250,250,250 } ) , .F. ))
oTreeCube:SetProperty("Background",6/*exDaysHeader*/,AutomationTranslateColor( GraMakeRGBColor ( { 250,250,250 } ) , .F. ))
oTreeCube:SetProperty("Background",9/*exDateTodayUp*/,0x2000000)
oTreeCube:SetProperty("Background",31/*exDateTodayForeColor*/,AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oTreeCube:TexturePicturePath := ""
oTreeCube:DefaultFaceType := 2/*exFaceCalendar*/
oTreeCube:AlwaysEnsureVisibleFace := 17/*exAlwaysVisibleFrontFace+exFitToEnsureFace*/
oTreeCube:FrontFace():FaceCalendar():Date := "01/01/2016"
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
32
|
While navigating the Down/Top faces, I am not able to rotate it. Is it possible (ensure always front face)
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:EnsureVisibleFace(5/*exDownFace*/,.F.)
oTreeCube:AlwaysEnsureVisibleFace := 17/*exAlwaysVisibleFrontFace+exFitToEnsureFace*/
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
31
|
How can I show a single month only

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFaceCalendar
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oFace := oTreeCube:FrontFace()
oFace:Type := 2/*exFaceCalendar*/
oFaceCalendar := oFace:FaceCalendar()
oFaceCalendar:Date := "01/01/2001"
oFaceCalendar:SelDate := oFaceCalendar:Date()
oFaceCalendar:MinDate := "01/01/2001"
oFaceCalendar:MaxDate := "01/31/2001"
oFaceCalendar:FirstWeekDay := 1/*exMonday*/
oFaceCalendar:ShowWeeks := .F.
oFaceCalendar:ShowNonMonthDays := .F.
oFaceCalendar:ShowTodayButton := .F.
oFaceCalendar:MaxMonthX := oFaceCalendar:MinMonthX()
oFaceCalendar:MaxMonthY := oFaceCalendar:MinMonthY()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
30
|
How can I show date calendar

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oFace := oTreeCube:FrontFace()
oFace:Type := 2/*exFaceCalendar*/
oFace:FaceCalendar():ShowNonMonthDays := .F.
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
29
|
How can I prevent dbl click to ensure the clicked face is visible
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:EnsureVisibleFaceOnDblClick := .F.
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
28
|
How can I put a picture into the center of the texture but behind the control's face

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:SetProperty("HTMLPicture","logo","c:\exontrol\images\zipdisk.gif")
oFace := oTreeCube:FrontFace()
oFace:Type := 2/*exFaceCalendar*/
oFace:FaceCalendar():ShowTodayButton := .F.
oFace:SetProperty("ExtraTitle","extra",0/*exTitleFaceCaption*/,"<img>logo</img>")
oFace:SetProperty("ExtraTitle","extra",3/*exTitleFaceAnchor*/,0)
oFace:SetProperty("ExtraTitle","extra",4/*exTitleFaceHTMLRotate*/,0)
oFace:SetProperty("ExtraTitle","extra",4/*exTitleFaceHTMLRotate*/,0)
oFace:SetProperty("ExtraTitle","extra",5/*exTitleFaceLeft*/,"(width-twidth)/2")
oFace:SetProperty("ExtraTitle","extra",6/*exTitleFaceTop*/,"(height-theight)/2")
oFace:SetProperty("ExtraTitle","extra",7/*exTitleFaceWidth*/,"twidth")
oFace:SetProperty("ExtraTitle","extra",8/*exTitleFaceHeight*/,"theight")
oFace:SetProperty("ExtraTitle","extra",9/*exTitleFaceVisible*/,1)
oTreeCube:FrontFace():FaceCalendar():SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. ))
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
27
|
How do I put my logo on the right-bottom side of the face (method 2), while I using the face

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:SetProperty("HTMLPicture","logo","c:\exontrol\images\zipdisk.gif")
oFace := oTreeCube:FrontFace()
oFace:Type := 2/*exFaceCalendar*/
oFace:FaceCalendar():ShowTodayButton := .F.
oFace:SetProperty("ExtraTitle","extra",0/*exTitleFaceCaption*/,"<r><img>logo</img>")
oFace:SetProperty("ExtraTitle","extra",3/*exTitleFaceAnchor*/,2)
oFace:SetProperty("ExtraTitle","extra",4/*exTitleFaceHTMLRotate*/,0)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
26
|
Is it possible to show two or more titles/extra titles

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oFace := oTreeCube:FrontFace()
oFace:Type := 2/*exFaceCalendar*/
oFace:FaceCalendar():ShowTodayButton := .F.
oFace:SetProperty("Title",0/*exTitleFaceCaption*/,"<font ;18><c><fgcolor=0000FF>This is the title")
oFace:SetProperty("ExtraTitle","extra",0/*exTitleFaceCaption*/,"<font ;18><c><fgcolor=FF0000>This is the extra title")
oFace:SetProperty("ExtraTitle","extra",3/*exTitleFaceAnchor*/,2)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
25
|
How can I display the title at the left side of the face

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oFace := oTreeCube:FrontFace()
oFace:SetProperty("Title",0/*exTitleFaceCaption*/,"<font ;18><c>This is the title")
oFace:Type := 2/*exFaceCalendar*/
oFace:FaceCalendar():ShowTodayButton := .F.
oFace:SetProperty("Title",3/*exTitleFaceAnchor*/,4)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
24
|
How can I display the title at the bottom side of the face

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oFace := oTreeCube:FrontFace()
oFace:SetProperty("Title",0/*exTitleFaceCaption*/,"<font ;18><c>This is the title")
oFace:Type := 2/*exFaceCalendar*/
oFace:FaceCalendar():ShowTodayButton := .F.
oFace:SetProperty("Title",3/*exTitleFaceAnchor*/,2)
oFace:SetProperty("Title",4/*exTitleFaceHTMLRotate*/,0)
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
23
|
Can I display the title to a different position

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oFace := oTreeCube:FrontFace()
oFace:SetProperty("Title",0/*exTitleFaceCaption*/,"<font ;18><c><bgcolor=FFFFFF>This is the title")
oFace:Type := 2/*exFaceCalendar*/
oFace:SetProperty("Title",9/*exTitleFaceVisible*/,-1)
oFace:SetProperty("Title",6/*exTitleFaceTop*/,"(height-theight)/2")
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
22
|
How can I display a title for a face

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oFace := oTreeCube:FrontFace()
oFace:SetProperty("Title",0/*exTitleFaceCaption*/,"<font ;18><c>This is the title")
oFace:Type := 2/*exFaceCalendar*/
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
21
|
Can I put the picture at specified position

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFacePicture
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:IdentifyFace := 7/*exIdentifyFaceFrame+exIdentifyFaceName+exIdentifyFaceCaption*/
oFace := oTreeCube:FrontFace()
oFace:Type := 3/*exFacePicture*/
oFacePicture := oFace:FacePicture()
oFacePicture:Picture := oTreeCube:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
oFacePicture:PictureDisplay := 48/*Tile*/
oFacePicture:Width := "2 * pwidth"
oFacePicture:Height := "2 * pheight"
oFacePicture:Top := "122"
oFacePicture:Left := "46"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
20
|
How do I put my logo on the right-bottom side of the face (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace
LOCAL oFacePicture
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:IdentifyFace := 7/*exIdentifyFaceFrame+exIdentifyFaceName+exIdentifyFaceCaption*/
oFace := oTreeCube:FrontFace()
oFace:Type := 3/*exFacePicture*/
oFacePicture := oFace:FacePicture()
oFacePicture:Picture := oTreeCube:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
oFacePicture:PictureDisplay := 34/*LowerRight*/
oFacePicture:Width := "width"
oFacePicture:Height := "height"
oFacePicture:Top := "0"
oFacePicture:Left := "0"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
19
|
Can I use any picture on the background's faces

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:TexturePicturePath := ""
oTreeCube:Face(0/*exFrontFace*/):Picture := oTreeCube:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
oTreeCube:Face(1/*exBottomFace*/):Picture := oTreeCube:ExecuteTemplate("loadpicture(`c:\exontrol\images\auction.gif`)")
oTreeCube:Face(2/*exRightFace*/):Picture := oTreeCube:ExecuteTemplate("loadpicture(`c:\exontrol\images\colorize.gif`)")
oTreeCube:Face(3/*exLeftFace*/):Picture := oTreeCube:ExecuteTemplate("loadpicture(`c:\exontrol\images\colorize.gif`)")
oTreeCube:Face(4/*exTopFace*/):Picture := oTreeCube:ExecuteTemplate("loadpicture(`c:\exontrol\images\auction.gif`)")
oTreeCube:Face(5/*exDownFace*/):Picture := oTreeCube:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
oTreeCube:AlwaysEnsureVisibleFace := 0/*exDisableEnsureVisibleFace*/
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
18
|
Is it possible to show the cube's texture more transparent, so the faces are more visible

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oFace,oFace1,oFace2,oFace3
LOCAL oFaceCalendar,oFaceCalendar1,oFaceCalendar2,oFaceCalendar3
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:Transparent := 80
oTreeCube:TexturePicturePath := "C:\Program Files\Exontrol\ExTexture\Sample\Texture\VW"
oTreeCube:AlwaysEnsureVisibleFace := 0/*exDisableEnsureVisibleFace*/
oTreeCube:IdentifyFace := 4/*exIdentifyFaceFrame*/
oFace := oTreeCube:TopFace()
oFace:Type := 2/*exFaceCalendar*/
oFaceCalendar := oFace:FaceCalendar()
oFaceCalendar:Date := "02/01/2016"
oFaceCalendar:MaxMonthX := 1
oFaceCalendar:MaxMonthY := 1
oFace1 := oTreeCube:LeftFace()
oFace1:Type := 2/*exFaceCalendar*/
oFaceCalendar1 := oFace1:FaceCalendar()
oFaceCalendar1:Date := "03/01/2016"
oFaceCalendar1:MaxMonthX := 1
oFaceCalendar1:MaxMonthY := 1
oFace2 := oTreeCube:FrontFace()
oFace2:Type := 2/*exFaceCalendar*/
oFaceCalendar2 := oFace2:FaceCalendar()
oFaceCalendar2:Date := "04/01/2016"
oFaceCalendar2:MaxMonthX := 1
oFaceCalendar2:MaxMonthY := 1
oFace3 := oTreeCube:RightFace()
oFace3:Type := 2/*exFaceCalendar*/
oFaceCalendar3 := oFace3:FaceCalendar()
oFaceCalendar3:Date := "05/01/2016"
oFaceCalendar3:MaxMonthX := 1
oFaceCalendar3:MaxMonthY := 1
oTreeCube:ShowAs := 0/*exFishEye*/
oTreeCube:AlwaysEnsureVisibleFace := 0/*exDisableEnsureVisibleFace*/
oTreeCube:IdentifyFace := 4/*exIdentifyFaceFrame*/
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
17
|
How can I load a different texture on the cube

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:TexturePicturePath := "C:\Program Files\Exontrol\ExTexture\Sample\Texture\VW"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
16
|
How can I show no texture/picture on all faces

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:TexturePicturePath := ""
oTreeCube:IdentifyFace := 7/*exIdentifyFaceFrame+exIdentifyFaceName+exIdentifyFaceCaption*/
oTreeCube:IdentifyFaceCaption := "<sha ;;0><fgcolor=000000>Face <%index%></font> <%name%>"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
15
|
Fish-Eye Rectangular

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:ShowAs := 0/*exFishEye*/
oTreeCube:Internals := "zoommin=1;zoomdefault=1;zoommax=1;zoomdivsmall=256;zoomdivlarge=48;fisheyepersp=4"
oTreeCube:IdentifyFace := 4/*exIdentifyFaceFrame*/
oTreeCube:TopFace():Type := 2/*exFaceCalendar*/
oTreeCube:LeftFace():Type := 2/*exFaceCalendar*/
oTreeCube:FrontFace():Type := 2/*exFaceCalendar*/
oTreeCube:RightFace():Type := 2/*exFaceCalendar*/
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
14
|
Orthographic

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:ShowAs := 1/*exOrthographic*/
oTreeCube:AlwaysEnsureVisibleFace := 0/*exDisableEnsureVisibleFace*/
oTreeCube:IdentifyFace := 4/*exIdentifyFaceFrame*/
oTreeCube:TopFace():Type := 2/*exFaceCalendar*/
oTreeCube:LeftFace():Type := 2/*exFaceCalendar*/
oTreeCube:FrontFace():Type := 2/*exFaceCalendar*/
oTreeCube:RightFace():Type := 2/*exFaceCalendar*/
oTreeCube:RotX := 0.748933
oTreeCube:RotY := 0.617099
oTreeCube:Zoom := 1
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
13
|
Fish-Eye Default

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:BeginUpdate()
oTreeCube:ShowAs := 0/*exFishEye*/
oTreeCube:AlwaysEnsureVisibleFace := 0/*exDisableEnsureVisibleFace*/
oTreeCube:IdentifyFace := 4/*exIdentifyFaceFrame*/
oTreeCube:TopFace():Type := 2/*exFaceCalendar*/
oTreeCube:LeftFace():Type := 2/*exFaceCalendar*/
oTreeCube:FrontFace():Type := 2/*exFaceCalendar*/
oTreeCube:RightFace():Type := 2/*exFaceCalendar*/
oTreeCube:RotX := 0
oTreeCube:RotY := 0.8
oTreeCube:Zoom := 1
oTreeCube:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
12
|
I know the user can drag the cube to any position. The question is how can I restore the layout

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:IdentifyFace := 7/*exIdentifyFaceFrame+exIdentifyFaceName+exIdentifyFaceCaption*/
oTreeCube:RotX := 0.25
oTreeCube:RotY := 0.75
oTreeCube:Zoom := 1
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
11
|
How do I put my logo on the right-bottom side of the control

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oTreeCube
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
oTreeCube:CLSID := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
oTreeCube:create(,, {10,60},{610,370} )
oTreeCube:Picture := oTreeCube:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|