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

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