So a user of an application I work on is getting an error when opening a window which contains a dynamic datawindow. The open process reads a table and then dynamically creates a grid datawindowobject with the same number of columns as the data which is retrieved from the table. The process itself uses the…
You are currently browsing all posts tagged with programming
PowerBuilder ‘Gotcha’ – SyntaxFromSql and System Fonts
PowerBuilder ‘Gotcha’ – Grid Datawindows with Picture Controls
So I’m working on a ‘dashboard’ style datawindow in an application which shows a grid of data along with some graphics so the user can easily see changes/important stuff. There are a number of reasons to use a grid datawindow for this, especially since they can easily be changed by the user to suit their…
PowerBuilder – Using C# Visual Objects in PB Classic Applications
This article will explain how to build a COM visual component in C# using Visual Studio 2010; it is an extension of my earlier example of using the Interop Forms Toolkit to build a Visual Basic COM object. First you need to install the Microsoft Interop Toolkit (available here). Then download the C# Interop Form…
PowerBuilder – Timing Out a Windows Session
There are a variety of techniques to locking or timing out an application after a certain amount of inactivity. With earlier versions of Windows (XP and prior) a common approach was to invoke the screen saver via a Send command. send(handle(This),274,61760,0) This doesn’t work with Windows 7 (or Vista). Try the following: integer li_rc OleObject…
PowerBuilder – Using .Net Visual Controls in PB Classic Applications
This article describes the techniques and code used during my presentations at the Carolina Code Camp 2012 and at the May 2012 meeting of the North Carolina PowerBuilder User Group. The techniques described here utilize Visual Basic .Net (coded in Visual Studio 2010) with the Interop Forms Toolkit available from Microsoft. The Interop Forms Toolkit…
PowerBuilder – Resizing a Response Window or User Object
Here is a technique you can use to resize a response window or userobject as needed. It makes use of the GetWindowLong and SetWindowLong Windows API methods. The oldest reference I found to this is from Eric Aling back in 2000. In a nutshell, you are changing the border around the object to one which…
PowerBuilder – Discarding Rows with Find
It’s a fairly common practice to report on a set of data derived from a larger group of rows. There are many techniques to do this in code and with the methods available with datawindows/datastores. One typical approach is to use the Filter method. The problem with this is it requires another trip to the…
PowerBuilder – Determining if Controls Overlap
I had a situation where I needed to know if the user is clicking on a control which is underneath a rectangle on a datawindow. In this case the interior of the rectangle was transparent. ls_name = dwo.name IF (left(ls_name, 2) = 'r_') THEN // my standard rectangle naming convention ls_objects = this.Describe( 'DataWindow.Objects') ls_objects…
PowerBuilder – Fontheight method in Expressions
An enhancement was put into PB12.1 dealing with determining the height of a datawindow column based on its font setting. It’s called Fontheight and takes a string parameter. Unfortunately there does not appear to be any documentation on it in the PB help files (I’m looking in PB12.5). You can see a reference to it…
Coding for Amateurs
Bumped into this code the other day. Hmmmm… //b_paint_good is a boolean set somewhere else IF NOT b_paint_good THEN //do not do something here [code follows] ELSE // do something here [more code follows] END IF Now what’s the point of this? Trying to raise the defect count on your software (in the immortal words…