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

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