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

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