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

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