FAQ - Frequently Asked Questions

Here you will find answers to frequently asked questions about the ISA Dialog Manager.

If your question is not listed, contact us!

IDM Editor

In the graphical IDM Editor, you place the “@” in front of the corresponding text field and then enter the name of the text resource.
Im Texteditor gibt man nur den Namen der Textressource an.

Models

Since the order of inherited children cannot be changed, it is helpful to create a maximum number of menu items in the model. Unneeded menu items can then be hidden. This way, you can always define existing menus in advance.

Modularization

Approximately 4,000 modules/dialogs are possible per application.

Objects

Texts in the .text and .title attributes are created as objects by the IDM and are given an internal ID.
Strings (e.g. in the attribute .content) is only created as a string.
Text objects can be provided with multilingual variants and, despite multiple uses, only consume memory once.
Strings do not consume an ID, but cannot have variants and consume memory per string.

The IDM must search the entire application for references to this object and resolve them. This process can take a very long time, depending on the application.

The content of a table field is determined by the dynamic attribute .content . The values ​​of this attribute are written into the code when writing binary data. If variable values ​​are to be displayed, this could be done, for example, via the :init() method on the table field.

On the one hand, to make it clear that there are strings that support multilingualism and use IDs as objects (.text, .title). On the other hand, to clarify that strings have a rather dynamic background (.content).

Using the Tab key.

The number of objects per dialog/module/child objects is approximately 65,000.

The IDM doesn't specify string length. If there are limitations, it's usually due to the toolkit.

Since poptext stores the content as a text object, this depends on how many object IDs are still available. Sometimes the toolkit limits the number.

These objects can each consist of 65,000 rows. The tablefield also consists of 65,000 columns.
However, limitations could arise beforehand due to the toolkit, which uses the required memory for fonts or images used on the objects (e.g. treeview).

Rule Language

No, event rules are called by the IDM when the event is triggered.
Man kann allerdings eigene Ereignisse definieren und über sendevent() auslösen oder aber mit selbst definierten Methoden arbeiten.

Custom attributes are completely dynamic. They can be created, modified, and deleted at runtime.
Benutzerdefinierte Methoden sind nicht dazu geeignet.

“:=” triggers an event, “::=” does not.

These queues store events that occur in an application. They are processed according to the FIFO (first in, first out) pattern.

The maximum recursion depth is approximately 1,000.

If this limit is exceeded, the following information is displayed: ***ERROR IN EVAL: too many levels of rule recursion (1000)

Attributes can be stored in variables/attributes of the data type "Attribute". Access is possible via the built-in functions getvalue() and setvalue() .

If you want to store rules or functions in variables and attributes, you must note that these are of the data type “object” in the rule language.
Methods are of the data type "method." Rules and functions can then be called directly via the variable name or attribute.
Methods can be accessed via the built-in method :call() indirectly.

A certain degree of variability is achieved through so-called "records" as parameters, which have different attributes and can also be dynamically created, assigned, and read. We would also like to point out the possibility of optional parameters here.

The size limit for rules and methods is 64kB. If this limit is exceeded, the dialog will not start and the trace file will output the following information:
[F: rule exceeds internal size – ]
Therefore, it may be necessary to split rules or methods.

C interface

Basically, even allocated memory must be released again.

First the system's "includes" should be specified, then those of the IDM.

Licenses / Versions / FTP

If a suitable IDM version is available for the target platform, we recommend using that version. If no suitable version is available, please contact our support team.

Yes, it also requires a developer version.

A developer license also includes the graphical IDM editor, the debugger and the profiler.

If a bug you reported has been fixed or a request has been implemented, you will automatically receive a new version or a notification that it is ready for download.

If you have any questions about specific errors or requests for enhancements, please provide us with the corresponding 5-digit processing number.

You can log in to our FTP server (ftp.isa-tools.de). You will receive the login information from our support team.

After registering on our website, versions can be downloaded from the Download area.

Microsoft Windows

When Windows is shut down, the windows receive the close-Event, auf das man reagieren kann.

Another possibility is to catch window system messages (WM_QUERYENDSESSION/WM_ENDSESSION) via a DM_InputHandler and then perform the desired actions.

 

 

Motif

This error message occurs if the IDM was not installed correctly or without the documentation.

Qt

The Qt window system is supported starting with IDM version A.06.01.a.

Support / Hotline / Documentation

Monday to Friday, 9am to 4pm.

A precise problem description (what, when, how, where). Include: IDM version, platform/toolkit, window manager, and environment components.

Sample code to reproduce the error. A trace file of the process. Screenshots and videos demonstrating the error.

By email (support@isa.de) and in urgent cases via the hotline (+49 711 22769-24).

The Documentation (DE/EN) is linked in the menu item of the same name in the Support section on our website.

Troubleshooting / Tracing / Degbugging

  • First, locate the error.
  • Generate a trace file (ideally complete).
  • Categorize the error (crash type/location, IDM/own application/environment, …).
  • In addition to the trace file, we may provide dumpstate and debugger for IDM diagnostics.
  • If the problem/crash occurs in your own application, you should consult debuggers and other components.
  • If you have not found a solution to your problem, please contact our support.

A trace file logs the application's execution. It can be created in the following ways:

  • About the environment variable IDM_TRACEFILE
  • About the parameter -IDMtracefile when starting the application

The start parameter overrides the environment variable.
The trace file can be configured in various ways (see documentation chapter Starting options). Please note that a shortened trace file may not contain all the necessary information.

Such places in the code can be located using the option –IDMtracetime (see documentation) or the profiler in the debugger.

System

The display of umlauts is controlled by a number of components:

Which font is used (does it have the required umlauts?); which locale and code page is set for the application and which for the display; does the toolkit support these umlauts? etc.
As I said, there are a lot of screws that can be turned and that may be incorrectly adjusted.
The IDM itself uses UTF-8 and therefore supports Unicode.

With the attribute .language at the setup-Object after the DM_Initialize.
It is best to do this before the objects become visible and already have text (before DM_StartDialog).

en_GB