Don Bakke

Sherlock Holmes and the Case of the Missing Events

QuickEvent_for_DRAGDROP

SRP has a good reputation for tracking down the obscure and unusual problems that occasionally occur within OpenInsight. Normally we should prefer that these problems be far and few between (especially when trying to impress a client!) but like a good mystery novel, there is something about the challenge that presents us with a thrilling adventure.

Such was recently the case when I upgraded a customer’s system from OpenInsight 4.1.3 to OpenInsight 8.0.8. Great care was taken to make sure all necessary upgrades were applied as skipping some can create incomplete systems. At first glance the upgrade path appeared to go flawlessly. Beyond the known form fixing issues, the application worked just fine. That was until I recompiled my first form…
Continue reading

It’s the Little Things – Resolving a Long Standing SRP FrameWorks Annoyance

FrameWorks

From the earliest days of our venerable FrameWorks product there has existed a rather annoying problem whenever the System Monitor was launched: OpenInsight would lock up and the only way to recover was to use the Window’s Task Manager to kill OpenInsight.

Of course we’ve known just what was causing the problem and we certainly wanted to get this fixed but it never became a high priority. After all, we became accustomed to avoiding the combination tasks that resulted in the unforgiving problem. While this might be just fine for SRP developers, it has become something of an embarrassment when other developers who use SRP FrameWorks for their own projects contact us wondering why their system locks up when they run the System Monitor.
Continue reading

An Explanation of SRP’s Licensing Policy

SRPLicense

SRP’s philosophy on product licensing has always been geared toward the developer rather than the end user. As such we have always provided a “royalty free” licensing policy. That is, a developer only needs to buy one license which can be deployed with any application that the developer supports. While this may seem simple in concept there are some technical considerations that can sometimes create confusion for our customers.
Continue reading

Accessing Images from Compressed Folders

OpenInsight’s BITMAP property allows developers access images by path name or from within a resource file (.DLL or .EXE):

// Pull image from a path. 
Set_Property(Ctrl, 'BITMAP', 'BMPS\Check.png') 

// Pull image from a resource file. 
Set_Property(Ctrl, 'BITMAP', 'Images.dll#check')

Storing images within a resource file makes an application more professional and prevents the curious end user from modifying the images stored on the hard drive. However, many developers are unfamiliar with the technology necessary to manage images from within a resource file. Most software development kits provide tools for this. If you are unfamiliar with (or would rather not learn) these SDKs there are simple utilities that can be downloaded to make this relatively easy (e.g. one that seems to work well is Resource Hacker.)
Continue reading

Using the TabColors Property

In another article we highlighted the stunning Color Fill feature that many developers might not have been aware of. Several controls were demonstrated in that article. One example that was not pictured was the SRP Tab control, which will be the focus of this article.

There are two reasons which inspired me to highlight the SRP Tab control. First, being one of our very first ActiveX controls, it has received very little attention in recent years. Second, while doing an application review the other day I came across a window that instantly caught my attention:

SRPTabNAVSuite

The gradient background made me wonder if this application was being developed in OpenInsight 9.x, since that is when Revelation introduced this feature. This is demonstrated below in the Report Builder Page Setup dialog:

ReportBuilderPageSetup

However, I was pretty sure this application was not designed in OpenInsight 9.x. I checked the About box. Sure enough, version 8.0.1. I was then reminded of a color-based ActiveX property that we introduced with little fanfare: TabColors. Therefore, if I had forgotten about this feature in our own controls, it seemed like a good candidate for a new article.
Continue reading

Using the Color Fill Property Type

With the proliferation of so many ‘home improvement’ type television programs it is hard not to discover how important color is for both aesthetic and functional purposes. Many of the same principles apply to software design as well. However, like home owners with little experience in interior design, many OpenInsight developers struggle to create a visual experience that is both intuitive and attractive. To make matters worse, modern systems commonly incorporate desktop themes and gradients as seen in the My Computer window below:

Color_Fill_Example

OpenInsight’s out of the box toolkit is somewhat limited in this area, making it challenging for the developer to offer these kinds of visual enhancements. One popular work-around is to create (or download) custom images and use them with PUSHBMP or BITMAP controls in very creative ways. While this helps, it doesn’t provide true theme support. Quite often these images use background colors to blend with the form. This works well while the user stays in the same theme. Once this is changed the well-crafted image looks glaringly out of place. This problem was one of the primary reasons SRP began developing ActiveX controls.

Now, in addition to support for Transparency, Alpha Channel, RGB/HSL colors, System colors, MS Office colors, and HTML colors, SRP ActiveX controls give the developer custom Gradient options via the Color Fill property type. Since all of the above are fully documented in our SRP OLE Controls help document, this article will focus on a few examples in hopes that it will inspire you to greater visual awesomeness.
Continue reading

Displaying Content in Internet Explorer

Many programmers have realized the benefits of using a browser ActiveX control within an OpenInsight form. HTML provides an easy way to deliver rich, flexible, and dynamic content. For example, this is a popular technique for building application dashboards.

There are occasions when an ActiveX browser control will not be ideal (or work at all.) A recent project required OpenInsight to display some rather complex reports that were created on-the-fly via a web service. In and of itself this was not a problem. We were able to make our request and get back the report within an XML wrapper. However, the HTML content included various elements that precluded the use of an ActiveX control, such as various dependencies upon the document object model (DOM). Therefore, another method for displaying HTML was required.

The Internet Explorer object provides us a way to launch an instance of Internet Explorer that is virtually under the control of OpenInsight. It shares the same methods and properties as the the ActiveX browser control so it will be somewhat familiar to many programmers. Comprehensive documentation can be found on the Microsoft Developer Network website.

In OpenInsight 7.1 and later you can use the Basic+ OLE/COM functionality to utilize this object. Earlier versions of OpenInsight require the assistance of third-party utilities such as our SRP_COM function. The following code samples will use the native Basic+ functionality but anyone who wishes to use SRP_COM will find that the syntax is remarkably similar.
Continue reading