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

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