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

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