Archive for the ‘JSDialog Pack’ Category.

Introducing Demo Browser… (from the pile of never to be released…)

It is interesting what you find in your drafts folder. From January 20, 2012! I guess my interests got consumed elsewhere. Still think the idea has merit.

I’m sure everyone has a stack of ideas that never really get off the ground for one reason or another. This is just one of plenty for me!

NOTE: This was used for the JSDialog Pack demos way back when so it kind of got released for in-house use.

The Demo Browser is an application that allows component vendors to showcase the demos that come with their products.

One of the main issues developers face is how to make “my application” do what is being done in a screen shot shown on the particular vendors site. I know this because I am also a consumer of third party products and trying to work out how a component works can be time consuming. The aim of Demo Browser is two fold, firstly allow a products demos to be located in a common front end and secondly to help spotlight important features within those demos.

The idea originally came about when seeing a number of questions about Delphi specific features that were covered by sample applications that shipped with the product. It is fine to tell them to go and search through a bunch of directories (some Delphi versions he “hide” the demo folder is some obscure location – it has since become more obvious where the demos are, but I digress).

So a central location for demos is what Demo Browser is.

Some History

Like most things I develop I usually mention it to a number of people I consider my sounding board. They seem to be very good at determining what might be a good thing and what may not (even though we don’t always see eye to eye – which is a good thing). I first bounced the Demo Browser idea off a former Borland (yes a while ago now) employee whom I had coffee and social chats with on a regular basis. So the first Demo Browser prototype was dynamic. It could read in the demos folder of your Delphi installation and process the information into a nice central view. Here are some of the initial screen captures (these were created August 3, 2007).

Demo Browser prototype

Demo Browser: summary

Demo Browser: readme

Demo Browser prototype

Demo Browser: screen capture

Demo Browser: filtering

Demo Browser prototype

Demo Browser: filter view

Demo Browser: video

JSDialog Pack 2.0.019

A new version of JSDialog Pack is now available to registered users with valid maintenance. If you haven’t received an email with the latest version – please contact me.


Highlighted Additions

This new version includes support for updated progress bar usage on the task bar under Windows 7.

New progress ShowOnTaskBar property

New ShowOnTaskBar property

Also included are new wrapper methods:

  • New overloaded version of VerifyMessage to support footers. (Declared in JSDialogs.pas)
  • New InputQueryVerification method which displays an input query style dialog with the verification checkbox visible. (Declared in JSEditDialogs.pas)
  • Also it is now possible to use your custom TJSEditDialog descendant for use in the edit dialog wrapper methods. Just set the new JSEditDialogClass variable in the JSEdtiDialog.pas unit to your new descendant.


Change Log

  • Add ability to display progress on the task bar under Windows 7
  • Fix memory management issue with non-modal dialogs
  • Fix unique name clashes
  • Support retrieving a button on the dialog by using its expected result value
  • Make sure dialog is updated when the glyph property is changed
  • Make sure using the SetProgressState method to change the state of the progress bar updates the progress bar in the dialog and also on the task bar
  • Change the UpdateProgress methods to functions that return the current value of the progress bar after being updated
  • Improve color usage in custom styled applications
  • New overload of the VerifyMessage wrapper method to allow setting footer information
  • Allow setting of the EditValue property in TJSEditDialog descendants
  • New event OnSetEditValue for TJSEditDialog descendants
  • Support opening files (prefix content location with “file” instead of “http“) when using the EditType of etHTML
  • New wrapper method InputQueryVerification that displays an InputQuery dialog with a checkbox on it
  • Allow specifying a default TJSEditDialog class to be used when invoking one of the TJSEditDialog wrapper methods. Set the JSEditDialogClass variable to change the default class.



18% off JSDialog Pack

In celebration of my daughter turning 18 in a few days, we are offering 18% off JSDialog Pack orders.

Just use the coupon code MADDIE18 to get the discount.

Just in time for the next release, which will occur before June.

JSDialog Pack: Documentation

