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

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