Question:
How can I use the CHOOSECOLOR WIN32 API with Powerbuilder?
Answer:
Create a custom user object and declare the following local structure:
long lstructsizeulong hwndownerulong hinstancelong rgbresultblob lpcustcolorslong flagslong lcustdatalong lpfnhooklong lptemplatenamethen declare the following instance variables:
Private:os_ChooseColor istr_ChooseColorlong il_CustomInitColors[16]blob{64} ibl_CustomColorsDeclare the following local external function:
function boolean ChooseColorA( REF os_ChooseColor lpcc ) library “comdlg32.dll”In the constructor event of your object add the following code:
// initialize choosecolor information// convert the default custom color array to a blob variableblobedit(ibl_customcolors,1,il_custominitcolors)// let the structure element point to the blob arrayistr_choosecolor.lpcustcolors = ibl_customcolors // set the sizeistr_choosecolor.lStructSize = 36// no owner SetNull(istr_choosecolor.hwndOwner)// set flagistr_choosecolor.flags = 1Then finally add a function
boolean of_choosecolor(ref long al_rgbresult)
with the following code:boolean lb_okistr_ChooseColor.rgbresult = al_rgbresultlb_ok = ChooseColorA ( istr_choosecolor )al_rgbresult = istr_ChooseColor.rgbresult return lb_ok