Work has almost been completed for the “Christmas Release” of JSDialog Pack. When I say almost completed there is still some testing to come and a couple of the new features are shaping nicely.

The new version will be released mid-december but I’ll go further into that when the release is closer.

One thing I’ve been concentrating on the past couple of days is updating the documentation. Unfortunately as a developer, I really like to write code, not write documentation. It is always good to have a good tool to complete this task efficiently and capable of producing a quality output (in multiple formats) in the end.

For my documentation I currently use Doc-O-Matic Professional version 6 (would like to upgrade to version 7, so you folks need to purchase some components ;-)).

The single most important feature of this product I find is the QA View. It allows me to pin point exactly what properties, methods, classes and units are yet to be documented. It is always a relief to see no red boxes (or red boxes bordered by gray – not exported content). I’ve just finished getting all of the new items documented, as well as catching up on items that were not documented when first introduced.

A good habit I got into was creating the documentation while doing the coding. This is easy to do with Doc-O-Matic supporting a number of source documenting formats. Once I update the Doc-O-Matic project with the latest source version, I then make adjustments to the documentation in the inbuilt editor. It generally works very well and cuts down on the very important requirement to have the code documented for customers.


Some useless stats

Topic Count: 2510

Number of topics without content: should be zero


Web Help

Build Time: 2 minutes 12 seconds

Size of content: ~22MB

Time to upload to website: couple of hours (2682 files)

PDF Help

Build Time: 1 minute 55 seconds

Size of content: 7.56MB

Page count: 716

Html Help

Build Time: 2 minutes 38 seconds

Size of content: 3.45MB


While the PDF and Html Help formats are available to download from the website, I recommend using the online help since it can be updated and doesn’t require an additional download or change notification.


JSDialog Pack – Upcoming feature (custom command link colors)

A new feature in the next release of JSDialog Pack will be the ability to customise the colors used for command link buttons. Since the introduction of VCL Styles in XE2, dialogs can undertake a radial change in colors. While currently dialogs cater for this new feature, the next release will allow greater influence over the colors used for the dialog.

You can download a preview of the editor used to create, modify and save a color scheme. While the UI of this editor will most likely change – the file format shouldn’t need changes. So you can safely save any schemes you come up with for use when the feature is released.

Command Link Color Scheme - default


Command Link Color Scheme - custom

JSDialog Pack 2.0.009

A new release of JSDialog Pack is now available.

Changes include:

  1. Added XE2 Support
  2. Added support for custom VCL styles
  3. Added 64-bit support
  4. Improved BiDiMode support
  5. Updated default images used by the command link button
  6. Removed language defined in resource files
  7. Move some methods around in preparation for the next release
  8. Improve large font support
  9. Fix layout issue when dialog has a footer and expanded content is being displayed in the footer section of the dialog.
  10. New wrapper function ShowErrorTitleMessageWithErrorAndFooter, which displays and error dialog with an expandable section that contains additional text. Can also display a footer and footer icon.
  11. Update documentation

Current customers should have already received the required update (two emails were rejected – contact support to resolve if you are missing an expected email).
Please check your spam filters and make sure you white list our domain.

JSDialog Pack information

JSDialog Pack: Dialog Creator Preview

A tool to help make the creation of JSDialog Pack dialogs even easier is currently in the works. With the Dialog Creator application you can complete the sections you want the dialog to support. Once finished you can instantly preview the final look and then either copy the code required to generate the dialog, or copy the dfm required to paste it directly on a form.

Dialog Creator


Code Generation

To prove it is currently being tested, the code generation should probably call the method that actually displays the dialog!

The initial release will just support the creation of TJSDialog dialogs, with other dialog (Edit, Dual Edit [new in next release], Password and Check) support to be added in the future. As well as other code generation features and also a reusable gallery that contains the ability to save and load regularly used dialogs.

A new version of JSDialog Pack is almost ready to be released, hopefully sometime next week.


JSDialog Pack users get a 50% discount off the initial XE Plus Pack purchase, making it just 20 Euros! Contact support for details.

