<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?action=history&amp;feed=atom&amp;title=Programmer_Guide%2FMacro_Library%2FDOMODALDIALOG</id>
	<title>Programmer Guide/Macro Library/DOMODALDIALOG - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?action=history&amp;feed=atom&amp;title=Programmer_Guide%2FMacro_Library%2FDOMODALDIALOG"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Macro_Library/DOMODALDIALOG&amp;action=history"/>
	<updated>2026-05-06T23:07:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Macro_Library/DOMODALDIALOG&amp;diff=10426&amp;oldid=prev</id>
		<title>Jw: /* LOOP */</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Macro_Library/DOMODALDIALOG&amp;diff=10426&amp;oldid=prev"/>
		<updated>2019-06-14T10:51:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;LOOP&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:51, 14 June 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l164&quot;&gt;Line 164:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 164:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The following dialog messages are directly returned to the caller:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The following dialog messages are directly returned to the caller:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;commands and updates (&quot;COMMAND|UPDATE ctrlidx&quot;),&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;commands and updates (&quot;COMMAND|UPDATE ctrlidx&quot;),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;popup menu selections (&quot;POPUP itemindex&quot;),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;popup menu selections (&quot;POPUP itemindex&quot;),&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;context menu selections (&quot;CMSTAT ctrlidx&quot;) and&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;key strokes (&quot;KEY keycode keyname&quot;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;context menu selections (&quot;CMSTAT ctrlidx&quot;) and&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;key strokes (&quot;KEY keycode keyname&quot;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Translations are performed for the close/cancel-message (&amp;quot;COMMAND cclt&amp;quot;) and the okay-message (&amp;quot;COMMAND oclt&amp;quot;). Because most macros bind local or instance variables to dialog controls, the data exchange must be performed in the calling macro.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Translations are performed for the close/cancel-message (&amp;quot;COMMAND cclt&amp;quot;) and the okay-message (&amp;quot;COMMAND oclt&amp;quot;). Because most macros bind local or instance variables to dialog controls, the data exchange must be performed in the calling macro.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jw</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Macro_Library/DOMODALDIALOG&amp;diff=9611&amp;oldid=prev</id>
		<title>Jw at 08:48, 12 December 2017</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Macro_Library/DOMODALDIALOG&amp;diff=9611&amp;oldid=prev"/>
		<updated>2017-12-12T08:48:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:48, 12 December 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{DISPLAYTITLE:{{SUBPAGENAME}}}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{DISPLAYTITLE:{{SUBPAGENAME}}}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;﻿&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;﻿&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{TOC limit|2}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==DOMODALDIALOG==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This function implements a package of commands to work with modal dialogs. The standard program flow for a modal dialog is:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This function implements a package of commands to work with modal dialogs. The standard program flow for a modal dialog is:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jw</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Macro_Library/DOMODALDIALOG&amp;diff=976&amp;oldid=prev</id>
		<title>Admin: 1 revision:&amp;#32;Initial import</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Macro_Library/DOMODALDIALOG&amp;diff=976&amp;oldid=prev"/>
		<updated>2010-11-18T16:31:27Z</updated>

		<summary type="html">&lt;p&gt;1 revision: Initial import&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:31, 18 November 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Macro_Library/DOMODALDIALOG&amp;diff=975&amp;oldid=prev</id>
		<title>Unknown user: initial import</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Macro_Library/DOMODALDIALOG&amp;diff=975&amp;oldid=prev"/>
		<updated>1970-01-01T00:00:00Z</updated>

		<summary type="html">&lt;p&gt;initial import&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
{{DISPLAYTITLE:{{SUBPAGENAME}}}}&lt;br /&gt;
﻿&lt;br /&gt;
==DOMODALDIALOG==&lt;br /&gt;
&lt;br /&gt;
This function implements a package of commands to work with modal dialogs. The standard program flow for a modal dialog is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Macro DoModalDialogExample]&lt;br /&gt;
&lt;br /&gt;
//  create the dialog item&lt;br /&gt;
#dlg := createmenu dialog * $#mac&lt;br /&gt;
if &amp;#039;$#dlg[?]&amp;#039; != &amp;#039;menu&amp;#039; em -1 ; Failed to create the dialog $#mac&lt;br /&gt;
//  create a dialog map to map control ids to strings&lt;br /&gt;
#map := CDlgMap $#dlg&lt;br /&gt;
if &amp;#039;$#map[?]&amp;#039; != &amp;#039;instance&amp;#039; em -1 ; Failed to create the dialog map&lt;br /&gt;
&lt;br /&gt;
//  initialize dialog controls&lt;br /&gt;
$#dlg $($#map ci ok) BUTTON 0 0 &amp;#039;&amp;amp;OK&amp;#039; * 8&lt;br /&gt;
$#dlg $($#map ci cancel) BUTTON 1 0 &amp;#039;&amp;amp;Cancel&amp;#039; * 8&lt;br /&gt;
&lt;br /&gt;
//  show the dialog&lt;br /&gt;
domodaldialog begin $#dlg&lt;br /&gt;
&lt;br /&gt;
//  dialog loop&lt;br /&gt;
do forever&lt;br /&gt;
    //  write data from variables to the controls&lt;br /&gt;
    $#dlg * /W&lt;br /&gt;
&lt;br /&gt;
    //  get dialog message&lt;br /&gt;
    readstr &amp;#039;$(domodaldialog loop $#dlg $($#map ci ok) $($#map ci cancel))&amp;#039; #id #par&lt;br /&gt;
&lt;br /&gt;
    //  update variables with values from the controls&lt;br /&gt;
    $#dlg * /R&lt;br /&gt;
&lt;br /&gt;
    //  process message&lt;br /&gt;
    if &amp;#039;$#id&amp;#039; == COMMAND then&lt;br /&gt;
        #ctl := set $($#map cn $#par) // get control string (as assigned on control creation)&lt;br /&gt;
        if &amp;#039;$#ctl&amp;#039; == &amp;#039;ok&amp;#039; then&lt;br /&gt;
            //  OK - add code here to save changes &amp;amp; end loop&lt;br /&gt;
            break&lt;br /&gt;
        else if &amp;#039;$#ctl&amp;#039; == &amp;#039;cancel&amp;#039; then&lt;br /&gt;
            //  Cancel - end loop&lt;br /&gt;
            break&lt;br /&gt;
        else&lt;br /&gt;
            //  process other messages&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
//  close dialog window and delete dialog item&lt;br /&gt;
domodaldialog end&lt;br /&gt;
&lt;br /&gt;
// clean up&lt;br /&gt;
delete $#dlg $#map&lt;br /&gt;
&lt;br /&gt;
exit 1 int 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For simple dialogs the commands &amp;lt;code&amp;gt;DOMODALDIALOG FOREVER&amp;lt;/code&amp;gt; (instead of the message loop) or &amp;lt;code&amp;gt;DOMODALDIALOG BOX&amp;lt;/code&amp;gt; (instead of &amp;lt;code&amp;gt;BEGIN&amp;lt;/code&amp;gt;, message loop and &amp;lt;code&amp;gt;END&amp;lt;/code&amp;gt;) can be used. Instead of this function package also the dialog class &amp;lt;code&amp;gt;MODALDIALOG&amp;lt;/code&amp;gt; can be used to implement modal dialogs.&lt;br /&gt;
&lt;br /&gt;
Note that if you want a simple dialog which just displays a message, you can try &amp;lt;code&amp;gt;BUTIL MSGBOX&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;UM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note also, that the class &amp;lt;code&amp;gt;CDlgMap&amp;lt;/code&amp;gt; is a nice alternative to &amp;lt;code&amp;gt;DOMODALDIALOG&amp;lt;/code&amp;gt;, since it has the same features, but uses control names rather than control indices.&lt;br /&gt;
&lt;br /&gt;
﻿&lt;br /&gt;
==BEGIN==&lt;br /&gt;
&lt;br /&gt;
Display a modal dialog. The dialog item &amp;lt;var&amp;gt;dlg&amp;lt;/var&amp;gt; must be created and configured. For all other modal dialog functions which takes a dialog item argument, the same dialog item &amp;lt;var&amp;gt;dlg&amp;lt;/var&amp;gt; as for &amp;lt;code&amp;gt;BEGIN&amp;lt;/code&amp;gt; must be used.&lt;br /&gt;
&lt;br /&gt;
=====Usage:=====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DOMODALDIALOG BEGIN &amp;lt;var&amp;gt;dlg&amp;lt;/var&amp;gt; [ &amp;lt;var&amp;gt;clt&amp;lt;/var&amp;gt; ] [ ; &amp;lt;var&amp;gt;wndPos&amp;lt;/var&amp;gt; ]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Parameters:=====&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;var&amp;gt;dlg&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The name of the dialog (menu) item.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;var&amp;gt;ctl&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The index of the control to receive the focus.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;var&amp;gt;wndPos&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The x and y positions of the window or the keywords &amp;lt;code&amp;gt;left&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;center&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;right&amp;lt;/code&amp;gt; (x) or &amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;center&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;bottom&amp;lt;/code&amp;gt; (y) and the monitor in the following format:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x y ; monitor&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:If no monitor is specified, the first monitor is used.&lt;br /&gt;
&lt;br /&gt;
=====Result:=====&lt;br /&gt;
&lt;br /&gt;
void&lt;br /&gt;
&lt;br /&gt;
﻿&lt;br /&gt;
==BOX==&lt;br /&gt;
&lt;br /&gt;
This is an alternative message loop function for modal dialogs. The BOX function implements the whole dialog processing. First the dialog is displayed (BEGIN), the dialog loop is entered (FOREVER) and the dialog is removed (END). The programmer is only responible to create the dialog. The dialog can not use popup/context-menus and hotkeys.&lt;br /&gt;
&lt;br /&gt;
=====Usage:=====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DOMODALDIALOG BOX &amp;lt;var&amp;gt;dlg oclt cclt&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Parameters:=====&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;var&amp;gt;dlg&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The name of a dialog item.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;var&amp;gt;oclt&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The index of the OK control.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;var&amp;gt;cclt&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The index of the Cancel control.&lt;br /&gt;
&lt;br /&gt;
=====Result:=====&lt;br /&gt;
&lt;br /&gt;
The control index of the first command message.&lt;br /&gt;
&lt;br /&gt;
﻿&lt;br /&gt;
==END==&lt;br /&gt;
&lt;br /&gt;
Closes the last opened modal dialog window and deletes the dialog item.&lt;br /&gt;
&lt;br /&gt;
=====Usage:=====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DOMODALDIALOG END&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Result:=====&lt;br /&gt;
&lt;br /&gt;
void&lt;br /&gt;
&lt;br /&gt;
﻿&lt;br /&gt;
==FOREVER==&lt;br /&gt;
&lt;br /&gt;
This is an alternative message loop function for modal dialogs. The command FOREVER stays in the message loop (using LOOP) until the first COMMAND message is received. The programmer is responsible to create the dialog and to call the BEGIN and END function. All message processing is performed by the FOREVER function. The dialog can not use popup/context-menus and hotkeys.&lt;br /&gt;
&lt;br /&gt;
=====Usage:=====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DOMODALDIALOG FOREVER &amp;lt;var&amp;gt;dlg&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;oclt&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;cclt&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Parameters:=====&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;var&amp;gt;dlg&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The name of a dialog item.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;var&amp;gt;oclt&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The index of the OK control.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;var&amp;gt;cclt&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The index of the Cancel control.&lt;br /&gt;
&lt;br /&gt;
=====Result:=====&lt;br /&gt;
&lt;br /&gt;
The control index of the first command message.&lt;br /&gt;
&lt;br /&gt;
﻿&lt;br /&gt;
==LOOP==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;LOOP&amp;lt;/code&amp;gt; function implements the modal message loop. All non-dialog messages and messages not processed by previously installed message handlers are queued for later processing. The messages from the dialog are returned. Some messages are translated before they are returned.&lt;br /&gt;
&lt;br /&gt;
The following dialog messages are directly returned to the caller:&lt;br /&gt;
&lt;br /&gt;
commands and updates (&amp;quot;COMMAND|UPDATE ctrlidx&amp;quot;),&lt;br /&gt;
&lt;br /&gt;
popup menu selections (&amp;quot;POPUP itemindex&amp;quot;),&lt;br /&gt;
&lt;br /&gt;
context menu selections (&amp;quot;CMSTAT ctrlidx&amp;quot;) and&lt;br /&gt;
&lt;br /&gt;
key strokes (&amp;quot;KEY keycode keyname&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Translations are performed for the close/cancel-message (&amp;quot;COMMAND cclt&amp;quot;) and the okay-message (&amp;quot;COMMAND oclt&amp;quot;). Because most macros bind local or instance variables to dialog controls, the data exchange must be performed in the calling macro.&lt;br /&gt;
&lt;br /&gt;
=====Usage:=====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DOMODALDIALOG LOOP &amp;lt;var&amp;gt;dlg&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;oclt&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;cclt&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Parameters:=====&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;var&amp;gt;dlg&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The name of dialog (menu) item.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;var&amp;gt;oclt&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The index of the OKAY control. This is used for translating close messages into a &amp;lt;code&amp;gt;&amp;lt;code&amp;gt;COMMAND&amp;lt;/code&amp;gt; &amp;lt;var&amp;gt;oclt&amp;lt;/var&amp;gt; message.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;var&amp;gt;cclt&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The index of the CANCEL control. This is used for translating cancel messages into a &amp;lt;code&amp;gt;COMMAND&amp;lt;/code&amp;gt; &amp;lt;var&amp;gt;cclt&amp;lt;/var&amp;gt; message.&lt;br /&gt;
&lt;br /&gt;
=====Result:=====&lt;br /&gt;
&lt;br /&gt;
The id and parameters of dialog messages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;id par&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Array&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>