DLG

MORE PRODUCTIVITY MORE QUALITY MORE USABILITY

After each answer we provided bookmarks at the right edge of the screen. You can jump back to the top by clicking on it.


WHAT IS DLG?

DLG is a set of universal components for building "Application Frameworks" - a new software technology superseding a good deal of all programming. "Universal" components are - contrary to the buzzword "components" - modules representing a whole class of functionality. For DLG this class is everything relating to user interface and/or user interaction. (Basically it could be any other domain of application, too. UIF, however, seemed to offer the best chances for demonstrating DLG's versatility.)

In the simplest case, already the DLG defaults will offer anything you need for the target application. Frequently, however, you will want a more sophisticated layout and handling of user interaction. Then you will need to provide some DLG "options", overriding the defaults.

DLG is aimed at professional developers of  special applications,  at  semi-professional  software developers (= appliers who look at software not as being their core business), and even at  casual users  who need to make up a quick-and-dirty software for their own purpose. Eventually they all could experience a  strategic breakthrough  - opening up a new branch of business they never dreamed of before.

DLG-based software development is starting at the user interface (UIF). It comprises three steps:

  1. Build a framework by combining DLG elements supporting all the features you designed for the target application.

  2. Make full use of DLG's flexibility to override the  DLG defaults.  You can do it by coding options  in form of keyword parameters.

  3. Only application-specific operations are left to be programmed in the conventional way. Additionally, there might be details you want to be handled in an even more elaborate way than by the DLG options. If so, you will need to program a number of callback procedures.

Thus the UIF of an average application will be ready in a few minutes to hours, once you are familiar with DLG. A more comprehensive application will take some working days. (In addition you will need some time for programming the callback procedures).

The greater part of work will be the programming of  callback procedures . It is straightforward programming, easy even for a less-qualified programmer. If you plan to use icons and bitmaps in your application, it might be clever to reserve some time for designing them or to buy them from a third party.

DLG is clearly far beyond conventional programming. Not only in its  "programmer-friendliness".  All DLG elements have the following basic properties:

  • Loading from a file, the directory structure on disk, from a string, by a callback procedure and/or by direct code (whatever applicable).
  • Reacting to single- or double-click of left, middle and right mouse button.
  • Responsive to keyboard entries, not only as in conventional programming but far beyond that.
  • Callback procedures for input/output, checking of user inputs, handling single/double clicks of left/middle/right mouse button, and entire sub-classing.
  • If the contents of a DLG element are modified, it is automatically memorized. Before closing an application, this  Updating  can be checked and an application-specific operation can be activated.
  • The contents of DLG elements can be stored to or retrieved from clipboard (if applicable).
  • The contents of DLG elements can be saved to a file (if applicable). This file, in turn, can be used as input to subsequent processing.
  • If the user has a wheel-mouse, all DLG controls can be made reacting to rolling the wheel.
In addition, many DLG elements have specific features. (For example, the sorting in a  ListView  can be done alphabetically or in any other order, given by a callback procedure.)

All DLG elements can be created individually, in groups or in sub-groups. Grouping or sub-grouping provides new kinds of behavior. They can be colored or painted in any brush or pattern, have lettering in different fonts, multimedia support, etc. - features that are simply out of reach in conventional programming.

You can use these niceties to bring your company's  corporate identity  up to the user's screen. You can present your company logo, play your company jingle, or you can do many more things that may seem unimaginable today. (Soon a software-UIF will be an artwork as an advertisement or a PR folder is these days!)

top

PREREQUSITES

DLG is a set of universal components for building "Application Frameworks" in C/C++, specifically designed for ease of development and above-average quality (better than conventional programming in many aspects). The requirements for using DLG are:

Resources:

C/C++ development system
(Currently Microsoft-Visual C/C++ Version 6.0. If you need another development system, please contact us.)


Knowledge:

Standard logical thinking  (similar to that needed for a crossword-puzzle).
Basic knowledge of Windows™ and programming language C  (syntax, use of #include-files and static libraries).
Knowledge of C++ is not needed (but helpful, if you want to implement callback procedures).
DLG itself requires "non-procedural" programming.

top

WHO SHOULD  NOT  BUY DLG

From experience we know that once in a while among our customers there are some people who purchased DLG in wrong expectations. The DLG-approach is a bit different from conventional programming. You should not buy DLG if you are one of the following types of person:

1.

No Time / No Readiness to Learn a new Software Technology

DLG is a completely new software technology. Once you are familiar with it, you can build an Application Framework within some minutes that would take many hours in conventional programming.

Yet, unquestionably, it takes some time and effort to learn it - though DLG is very easy to learn.

In fact, so easy that another class of people might even feel a bit bored when using it:

2.


Passionate Software Technician / Computer-"Hobbyist"

If you are fascinated by all the intricacies of the computer, if you are an expert in juggling with OCX's, DLL's, etc. (and you take pride in it!) - DLG will be much too down-to-earth for you. DLG was designed for simply "plugging together" software components to get a useful application as efficiently as possible - at intellectual demands not more than that of a crossword puzzle.

DLG is also aimed at what could be called "semi-professional" software developers. Appliers who are experts in their fields but who feel not so closely related to computers and software. So far they used to order it from an outside software developer when they needed a piece of software - frequently a group of "Software Technicians" as the ones mentioned above.

DLG, however, should bring home to them the idea that they can do it themselves:
  • Exactly meeting the requirements: The applier himself is the one who knows best what a software is supposed to do.
  • Highly productive: Once you are familiar with DLG, you can "plug together" an application in a few hours that in conventional programming would take several working days.
  • Exceptional quality: In DLG you can easily have color, brush or pattern in the background. The lettering in the foreground can have different colors, fonts and letter sizes. Selected DLG elements can have characteristic sounds, audio or even video sequences.
  • Unlimited flexibility: Nearly every detail of an application's UIF can be controlled by a callback procedure, programmed by the applier. But that's just a simple, straight-forward programming. No real challenge to your brains.

If that's not what you are looking for, DLG is not for you.

top

TECHNICAL BACKGROUND OF DLG

DLG is a series of pre-programmed software components for implementing applications under Windows 95/98/NT/2000. DLG was developed in Visual C/C++. DLG components are supplied in form of a static library and can be used in a C/C++ development system just like any of the runtime functions.
The only programming you need is that for 'callback procedures'. To that purpose you don't need full C++, you can do it in simple C. You don't even need full-time programmers.

DLG is language-independent. What the end-user sees, are graphics only. (Yes, there are some messages in standard English in DLG. However, they appear only during application building, visible to the programmer only. When an application is released, they can be switched off easily.)
The only messages visible to the end-user are those you display in a callback procedure.

A special idea in the design of DLG was to associate each user input element with a variable in the calling program. When the dialog is opened, the respective element displays the current value of the associated variable. Before the dialog is closed, all values in the user input elements are stored back to the associated variables in the calling program.

Optionally, before closing the dialog   an input value can be tested to have any user input at all, or to fit in with a given range of values. If these criteria are not met, closing the dialog is refused until the user has entered a valid input. You don't need to take any precautions for queer user inputs, what makes conventional Windows programming so troublesome.

By doing so, the programmer can fully concentrate on working on the application-specific parts. Calling a DLG dialog is as simple as, for example, a standard MessageBox. When execution returns to the calling program, the user inputs can be processed right away.

top

OPTIONS, KEYWORD PARAMETERS

The design of DLG started out with the idea, the applier should be able to pass any number of parameters when creating a dialog. Without being nailed down to that awkward formalism of standard Windows programming.
Our solution is the concept of "Options": a series of arguments strung together in a normal ASCII-string.

The arguments have the form of keyword parameters:  "<keyword>=%<format specifier>",<value>,   with at least one whitespace character (space, tab, line break) between two arguments. The window text is used to accommodate the options, with a special character separating options from the text that is supposed to be the real window text.

Options may occur in any order (with a few exceptions that are specifically pointed out in the documentation).
Option strings may be formed manually or by standard Windows string functions at runtime. Thus you can have a  variable dialog,  a dialog that adapts widely to previous user inputs - one more thing that is easy in DLG but very limited in conventional Windows programming!

Due to this concept an applier has very much latitude in how to implement a user interface. In addition, the most frequently needed operations are available in pre-programmed form. Special requirements can be implemented in callback procedures.

Therefore, with DLG you need no programming at all (at least as far as UIF is concerned). Most things are implemented by combining pre-programmed features. The programmers can concentrate on the aspects specific to the application.

top

CALLBACK PROCEDURES

DLG is a set of universal components for building "Application Frameworks" . Meaning, you can build an application by a minimum of programming. You simply combine DLG components according to the features you want to have in the target system. Additionally, in DLG you can get many effects that are just beyond standard Windows programming, e.g. colors, fonts, multimedia support, etc.

If there are some details left that you cannot get directly from DLG, you can program 'callback procedures'. They are very much straightforward programs implementing application-specific details. You don't need to care about all those subtle intricacies that are usually involved with programming (in particular that of Windows applications).

For example, a callback procedure implements the application's response when the user ...
  • single- or double-clicks a mouse button
  • clicks left, middle or right mouse button
  • rolls the wheel (if the user has a wheel mouse)
  • selects an item from a list (by mouse or by keyboard)
  • etc.

top

DLG STRUCTURE

The DLG product line is structured according to the applier's needs. In detail this means

--------------------------------------------------------------------------- Free Samples -----------------------------------------------------------------------
DLG Basic basic DLG-controls, most frequently needed operations
DLG Standard DLG-controls needed for more user-friendliness, some more operations frequently needed
DLG Advanced DLG-controls needed for more advanced applications
DLG Launching Components needed to make full use of DLG
DLG Accessory UIF elements beyond dialog

top

DLG Basic Basic DLG-controls,
the most Frequently Needed Operations

DLG Basic  should be installed before upgrading by any of the other DLG's. Our outline page gives you a description of the individual controls.
Click the sample to see details and download a free sample program:

Control Type Sample
Static + Edit
basic user interaction via input/output of alphanumeric text
sample 1.0
Button
set 2+ states, trigger a predefined or custom action, get multimedia effects, close dialog
sample 1.1
ListBox
select 1+ items from a (permanent) list
sample 1.2
ComboBox
select 1 item from a (temporary) list
sample 1.3
Tabs
present dialog controls by subgroups, one at a time
sample 1.4
DirSelect
present directory tree of all drives in system, to be selected by user
sample 1.5
Operations 1
predefined actions based on sub-dialogs
sample 1.6

DLG Structure  top

DLG Standard DLG-controls for more User-friendliness,
some more Frequently Needed Operations

DLG Basic  should be installed first, then you can  upgrade  by  DLG Standard . Our outline page gives you a description of the individual controls.
Click the sample to see details and download a free sample program:

Control Type Sample
Spin, Slider
numeric user inputs, typed in and/or controlled by mouse
sample 1.7
ProgressBar
visualize how a lengthy operation makes headway
sample 1.8
Animation
present moving images of a bitmap series
sample 1.9
Display
visualize result of sub-dialog in natural form
sample 1.10
Operations 2
predefined actions based on advanced sub-dialogs
sample 1.11

DLG Structure  top

DLG Advanced DLG-controls
for more Advanced Applications

DLG Basic  should be installed first, then you can  upgrade  by  DLG Advanced . Our outline page gives you a description of the individual controls.
Click the sample to see details and download a free sample program:

Control Type Sample
TreeView
present masses of information hierarchically
sample 1.12
ListView
very user-friendly way to present masses of information in many different aspects
sample 1.13

For operations  New,  Rename  and  Delete  a semi-modal dialog 
(part of DLG Launching) is required.

DLG Structure  top

DLG Launching DLG-Components needed to
make Full Use of DLG

DLG Basic  should be installed first, then you can  upgrade  by  DLG Launching . Our outline page gives you a description of the individual controls.
Click the sample to see details and download a free sample program:

Dialog Type Sample
standard dialog
upgrade a conventional dialog to full DLG, launch a DLG dialog as you do in conventional programming
sample 2.1
simple dialog
DLG-specialty: launch a dialog with a minimum of coding, dialog box adapts automatically to the controls
sample 2.2
semi-modal dialog
not accessible in standard Windows: message-loop to perfectly tailor a dialog's behavior to your needs
sample 2.3
MainWindow
base of any application: by it many DLG features are done automatically, without any coding effort
sample 2.4
User Arranging
let the user do the arranging of controls
in a MainWindow or any dialog
sample 2.5

DLG Structure  top

DLG Accessory DLG-components for
UIF-elements Beyond Dialog

DLG Basic  should be installed first, then you can  upgrade  by  DLG Accessory . Our outline page gives you a description of the individual controls.
Click the sample to see details and download a free sample program:

UIF-element Sample
Statusbar
insight into processing at runtime
sample 3.1
Toolbar
frequently needed controls right at the user's hand (not only buttons, like in standard Windows!)
sample 3.2
Menu
popular means to offer a maximum of operations
to the user at a minimum of screen space
sample 3.3
Floating UIF
very user-friendly way to present Dlg-Menus and toolbars, with items and/or controls combined
sample 3.4

For sub-menus/toolbars in  Floating UIF  a semi-modal dialog 
(part of DLG Launching) is required.

DLG Structure  top


Home | Outline | DLG