Sneak Peak: XE Plus Pack

I’m getting very close to releasing a new product called XE Plus Pack.

This product will include a number of experts that I’ve been personally using. Some for a number of years and some very new. Ultimately the idea behind the XE Plus Pack is that it will continue to grow over time to include new Experts, Property Editors, Component Editors and Utilities for newer IDE versions.

The first release will cover Delphi XE.

While the sneak peak shows five experts listed in the new JED Software Third Party Options section, only four will be released initially. The fifth (Bookmark Guide) still needs to bake a little bit before being released.


XE Plus Pack will sell for 40 Euros (50% discount for JSDialog Pack users and Free for current Visual Forms users). Yearly renewal of 20 Euros applies for updates and to receive newer experts. Users will have the opportunity to vote for which expert gets released next (I have an extensive list earmarked for the product).


Initially XE Plus Pack will include:

  • Visual Forms
  • Activate Project
  • File Actions
  • Code Template Wizard


Upcoming items that will be included with this product:

  • (Expert) Bookmark Guide
  • (Expert/Utility) Revamped Delphi Configuration Manager
  • (Utility) Enhanced Configuration Launcher
  • (Utility/Expert) Extensive IDE Options import/export application that can run from removable media
  • (Utility) Client DataSet Editor – developed while creating QC Plus

NOTE: Some utilities won’t be limited to Delphi XE IDE versions.


I will be doing some videos to introduce the collection and specific functionality.

XE Plus Pack - Options Integration

XE Plus Pack - Options Integration

JSDialog Pack 2.0.005

A new release of JSDialog Pack was sent to registered users yesterday. If you haven’t received the new version, please send me an email and let me know.

The item list for this release is as follows:

  • add support for setting the maximum number of visible text lines in the content area. Once exceeded, change the content area to display a scrollable text box
  • add detection if content is too large for the current screen height automatically change to a scrollable text control for the content area
  • add DefaultMonitor property
  • add OnDialogShow event
  • shorten name of large font support function
  • only create the footer control if there is footer text defined
  • only create the instruction control if there is instruction text defined
  • support creating the footer dynamically when content is updated while the dialog is displayed
  • add new wrapper function ShowTimedInfoMessage that allows you to easily create a time out dialog for an information message
  • Improve large font handling.
  • Fix issue where the RTF control was not placed correctly when the Expando was made available while the dialog was executing.

I’ll expand further on the first two items in the list (they are closely related). This involves adding a new property called MaxLines (default 0). When this property is set, only this number of lines will be displayed within the content area. Once this number has been reached, the content area transforms into a scrollable text control.

New  MaxLines property

The default is to show as many lines as possible on the screen whenever possible. Once the dialog is greater than 90% of the screen height, the content is then reduced to take up around 50% of the screen height. So the dialog height must go over the 90% threshold, before it is changed.

I’ve written a demo to illustrate this feature, but haven’t placed it into the available demos so I’ll go over the demo now.

Demo source code:

The demo has four buttons, each button contains a description so I won’t elaborate here.

MaxLines demo application

Clicking on the first button displays a dialog with the specific content. Clicking on the second button, forces only 20 lines of content to be displayed (MaxLines = 20). This causes the content to then be displayed in a scrollable text box.

Display all dialog contentTruncate the content visible lines to 20

Clicking on the images makes them larger.


Visual Forms: minor update + new sku details

Update Details

Currently a minor update is going through final testing.

  • This update adds a filter bar to the UI of the Visual Forms window and allows you to filter displayed forms by type. Current filters available are Forms, DataModules and Frames.
  • Auto update on save will now only update the form image if the designer is active in the IDE. This prevents the toggling that was previously occuring if just saving changes to the editor.


Currently when you purchase Visual Forms, you get access to all IDE versions. The new SKU will give you access to your preferred IDE version. As long as your IDE version is Delphi 2007, Delphi 2009, Delphi 2010 or Delphi XE. Naturally this will also bring in a reduction in price.

JSDialog Pack

An update is also planned for release in the middle of March 2011.