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

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