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

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