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

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