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