Tech Articles


PowerBuilder 'Gotcha' - PixelsToUnits


From the 12.5 Powerbuilder Help on this method:
Converts pixels to PowerBuilder units. Because pixels are not usually square, you also specify whether you are converting the pixels' horizontal or vertical measurement.

Syntax

PixelsToUnits ( pixels, type )

Argument Description
pixels An integer whose value is the number of pixels you want to convert to PowerBuilder units.
type A value of the ConvertType enumerated datatype value indicating how to convert the value:
· XPixelsToUnits! - Convert the pixels in the horizontal direction.
· YPixelsToUnits! - Convert the pixels in the vertical direction.
Return value

Integer. Returns the converted value if it succeeds and -1 if an error occurs. If any argument's value is null, PixelsToUnits returns null.

Note the return value of integer. If you are using this method to say, calculate the width of a string field, the results can easily exceed the maximum value of a Powerbuilder integer which is 32767. To correct for this you will need to do something like:.

integer li_width, li_width_factor
long ll_width
// calculate the width of a single pixel
li_width_factor = PixelsToUnits(1, XPixelsToUnits!) 
// use the calculated factor to obtain the actual width of a very wide string column
ll_width = li_width * li_width_factor //li width is width in pixels
Comments (1)
Monday, Mar 20 2017

Hi Matt;

   Great tip!

FYI ... also, don't forget you can use the Appeon Web/Mobile calculator as well located on the Appeon Developer toolbar ... 

<img alt="Appeon PBU => Pixel Calculator " src="/sites/default/files/inline-images/Appeon_Calculator.png" />

 

Regards .... Chris

#2
0

Find Articles by Tag

REST License HTTPClient RESTClient JSONParser Validation Database Table Database Table Schema Model Automated Testing Import JSON CI/CD Import Export JSON Mobile 64-bit Event Handling SVN Azure RibbonBar Builder RibbonBar Testing Web Service Proxy DragDrop Encoding Performance SnapObjects Open Source Linux OS Configuration Database Table Data CoderObject DataType InfoMaker OAuth 2.0 PowerBuilder Compiler UI Charts PowerBuilder OAuth Event Handler Trial Windows OS Source Code UI Modernization GhostScript SnapDevelop Stored Procedure WebBrowser PowerServer Mobile Export Icon Platform File SQL Server Deployment SDK TreeView Design Android OLE Debugger Branch & Merge 32-bit TLS/SSL Debug IDE iOS .NET Assembly Script Installation RichTextEdit Control DataWindow JSON Database Object Syntax Error ActiveX Oracle Source Control Interface PFC PowerScript (PS) Transaction Sort NativePDF Messagging Bug Service Text .NET DataStore PowerBuilder (Appeon) SqlModelMapper Graph PostgreSQL ODBC driver Migration Windows 10 Icons Array Authorization ODBC PostgreSQL Application UI Themes WinAPI DataWindow Variable Elevate Conference COM Data Window BLOB Event JSONGenerator Encryption OrcaScript Excel .NET Std Framework Database DevOps Database Painter SQL TortoiseGit Outlook SqlExecutor Filter C# Authentication CrypterObject Resize Debugging MessageBox Jenkins PowerServer Web External Functions JSON PDFlib Database Profile Menu Database Connection Class Git PBDOM API SOAP XML Web API PDF TFS DLL Expression Repository