<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.visual-prolog.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=GalinaTchekmareva</id>
	<title>wiki.visual-prolog.com - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.visual-prolog.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=GalinaTchekmareva"/>
	<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Special:Contributions/GalinaTchekmareva"/>
	<updated>2026-04-09T16:16:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=A_Beginners_Guide_to_Visual_Prolog&amp;diff=4652</id>
		<title>A Beginners Guide to Visual Prolog</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=A_Beginners_Guide_to_Visual_Prolog&amp;diff=4652"/>
		<updated>2019-09-06T08:59:45Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{ambox|text= This book is about an &amp;#039;&amp;#039;&amp;#039;old&amp;#039;&amp;#039;&amp;#039; version of Visual Prolog, but it may still be useful.}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;A Beginners&amp;#039; Guide to Visual Prolog&amp;#039;&amp;#039; is a comprehensive book for absolute beginners written by &amp;#039;&amp;#039;Thomas W. de Boer&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
The book contains already published material, which is used with permision of the authors.&lt;br /&gt;
&lt;br /&gt;
The latest version of the book is devoted to Visual Prolog 7.2, but the principles are still more or less the same.&lt;br /&gt;
&lt;br /&gt;
This book is an introduction. It is meant it is for people, who know little about programming.  You should know the basics about computers and that it is possible to program them and that for a program you use a programming language. &lt;br /&gt;
&lt;br /&gt;
What when you know more? Then you should look for other sources.&lt;br /&gt;
&lt;br /&gt;
* When you are programmer and know about other languages like Visual Basic or C##, read the book [[Visual Prolog for Tyros]] by Eduardo Costa.&lt;br /&gt;
&lt;br /&gt;
* When you know about other languages and are curious about Prolog, read the basic the [[:Category:Tutorials|Tutorials]].&lt;br /&gt;
&lt;br /&gt;
* When you have experience in Prolog programming, look for details about Visual Prolog, object orientation in the [[:Category:Tutorials|Tutorials]] section of this site and Visual Prolog [[Language Reference]].&lt;br /&gt;
&lt;br /&gt;
=== Contents ===&lt;br /&gt;
&lt;br /&gt;
# The Integrated Development Environment&lt;br /&gt;
# Forms&lt;br /&gt;
# Simple user interfacing&lt;br /&gt;
# A closer look at the IDE&lt;br /&gt;
# Fundamental Prolog&lt;br /&gt;
# Data modeling in Prolog&lt;br /&gt;
# Using Forms or Dialogs and Controls: a minimal database&lt;br /&gt;
# Object oriented programming - classes and objects&lt;br /&gt;
# Declarations in Visual Prolog&lt;br /&gt;
# Recursion, lists and sorting&lt;br /&gt;
# Reading, writing, streams and files&lt;br /&gt;
# More data structures: Stacks, Queues and Trees&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Appendices&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
# Everything about Dialogs and Forms&lt;br /&gt;
# List manipulating predicates&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
* [https://www.visual-prolog.com/download/72/books/deBoer/VisualPrologBeginners.pdf A Beginners&amp;#039; Guide to Visual Prolog 7.2] (PDF format, English 279 pages).&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
* [https://www.visual-prolog.com/download/92/books/deBoer/deBoer-BeginnersGuide-examples.zip Examples from A Beginners&amp;#039; Guide to Visual Prolog 9.2] (ZIP format, 270 KB).&lt;br /&gt;
* [https://www.visual-prolog.com/download/73/books/deBoer/deBoer-BeginnersGuide-examples.zip Examples from A Beginners&amp;#039; Guide to Visual Prolog 7.3] (ZIP format, 440 KB).&lt;br /&gt;
* [https://www.visual-prolog.com/download/72/books/deBoer/deBoer-BeginnersGuide-examples.zip Examples from A Beginners&amp;#039; Guide to Visual Prolog 7.2] (ZIP format, 437 KB).&lt;br /&gt;
&lt;br /&gt;
=== See also ===  &lt;br /&gt;
[[A Beginners Guide to Visual Prolog in Chinese]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Books]]&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Key_Bindings&amp;diff=3868</id>
		<title>Ide/Key Bindings</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Key_Bindings&amp;diff=3868"/>
		<updated>2013-12-12T06:37:56Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|Key Bindings}}&lt;br /&gt;
&lt;br /&gt;
A number of Visual Prolog menu entries have accelerator keys (hot keys) associated with them.&lt;br /&gt;
&lt;br /&gt;
Beginning with Visual Prolog 7.0 some key binding have been changed to comply with Microsoft de facto standards. &lt;br /&gt;
The table below shows Visual Prolog 7.2 accelerator keys by functions.&lt;br /&gt;
&lt;br /&gt;
:{| {{prettytable}}&lt;br /&gt;
|- class=&amp;quot;header2&amp;quot;&lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Function&lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Key&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Edit&lt;br /&gt;
|-&lt;br /&gt;
| Copy&lt;br /&gt;
| Ctrl-C or Ctrl-Ins&lt;br /&gt;
|-&lt;br /&gt;
| Copy  Position&lt;br /&gt;
| Ctrl-Alt-Shift-C&lt;br /&gt;
|-&lt;br /&gt;
| Cut&lt;br /&gt;
| Ctrl-X or Shift-Del&lt;br /&gt;
|-&lt;br /&gt;
| Paste&lt;br /&gt;
| Ctrl-V or Shift-Ins&lt;br /&gt;
|-&lt;br /&gt;
| Undo&lt;br /&gt;
| Ctrl-Z&lt;br /&gt;
|-&lt;br /&gt;
| Redo&lt;br /&gt;
| Ctrl-Y or Ctrl-Shift-Z&lt;br /&gt;
|-&lt;br /&gt;
| Select All&lt;br /&gt;
| Ctrl-A&lt;br /&gt;
|-&lt;br /&gt;
| Select Current Word&lt;br /&gt;
| Ctrl-W&lt;br /&gt;
|-&lt;br /&gt;
| Code Expert&lt;br /&gt;
| Ctrl-Shift-W&lt;br /&gt;
|-&lt;br /&gt;
| Delete&lt;br /&gt;
| Del&lt;br /&gt;
|-&lt;br /&gt;
| Delete Line&lt;br /&gt;
| Ctrl-Shift-L&lt;br /&gt;
|-&lt;br /&gt;
| Delete to End of Line&lt;br /&gt;
| Ctrl-Shift-E&lt;br /&gt;
|-&lt;br /&gt;
| Delete to Start of Line&lt;br /&gt;
| Ctrl-Shift-H&lt;br /&gt;
|-&lt;br /&gt;
| Word Delete To End&lt;br /&gt;
| Ctrl-Del&lt;br /&gt;
|-&lt;br /&gt;
| Insert Predicate&lt;br /&gt;
| Ctrl-Shift-I&lt;br /&gt;
|-&lt;br /&gt;
| Replace&lt;br /&gt;
| Ctrl-H&lt;br /&gt;
|-&lt;br /&gt;
| Lower Case&lt;br /&gt;
| Ctrl-U&lt;br /&gt;
|-&lt;br /&gt;
| Upper Case&lt;br /&gt;
| Ctrl-Shift-U&lt;br /&gt;
|-&lt;br /&gt;
| Toggle Case&lt;br /&gt;
| Ctrl-Alt-U&lt;br /&gt;
|-&lt;br /&gt;
| Zoom In&lt;br /&gt;
| Ctrl-[+] or Ctrl-Scroll mouse wheel up&lt;br /&gt;
|-&lt;br /&gt;
| Zoom Out&lt;br /&gt;
| Ctrl-[-] or Ctrl-Scroll mouse wheel down&lt;br /&gt;
|-&lt;br /&gt;
| Zoom to Normal&lt;br /&gt;
| Ctrl-0&lt;br /&gt;
|-&lt;br /&gt;
| Comment Line(s)&lt;br /&gt;
| Ctrl-Alt-5&lt;br /&gt;
|-&lt;br /&gt;
| Uncomment Line(s)&lt;br /&gt;
| Ctrl-Alt-Shift-5&lt;br /&gt;
|-&lt;br /&gt;
| Duplcate Line&lt;br /&gt;
| Ctrl-Alt-R&lt;br /&gt;
|-&lt;br /&gt;
| Insert Date Stamp&lt;br /&gt;
| Ctrl-Shift-Y&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Navigation&lt;br /&gt;
|-&lt;br /&gt;
| Find&lt;br /&gt;
| Ctrl-F&lt;br /&gt;
|-&lt;br /&gt;
| Find in Files&lt;br /&gt;
| Ctrl-Shift-F&lt;br /&gt;
|-&lt;br /&gt;
| Find Next&lt;br /&gt;
| F3&lt;br /&gt;
|-&lt;br /&gt;
| Find Previous&lt;br /&gt;
| Shift-F3&lt;br /&gt;
|-&lt;br /&gt;
| Last Searchs Result Window&lt;br /&gt;
| Ctrl-Alt-S&lt;br /&gt;
|-&lt;br /&gt;
| Locate in Project Tree&lt;br /&gt;
| Ctrl-T&lt;br /&gt;
|-&lt;br /&gt;
| Go Back&lt;br /&gt;
| Ctrl-Shift-F8&lt;br /&gt;
|-&lt;br /&gt;
| Go to Address&lt;br /&gt;
| Ctrl-G&lt;br /&gt;
|-&lt;br /&gt;
| Go to Definition&lt;br /&gt;
| F12&lt;br /&gt;
Ctrl-Shift-C&lt;br /&gt;
|-&lt;br /&gt;
| Go To Declaration&lt;br /&gt;
| Ctrl-F12&lt;br /&gt;
Ctrl-Shift-D&lt;br /&gt;
|-&lt;br /&gt;
| Go to Related Files&lt;br /&gt;
| Ctrl-R&lt;br /&gt;
|-&lt;br /&gt;
| Go to Executing Predicate Source&lt;br /&gt;
| Ctrl-E&lt;br /&gt;
|-&lt;br /&gt;
| Go To Line&lt;br /&gt;
| Ctrl-F2&lt;br /&gt;
|-&lt;br /&gt;
| Go To Position on Clipboard&lt;br /&gt;
| Shift-F2&lt;br /&gt;
|-&lt;br /&gt;
| Go To Next Error&lt;br /&gt;
| F8&lt;br /&gt;
|-&lt;br /&gt;
| Go To Previous Error&lt;br /&gt;
| Shift-F8&lt;br /&gt;
|-&lt;br /&gt;
| Go To Next Bookmark&lt;br /&gt;
| F6&lt;br /&gt;
|-&lt;br /&gt;
| Go To Previous Bookmark&lt;br /&gt;
| Shift-F6&lt;br /&gt;
|-&lt;br /&gt;
| Window Navigation Dialog&lt;br /&gt;
| Ctrl-Tab or Ctrl-F6&lt;br /&gt;
|-&lt;br /&gt;
| Set/Remove bookmark&lt;br /&gt;
| Ctrl-K&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Compile&lt;br /&gt;
|-&lt;br /&gt;
| Build&lt;br /&gt;
| Ctrl-Shift-B&lt;br /&gt;
|-&lt;br /&gt;
| Stop Build&lt;br /&gt;
| Ctrl-Break&lt;br /&gt;
|-&lt;br /&gt;
| Build Resource Only&lt;br /&gt;
| Alt-F8&lt;br /&gt;
|-&lt;br /&gt;
| Compile&lt;br /&gt;
| Ctrl-F7&lt;br /&gt;
|-&lt;br /&gt;
| Rebuild Project&lt;br /&gt;
| Ctrl-Shift-Alt-B&lt;br /&gt;
|-&lt;br /&gt;
| Run&lt;br /&gt;
| Ctrl-F5&lt;br /&gt;
|-&lt;br /&gt;
| Run in Window&lt;br /&gt;
| Alt-F5&lt;br /&gt;
|-&lt;br /&gt;
| 32 bit Platform&lt;br /&gt;
| Ctrl-Alt-3&lt;br /&gt;
|-&lt;br /&gt;
| 64 bit Platform&lt;br /&gt;
| Ctrl-Alt-6&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Debug&lt;br /&gt;
|-&lt;br /&gt;
| Start Debugging &lt;br /&gt;
| F5&lt;br /&gt;
|-&lt;br /&gt;
| Run Debugging Skipping Soft Breakpoints&lt;br /&gt;
| Ctrl-Shift-F10&lt;br /&gt;
|-&lt;br /&gt;
| Stop Debugging&lt;br /&gt;
| Shift-F5&lt;br /&gt;
|-&lt;br /&gt;
| Restart Debugging&lt;br /&gt;
| Ctrl-Shift-F5&lt;br /&gt;
|-&lt;br /&gt;
| Refresh Debug Window&lt;br /&gt;
| Ctrl-R&lt;br /&gt;
|-&lt;br /&gt;
| CallStack Window&lt;br /&gt;
| Ctrl-Alt-C&lt;br /&gt;
|-&lt;br /&gt;
| Variable Window&lt;br /&gt;
| Ctrl-Alt-V&lt;br /&gt;
|-&lt;br /&gt;
| Watch Window&lt;br /&gt;
| Ctrl-Alt-W&lt;br /&gt;
|-&lt;br /&gt;
| Facts Window&lt;br /&gt;
| Ctrl-Alt-F&lt;br /&gt;
|-&lt;br /&gt;
| Delete Object from Facts Tree&lt;br /&gt;
Retract Fact(s)&lt;br /&gt;
| Ctrl-Del&lt;br /&gt;
|-&lt;br /&gt;
| Threads Window&lt;br /&gt;
| Ctrl-Alt-H&lt;br /&gt;
|-&lt;br /&gt;
| Modules Window&lt;br /&gt;
| Ctrl-Alt-L&lt;br /&gt;
|-&lt;br /&gt;
| Exceptions Window&lt;br /&gt;
| Ctrl-Alt-X&lt;br /&gt;
|-&lt;br /&gt;
| Breakpoints Window&lt;br /&gt;
| Ctrl-Alt-B&lt;br /&gt;
|-&lt;br /&gt;
| Bookmarks Window&lt;br /&gt;
| Ctrl-Alt-K&lt;br /&gt;
|-&lt;br /&gt;
| Disassembly Window&lt;br /&gt;
| Ctrl-Alt-D&lt;br /&gt;
|-&lt;br /&gt;
| Disassembly Window from Current Line&lt;br /&gt;
| Ctrl-D&lt;br /&gt;
|-&lt;br /&gt;
| Registers window&lt;br /&gt;
| Ctrl-Alt-G&lt;br /&gt;
|-&lt;br /&gt;
| Memory Dump 1 Window&lt;br /&gt;
| Ctrl-Alt-M&lt;br /&gt;
|-&lt;br /&gt;
| Toggle Breakpoint&lt;br /&gt;
| F9&lt;br /&gt;
|-&lt;br /&gt;
| Toggle Hard/Soft Breakpoint&lt;br /&gt;
| Ctrl-F9&lt;br /&gt;
|-&lt;br /&gt;
| Breakpoint Properties&lt;br /&gt;
| Alt-F9&lt;br /&gt;
|-&lt;br /&gt;
| Breakpoint -&amp;gt; Bookmark&lt;br /&gt;
| Ctrl-Alt-F9&lt;br /&gt;
|-&lt;br /&gt;
| Bookmark -&amp;gt;  Breakpoint&lt;br /&gt;
| Ctrl-Alt-F9&lt;br /&gt;
|-&lt;br /&gt;
| Step Into&lt;br /&gt;
| F11&lt;br /&gt;
|-&lt;br /&gt;
| Step out of&lt;br /&gt;
| Shift-F11&lt;br /&gt;
|-&lt;br /&gt;
| Step Over&lt;br /&gt;
| F10&lt;br /&gt;
|-&lt;br /&gt;
| Run To Cursor&lt;br /&gt;
| Ctrl-F10&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Project&lt;br /&gt;
|-&lt;br /&gt;
| New Project&lt;br /&gt;
| Ctrl-Shift-N&lt;br /&gt;
|-&lt;br /&gt;
| Open Project&lt;br /&gt;
| Ctrl-Shift-O&lt;br /&gt;
|-&lt;br /&gt;
| Add Module to Project&lt;br /&gt;
| Ctrl-Shift-A&lt;br /&gt;
|-&lt;br /&gt;
| Create Project Item&lt;br /&gt;
| Ctrl-N&lt;br /&gt;
|-&lt;br /&gt;
| Create Project Item in Existing Package&lt;br /&gt;
| Ctrl-Alt-N&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
IDE&lt;br /&gt;
|-&lt;br /&gt;
| Add qualification&lt;br /&gt;
| Ctrl-Shift-S&lt;br /&gt;
|-&lt;br /&gt;
| Close all other editors&lt;br /&gt;
| Ctrl-Q&lt;br /&gt;
|-&lt;br /&gt;
| Prune open editors&lt;br /&gt;
| Ctrl-Shift-Q&lt;br /&gt;
|-&lt;br /&gt;
| Close the active window&lt;br /&gt;
| Ctrl-F4&lt;br /&gt;
|-&lt;br /&gt;
| Project window&lt;br /&gt;
| Ctrl-Alt-P&lt;br /&gt;
|-&lt;br /&gt;
| Project Settings&lt;br /&gt;
| Alt-F7&lt;br /&gt;
|-&lt;br /&gt;
| Open File&lt;br /&gt;
| Ctrl-O&lt;br /&gt;
|-&lt;br /&gt;
| Save File&lt;br /&gt;
| F2&lt;br /&gt;
|-&lt;br /&gt;
| Save Project&lt;br /&gt;
| Ctrl-S&lt;br /&gt;
|-&lt;br /&gt;
| Source Browser&lt;br /&gt;
| Ctrl-B&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Other&lt;br /&gt;
|-&lt;br /&gt;
| Help&lt;br /&gt;
| F1&lt;br /&gt;
|-&lt;br /&gt;
| Messages Window&lt;br /&gt;
| Ctrl-Alt-O&lt;br /&gt;
|-&lt;br /&gt;
| Error/Warnings Window&lt;br /&gt;
| Ctrl-Alt-E&lt;br /&gt;
|-&lt;br /&gt;
| Print&lt;br /&gt;
| Ctrl-P&lt;br /&gt;
|-&lt;br /&gt;
| Exit IDE&lt;br /&gt;
| Alt-F4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ru:IDE:Горячие Клавиши]]&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Key_Bindings&amp;diff=3867</id>
		<title>Ide/Key Bindings</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Key_Bindings&amp;diff=3867"/>
		<updated>2013-12-11T09:35:38Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|Key Bindings}}&lt;br /&gt;
&lt;br /&gt;
A number of Visual Prolog menu entries have accelerator keys (hot keys) associated with them.&lt;br /&gt;
&lt;br /&gt;
Beginning with Visual Prolog 7.0 some key binding have been changed to comply with Microsoft de facto standards. &lt;br /&gt;
The table below shows Visual Prolog 7.2 accelerator keys by functions.&lt;br /&gt;
&lt;br /&gt;
:{| {{prettytable}}&lt;br /&gt;
|- class=&amp;quot;header2&amp;quot;&lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Function&lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Key&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Edit&lt;br /&gt;
|-&lt;br /&gt;
| Copy&lt;br /&gt;
| Ctrl-C or Ctrl-Ins&lt;br /&gt;
|-&lt;br /&gt;
| Copy  Position&lt;br /&gt;
| Ctrl-Alt-Shift-C&lt;br /&gt;
|-&lt;br /&gt;
| Cut&lt;br /&gt;
| Ctrl-X or Shift-Del&lt;br /&gt;
|-&lt;br /&gt;
| Paste&lt;br /&gt;
| Ctrl-V or Shift-Ins&lt;br /&gt;
|-&lt;br /&gt;
| Undo&lt;br /&gt;
| Ctrl-Z&lt;br /&gt;
|-&lt;br /&gt;
| Redo&lt;br /&gt;
| Ctrl-Y or Ctrl-Shift-Z&lt;br /&gt;
|-&lt;br /&gt;
| Select All&lt;br /&gt;
| Ctrl-A&lt;br /&gt;
|-&lt;br /&gt;
| Select Current Word&lt;br /&gt;
| Ctrl-W&lt;br /&gt;
|-&lt;br /&gt;
| Code Expert&lt;br /&gt;
| Ctrl-Shift-W&lt;br /&gt;
|-&lt;br /&gt;
| Delete&lt;br /&gt;
| Del&lt;br /&gt;
|-&lt;br /&gt;
| Delete Line&lt;br /&gt;
| Ctrl-Shift-L&lt;br /&gt;
|-&lt;br /&gt;
| Delete to End of Line&lt;br /&gt;
| Ctrl-Shift-E&lt;br /&gt;
|-&lt;br /&gt;
| Delete to Start of Line&lt;br /&gt;
| Ctrl-Shift-H&lt;br /&gt;
|-&lt;br /&gt;
| Word Delete To End&lt;br /&gt;
| Ctrl-Del&lt;br /&gt;
|-&lt;br /&gt;
| Insert Predicate&lt;br /&gt;
| Ctrl-Shift-I&lt;br /&gt;
|-&lt;br /&gt;
| Replace&lt;br /&gt;
| Ctrl-H&lt;br /&gt;
|-&lt;br /&gt;
| Lower Case&lt;br /&gt;
| Ctrl-U&lt;br /&gt;
|-&lt;br /&gt;
| Upper Case&lt;br /&gt;
| Ctrl-Shift-U&lt;br /&gt;
|-&lt;br /&gt;
| Toggle Case&lt;br /&gt;
| Ctrl-Alt-U&lt;br /&gt;
|-&lt;br /&gt;
| Zoom In&lt;br /&gt;
| Ctrl-[+] or Ctrl-Scroll mouse wheel up&lt;br /&gt;
|-&lt;br /&gt;
| Zoom Out&lt;br /&gt;
| Ctrl-[-] or Ctrl-Scroll mouse wheel down&lt;br /&gt;
|-&lt;br /&gt;
| Zoom to Normal&lt;br /&gt;
| Ctrl-0&lt;br /&gt;
|-&lt;br /&gt;
| Comment Line(s)&lt;br /&gt;
| Ctrl-Alt-5&lt;br /&gt;
|-&lt;br /&gt;
| Uncomment Line(s)&lt;br /&gt;
| Ctrl-Alt-Shift-5&lt;br /&gt;
|-&lt;br /&gt;
| Duplcate Line&lt;br /&gt;
| Ctrl-Alt-R&lt;br /&gt;
|-&lt;br /&gt;
| Insert Date Stamp&lt;br /&gt;
| Ctrl-Shift-Y&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Navigation&lt;br /&gt;
|-&lt;br /&gt;
| Find&lt;br /&gt;
| Ctrl-F&lt;br /&gt;
|-&lt;br /&gt;
| Find in Files&lt;br /&gt;
| Ctrl-Shift-F&lt;br /&gt;
|-&lt;br /&gt;
| Find Next&lt;br /&gt;
| F3&lt;br /&gt;
|-&lt;br /&gt;
| Find Previous&lt;br /&gt;
| Shift-F3&lt;br /&gt;
|-&lt;br /&gt;
| Last Searchs Result Window&lt;br /&gt;
| Ctrl-Alt-S&lt;br /&gt;
|-&lt;br /&gt;
| Locate in Project Tree&lt;br /&gt;
| Ctrl-T&lt;br /&gt;
|-&lt;br /&gt;
| Go Back&lt;br /&gt;
| Ctrl-Shift-F8&lt;br /&gt;
|-&lt;br /&gt;
| Go to Address&lt;br /&gt;
| Ctrl-G&lt;br /&gt;
|-&lt;br /&gt;
| Go to Definition&lt;br /&gt;
| F12&lt;br /&gt;
Ctrl-Shift-C&lt;br /&gt;
|-&lt;br /&gt;
| Go To Declaration&lt;br /&gt;
| Ctrl-F12&lt;br /&gt;
Ctrl-Shift-D&lt;br /&gt;
|-&lt;br /&gt;
| Go to Related Files&lt;br /&gt;
| Ctrl-R&lt;br /&gt;
|-&lt;br /&gt;
| Go to Executing Predicate Source&lt;br /&gt;
| Ctrl-E&lt;br /&gt;
|-&lt;br /&gt;
| Go To Line&lt;br /&gt;
| Ctrl-F2&lt;br /&gt;
|-&lt;br /&gt;
| Go To Position on Clipboard&lt;br /&gt;
| Shift-F2&lt;br /&gt;
|-&lt;br /&gt;
| Go To Next Error&lt;br /&gt;
| F8&lt;br /&gt;
|-&lt;br /&gt;
| Go To Previous Error&lt;br /&gt;
| Shift-F8&lt;br /&gt;
|-&lt;br /&gt;
| Go To Next Bookmark&lt;br /&gt;
| F6&lt;br /&gt;
|-&lt;br /&gt;
| Go To Previous Bookmark&lt;br /&gt;
| Shift-F6&lt;br /&gt;
|-&lt;br /&gt;
| Window Navigation Dialog&lt;br /&gt;
| Ctrl-Tab or Ctrl-F6&lt;br /&gt;
|-&lt;br /&gt;
| Set/Remove bookmark&lt;br /&gt;
| Ctrl-K&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Compile&lt;br /&gt;
|-&lt;br /&gt;
| Build&lt;br /&gt;
| Ctrl-Shift-B&lt;br /&gt;
|-&lt;br /&gt;
| Stop Build&lt;br /&gt;
| Ctrl-Break&lt;br /&gt;
|-&lt;br /&gt;
| Build Resource Only&lt;br /&gt;
| Alt-F8&lt;br /&gt;
|-&lt;br /&gt;
| Compile&lt;br /&gt;
| Ctrl-F7&lt;br /&gt;
|-&lt;br /&gt;
| Rebuild Project&lt;br /&gt;
| Ctrl-Shift-Alt-B&lt;br /&gt;
|-&lt;br /&gt;
| Run&lt;br /&gt;
| Ctrl-F5&lt;br /&gt;
|-&lt;br /&gt;
| Run in Window&lt;br /&gt;
| Alt-F5&lt;br /&gt;
|-&lt;br /&gt;
| 32 bit Platform&lt;br /&gt;
| Ctrl-Alt-3&lt;br /&gt;
|-&lt;br /&gt;
| 64 bit Platform&lt;br /&gt;
| Ctrl-Alt-6&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Debug&lt;br /&gt;
|-&lt;br /&gt;
| Start Debugging &lt;br /&gt;
| F5&lt;br /&gt;
|-&lt;br /&gt;
| Run Debugging Skipping Soft Breakpoints&lt;br /&gt;
| Ctrl-Shift-F10&lt;br /&gt;
|-&lt;br /&gt;
| Stop Debugging&lt;br /&gt;
| Shift-F5&lt;br /&gt;
|-&lt;br /&gt;
| Restart Debugging&lt;br /&gt;
| Ctrl-Shift-F5&lt;br /&gt;
|-&lt;br /&gt;
| Refresh Debug Window&lt;br /&gt;
| Ctrl-R&lt;br /&gt;
|-&lt;br /&gt;
| CallStack Window&lt;br /&gt;
| Ctrl-Alt-C&lt;br /&gt;
|-&lt;br /&gt;
| Variable Window&lt;br /&gt;
| Ctrl-Alt-V&lt;br /&gt;
|-&lt;br /&gt;
| Watch Window&lt;br /&gt;
| Ctrl-Alt-W&lt;br /&gt;
|-&lt;br /&gt;
| Facts Window&lt;br /&gt;
| Ctrl-Alt-F&lt;br /&gt;
|-&lt;br /&gt;
| Delete Object from Facts Tree&lt;br /&gt;
Retract Fact(s)&lt;br /&gt;
| Ctrl-Del&lt;br /&gt;
|-&lt;br /&gt;
| Threads Window&lt;br /&gt;
| Ctrl-Alt-H&lt;br /&gt;
|-&lt;br /&gt;
| Modules Window&lt;br /&gt;
| Ctrl-Alt-L&lt;br /&gt;
|-&lt;br /&gt;
| Breakpoints Window&lt;br /&gt;
| Ctrl-Alt-B&lt;br /&gt;
|-&lt;br /&gt;
| Bookmarks Window&lt;br /&gt;
| Ctrl-Alt-K&lt;br /&gt;
|-&lt;br /&gt;
| Disassembly Window&lt;br /&gt;
| Ctrl-Alt-D&lt;br /&gt;
|-&lt;br /&gt;
| Disassembly Window from Current Line&lt;br /&gt;
| Ctrl-D&lt;br /&gt;
|-&lt;br /&gt;
| Registers window&lt;br /&gt;
| Ctrl-Alt-G&lt;br /&gt;
|-&lt;br /&gt;
| Memory Dump 1 Window&lt;br /&gt;
| Ctrl-Alt-M&lt;br /&gt;
|-&lt;br /&gt;
| Toggle Breakpoint&lt;br /&gt;
| F9&lt;br /&gt;
|-&lt;br /&gt;
| Toggle Hard/Soft Breakpoint&lt;br /&gt;
| Ctrl-F9&lt;br /&gt;
|-&lt;br /&gt;
| Breakpoint Properties&lt;br /&gt;
| Alt-F9&lt;br /&gt;
|-&lt;br /&gt;
| Breakpoint -&amp;gt; Bookmark&lt;br /&gt;
| Ctrl-Alt-F9&lt;br /&gt;
|-&lt;br /&gt;
| Bookmark -&amp;gt;  Breakpoint&lt;br /&gt;
| Ctrl-Alt-F9&lt;br /&gt;
|-&lt;br /&gt;
| Step Into&lt;br /&gt;
| F11&lt;br /&gt;
|-&lt;br /&gt;
| Step out of&lt;br /&gt;
| Shift-F11&lt;br /&gt;
|-&lt;br /&gt;
| Step Over&lt;br /&gt;
| F10&lt;br /&gt;
|-&lt;br /&gt;
| Run To Cursor&lt;br /&gt;
| Ctrl-F10&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Project&lt;br /&gt;
|-&lt;br /&gt;
| New Project&lt;br /&gt;
| Ctrl-Shift-N&lt;br /&gt;
|-&lt;br /&gt;
| Open Project&lt;br /&gt;
| Ctrl-Shift-O&lt;br /&gt;
|-&lt;br /&gt;
| Add Module to Project&lt;br /&gt;
| Ctrl-Shift-A&lt;br /&gt;
|-&lt;br /&gt;
| Create Project Item&lt;br /&gt;
| Ctrl-N&lt;br /&gt;
|-&lt;br /&gt;
| Create Project Item in Existing Package&lt;br /&gt;
| Ctrl-Alt-N&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
IDE&lt;br /&gt;
|-&lt;br /&gt;
| Add qualification&lt;br /&gt;
| Ctrl-Shift-S&lt;br /&gt;
|-&lt;br /&gt;
| Close all other editors&lt;br /&gt;
| Ctrl-Q&lt;br /&gt;
|-&lt;br /&gt;
| Prune open editors&lt;br /&gt;
| Ctrl-Shift-Q&lt;br /&gt;
|-&lt;br /&gt;
| Close the active window&lt;br /&gt;
| Ctrl-F4&lt;br /&gt;
|-&lt;br /&gt;
| Project window&lt;br /&gt;
| Ctrl-Alt-P&lt;br /&gt;
|-&lt;br /&gt;
| Project Settings&lt;br /&gt;
| Alt-F7&lt;br /&gt;
|-&lt;br /&gt;
| Open File&lt;br /&gt;
| Ctrl-O&lt;br /&gt;
|-&lt;br /&gt;
| Save File&lt;br /&gt;
| F2&lt;br /&gt;
|-&lt;br /&gt;
| Save Project&lt;br /&gt;
| Ctrl-S&lt;br /&gt;
|-&lt;br /&gt;
| Source Browser&lt;br /&gt;
| Ctrl-B&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Other&lt;br /&gt;
|-&lt;br /&gt;
| Help&lt;br /&gt;
| F1&lt;br /&gt;
|-&lt;br /&gt;
| Messages Window&lt;br /&gt;
| Ctrl-Alt-O&lt;br /&gt;
|-&lt;br /&gt;
| Error/Warnings Window&lt;br /&gt;
| Ctrl-Alt-E&lt;br /&gt;
|-&lt;br /&gt;
| Print&lt;br /&gt;
| Ctrl-P&lt;br /&gt;
|-&lt;br /&gt;
| Exit IDE&lt;br /&gt;
| Alt-F4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ru:IDE:Горячие Клавиши]]&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Error_c025:_Error_during_the_file_operation.&amp;diff=3628</id>
		<title>Error c025: Error during the file operation.</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Error_c025:_Error_during_the_file_operation.&amp;diff=3628"/>
		<updated>2013-05-31T10:17:09Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: New page: Error during the file operation. File name: &amp;#039;&amp;lt;vp&amp;gt;FileName&amp;lt;/vp&amp;gt;&amp;#039;.  Operation: &amp;#039;&amp;lt;vp&amp;gt;Operation&amp;lt;/vp&amp;gt;&amp;#039;.  System message: &amp;lt;vp&amp;gt;SystemMessage&amp;lt;/vp&amp;gt;   The specified error message is generated, when ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Error during the file operation. File name: &amp;#039;&amp;lt;vp&amp;gt;FileName&amp;lt;/vp&amp;gt;&amp;#039;. &lt;br /&gt;
Operation: &amp;#039;&amp;lt;vp&amp;gt;Operation&amp;lt;/vp&amp;gt;&amp;#039;. &lt;br /&gt;
System message: &amp;lt;vp&amp;gt;SystemMessage&amp;lt;/vp&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The specified error message is generated, when the operation with the file failed. &lt;br /&gt;
&lt;br /&gt;
[[ru:Error c025: Error during the file operation.]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Compiler Errors and Warnings|025]]&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=How_to_Distribute_Applications&amp;diff=3627</id>
		<title>How to Distribute Applications</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=How_to_Distribute_Applications&amp;diff=3627"/>
		<updated>2013-05-29T13:15:41Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= How to Distribute Visual Prolog Applications =&lt;br /&gt;
&lt;br /&gt;
Running of target modules created by Visual Prolog IDE requires existence of some Visual Prolog runtime DLLs on the computer at which these modules will be used. Therefore, these Visual Prolog runtime DLLs should be supplied together with the distributed modules. (Visual Prolog target modules can be applications, DLLs, and COM objects.)&lt;br /&gt;
&lt;br /&gt;
The IDE provides you assistance in preparing the set of files, which should be distributed together with your target modules generated by Visual Prolog. At any moment you can use the &amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039; dialog to copy all Visual Prolog runtime DLLs, which are required to be distributed together with the generated target module, to the final directory of the project.&lt;br /&gt;
&lt;br /&gt;
Here we describe how to do this. When you activate the &amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039; dialog, you will see the picture like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_ApplicationExpert_General.png]]&lt;br /&gt;
&lt;br /&gt;
Notice that when the &amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039; dialog is opened to create a new project, then it has the edit fields instead of the table you see on the picture.&lt;br /&gt;
&lt;br /&gt;
By the default the project &amp;#039;&amp;#039;&amp;#039;Final&amp;#039;&amp;#039;&amp;#039; directory is &amp;#039;&amp;#039;&amp;#039;EXE&amp;#039;&amp;#039;&amp;#039; (or &amp;#039;&amp;#039;&amp;#039;EXE64&amp;#039;&amp;#039;&amp;#039; for 64bit targets) subdirectory of the project. It can be seen and changed if needed in the &amp;#039;&amp;#039;&amp;#039;Directories&amp;#039;&amp;#039;&amp;#039; tab of the &amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039; dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_ApplicationExpert_Directories.png]]&lt;br /&gt;
&lt;br /&gt;
IDE automatically copies Visual Prolog runtime DLLs to the project final directory. When it reports, that the target project module is successfully built, go into the project final directory. In this directory you will see the project target module like &amp;lt;vp&amp;gt;ProjectName.exe&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;ProjectName.dll&amp;lt;/vp&amp;gt; and the set of required Visual Prolog runtime DLLs.&lt;br /&gt;
&lt;br /&gt;
If you will distribute the project target module to the customers, who can do not have the same version of Visual Prolog installed on computers at which they will execute this target module, then you NEED to SUPPLY to them all DLLs, which are copied by the IDE into the project &amp;#039;&amp;#039;&amp;#039;Final&amp;#039;&amp;#039;&amp;#039; directory.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Prolog Development Center A/S grants you permission to supply Visual Prolog runtime DLLs, which was copied by the IDE to your project final directory, to your customers.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[How to Distribute Applications]]&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=How_to_Distribute_Applications&amp;diff=3626</id>
		<title>How to Distribute Applications</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=How_to_Distribute_Applications&amp;diff=3626"/>
		<updated>2013-05-29T13:04:50Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= How to Distribute Visual Prolog Applications =&lt;br /&gt;
&lt;br /&gt;
Running of target modules created by Visual Prolog IDE requires existence of some Visual Prolog runtime DLLs on the computer at which these modules will be used. Therefore, these Visual Prolog runtime DLLs should be supplied together with the distributed modules. (Visual Prolog target modules can be applications, DLLs, and COM objects.)&lt;br /&gt;
&lt;br /&gt;
The IDE provides you assistance in preparing the set of files, which should be distributed together with your target modules generated by Visual Prolog. At any moment you can use the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; dialog to copy all Visual Prolog runtime DLLs, which are required to be distributed together with the generated target module, to the final directory of the project.&lt;br /&gt;
&lt;br /&gt;
Here we describe how to do this. When you activate the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; dialog, you will see the picture like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_ApplicationExpert_General.png]]&lt;br /&gt;
&lt;br /&gt;
Notice that when the &amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039; dialog is opened to create a new project, then it has the edit fields instead of the table you see on the picture.&lt;br /&gt;
&lt;br /&gt;
By the default the project &amp;#039;&amp;#039;&amp;#039;Final&amp;#039;&amp;#039;&amp;#039; directory is &amp;#039;&amp;#039;&amp;#039;EXE&amp;#039;&amp;#039;&amp;#039; (or &amp;#039;&amp;#039;&amp;#039;EXE64&amp;#039;&amp;#039;&amp;#039; for 64bit targets) subdirectory of the project. It can be seen and changed if needed in the &amp;#039;&amp;#039;&amp;#039;Directories&amp;#039;&amp;#039;&amp;#039; tab of the &amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039; dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_ApplicationExpert_Directories.png]]&lt;br /&gt;
&lt;br /&gt;
IDE automatically copies Visual Prolog runtime DLLs to the project final directory. When it reports, that the target project module is successfully built, go into the project final directory. In this directory you will see the project target module like &amp;lt;vp&amp;gt;ProjectName.exe&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;ProjectName.dll&amp;lt;/vp&amp;gt; and the set of required Visual Prolog runtime DLLs.&lt;br /&gt;
&lt;br /&gt;
If you will distribute the project target module to the customers, who can do not have the same version of Visual Prolog installed on computers at which they will execute this target module, then you NEED to SUPPLY to them all DLLs, which are copied by the IDE into the project &amp;#039;&amp;#039;&amp;#039;Final&amp;#039;&amp;#039;&amp;#039; directory.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Prolog Development Center A/S grants you permission to supply Visual Prolog runtime DLLs, which was copied by the IDE to your project final directory, to your customers.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[How to Distribute Applications]]&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Key_Bindings&amp;diff=3625</id>
		<title>Ide/Key Bindings</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Key_Bindings&amp;diff=3625"/>
		<updated>2013-05-27T12:00:24Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|Key Bindings}}&lt;br /&gt;
&lt;br /&gt;
A number of Visual Prolog menu entries have accelerator keys (hot keys) associated with them.&lt;br /&gt;
&lt;br /&gt;
Beginning with Visual Prolog 7.0 some key binding have been changed to comply with Microsoft de facto standards. &lt;br /&gt;
The table below shows Visual Prolog 7.2 accelerator keys by functions.&lt;br /&gt;
&lt;br /&gt;
:{| {{prettytable}}&lt;br /&gt;
|- class=&amp;quot;header2&amp;quot;&lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Function&lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Key&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Edit&lt;br /&gt;
|-&lt;br /&gt;
| Copy&lt;br /&gt;
| Ctrl-C or Ctrl-Ins&lt;br /&gt;
|-&lt;br /&gt;
| Copy  Position&lt;br /&gt;
| Ctrl-Alt-Shift-C&lt;br /&gt;
|-&lt;br /&gt;
| Cut&lt;br /&gt;
| Ctrl-X or Shift-Del&lt;br /&gt;
|-&lt;br /&gt;
| Paste&lt;br /&gt;
| Ctrl-V or Shift-Ins&lt;br /&gt;
|-&lt;br /&gt;
| Undo&lt;br /&gt;
| Ctrl-Z&lt;br /&gt;
|-&lt;br /&gt;
| Redo&lt;br /&gt;
| Ctrl-Y or Ctrl-Shift-Z&lt;br /&gt;
|-&lt;br /&gt;
| Select All&lt;br /&gt;
| Ctrl-A&lt;br /&gt;
|-&lt;br /&gt;
| Select Current Word&lt;br /&gt;
| Ctrl-W&lt;br /&gt;
|-&lt;br /&gt;
| Box Editor: Size To Content&lt;br /&gt;
| Shift-F6&lt;br /&gt;
|-&lt;br /&gt;
| Code Expert&lt;br /&gt;
| Ctrl-Shift-W&lt;br /&gt;
|-&lt;br /&gt;
| Delete&lt;br /&gt;
| Del&lt;br /&gt;
|-&lt;br /&gt;
| Delete Line&lt;br /&gt;
| Ctrl-Shift-L&lt;br /&gt;
|-&lt;br /&gt;
| Delete to End of Line&lt;br /&gt;
| Ctrl-Shift-E&lt;br /&gt;
|-&lt;br /&gt;
| Delete to Start of Line&lt;br /&gt;
| Ctrl-Shift-H&lt;br /&gt;
|-&lt;br /&gt;
| Word Delete To End&lt;br /&gt;
| Ctrl-Del&lt;br /&gt;
|-&lt;br /&gt;
| Insert Predicate&lt;br /&gt;
| Ctrl-Shift-I&lt;br /&gt;
|-&lt;br /&gt;
| Replace&lt;br /&gt;
| Ctrl-H&lt;br /&gt;
|-&lt;br /&gt;
| Lower Case&lt;br /&gt;
| Ctrl-U&lt;br /&gt;
|-&lt;br /&gt;
| Upper Case&lt;br /&gt;
| Ctrl-Shift-U&lt;br /&gt;
|-&lt;br /&gt;
| Toggle Case&lt;br /&gt;
| Ctrl-Alt-U&lt;br /&gt;
|-&lt;br /&gt;
| Zoom In&lt;br /&gt;
| Ctrl-[+] or Ctrl-Scroll mouse wheel up&lt;br /&gt;
|-&lt;br /&gt;
| Zoom Out&lt;br /&gt;
| Ctrl-[-] or Ctrl-Scroll mouse wheel down&lt;br /&gt;
|-&lt;br /&gt;
| Zoom to Normal&lt;br /&gt;
| Ctrl-0&lt;br /&gt;
|-&lt;br /&gt;
| Comment Line(s)&lt;br /&gt;
| Ctrl-Alt-5&lt;br /&gt;
|-&lt;br /&gt;
| Uncomment Line(s)&lt;br /&gt;
| Ctrl-Alt-Shift-5&lt;br /&gt;
|-&lt;br /&gt;
| Duplcate Line&lt;br /&gt;
| Ctrl-Alt-R&lt;br /&gt;
|-&lt;br /&gt;
| Insert Date Stamp&lt;br /&gt;
| Ctrl-Shift-Y&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Navigation&lt;br /&gt;
|-&lt;br /&gt;
| Find&lt;br /&gt;
| Ctrl-F&lt;br /&gt;
|-&lt;br /&gt;
| Find in Files&lt;br /&gt;
| Ctrl-Shift-F&lt;br /&gt;
|-&lt;br /&gt;
| Find Next&lt;br /&gt;
| F3&lt;br /&gt;
|-&lt;br /&gt;
| Find Previous&lt;br /&gt;
| Shift-F3&lt;br /&gt;
|-&lt;br /&gt;
| Last Searchs Result Window&lt;br /&gt;
| Ctrl-Alt-S&lt;br /&gt;
|-&lt;br /&gt;
| Locate in Project Tree&lt;br /&gt;
| Ctrl-T&lt;br /&gt;
|-&lt;br /&gt;
| Go Back&lt;br /&gt;
| Ctrl-Shift-F8&lt;br /&gt;
|-&lt;br /&gt;
| Go to Address&lt;br /&gt;
| Ctrl-G&lt;br /&gt;
|-&lt;br /&gt;
| Go to Definition&lt;br /&gt;
| F12&lt;br /&gt;
Ctrl-Shift-C&lt;br /&gt;
|-&lt;br /&gt;
| Go To Declaration&lt;br /&gt;
| Ctrl-F12&lt;br /&gt;
Ctrl-Shift-D&lt;br /&gt;
|-&lt;br /&gt;
| Go to Related Files&lt;br /&gt;
| Ctrl-R&lt;br /&gt;
|-&lt;br /&gt;
| Go to Executing Predicate Source&lt;br /&gt;
| Ctrl-E&lt;br /&gt;
|-&lt;br /&gt;
| Go To Line&lt;br /&gt;
| Ctrl-F2&lt;br /&gt;
|-&lt;br /&gt;
| Go To Position on Clipboard&lt;br /&gt;
| Shift-F2&lt;br /&gt;
|-&lt;br /&gt;
| Go To Next Error&lt;br /&gt;
| F8&lt;br /&gt;
|-&lt;br /&gt;
| Go To Previous Error&lt;br /&gt;
| Shift-F8&lt;br /&gt;
|-&lt;br /&gt;
| Go To Next Bookmark&lt;br /&gt;
| F6&lt;br /&gt;
|-&lt;br /&gt;
| Go To Previous Bookmark&lt;br /&gt;
| Shift-F6&lt;br /&gt;
|-&lt;br /&gt;
| Window Navigation Dialog&lt;br /&gt;
| Ctrl-Tab or Ctrl-F6&lt;br /&gt;
|-&lt;br /&gt;
| Set/Remove bookmark&lt;br /&gt;
| Ctrl-K&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Compile&lt;br /&gt;
|-&lt;br /&gt;
| Build&lt;br /&gt;
| Ctrl-Shift-B&lt;br /&gt;
|-&lt;br /&gt;
| Stop Build&lt;br /&gt;
| Ctrl-Break&lt;br /&gt;
|-&lt;br /&gt;
| Build Resource Only&lt;br /&gt;
| Alt-F8&lt;br /&gt;
|-&lt;br /&gt;
| Compile&lt;br /&gt;
| Ctrl-F7&lt;br /&gt;
|-&lt;br /&gt;
| Rebuild Project&lt;br /&gt;
| Ctrl-Shift-Alt-B&lt;br /&gt;
|-&lt;br /&gt;
| Run&lt;br /&gt;
| Ctrl-F5&lt;br /&gt;
|-&lt;br /&gt;
| Run in Window&lt;br /&gt;
| Alt-F5&lt;br /&gt;
|-&lt;br /&gt;
| 32 bit Platform&lt;br /&gt;
| Ctrl-Alt-3&lt;br /&gt;
|-&lt;br /&gt;
| 64 bit Platform&lt;br /&gt;
| Ctrl-Alt-6&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Debug&lt;br /&gt;
|-&lt;br /&gt;
| Start Debugging &lt;br /&gt;
| F5&lt;br /&gt;
|-&lt;br /&gt;
| Run Debugging Skipping Soft Breakpoints&lt;br /&gt;
| Ctrl-Shift-F10&lt;br /&gt;
|-&lt;br /&gt;
| Stop Debugging&lt;br /&gt;
| Shift-F5&lt;br /&gt;
|-&lt;br /&gt;
| Restart Debugging&lt;br /&gt;
| Ctrl-Shift-F5&lt;br /&gt;
|-&lt;br /&gt;
| Refresh Debug Window&lt;br /&gt;
| Ctrl-R&lt;br /&gt;
|-&lt;br /&gt;
| CallStack Window&lt;br /&gt;
| Ctrl-Alt-C&lt;br /&gt;
|-&lt;br /&gt;
| Variable Window&lt;br /&gt;
| Ctrl-Alt-V&lt;br /&gt;
|-&lt;br /&gt;
| Watch Window&lt;br /&gt;
| Ctrl-Alt-W&lt;br /&gt;
|-&lt;br /&gt;
| Facts Window&lt;br /&gt;
| Ctrl-Alt-F&lt;br /&gt;
|-&lt;br /&gt;
| Delete Object from Facts Tree&lt;br /&gt;
Retract Fact(s)&lt;br /&gt;
| Ctrl-Del&lt;br /&gt;
|-&lt;br /&gt;
| Threads Window&lt;br /&gt;
| Ctrl-Alt-H&lt;br /&gt;
|-&lt;br /&gt;
| Modules Window&lt;br /&gt;
| Ctrl-Alt-L&lt;br /&gt;
|-&lt;br /&gt;
| Breakpoints Window&lt;br /&gt;
| Ctrl-Alt-B&lt;br /&gt;
|-&lt;br /&gt;
| Bookmarks Window&lt;br /&gt;
| Ctrl-Alt-K&lt;br /&gt;
|-&lt;br /&gt;
| Disassembly Window&lt;br /&gt;
| Ctrl-Alt-D&lt;br /&gt;
|-&lt;br /&gt;
| Disassembly Window from Current Line&lt;br /&gt;
| Ctrl-D&lt;br /&gt;
|-&lt;br /&gt;
| Registers window&lt;br /&gt;
| Ctrl-Alt-G&lt;br /&gt;
|-&lt;br /&gt;
| Memory Dump 1 Window&lt;br /&gt;
| Ctrl-Alt-M&lt;br /&gt;
|-&lt;br /&gt;
| Toggle Breakpoint&lt;br /&gt;
| F9&lt;br /&gt;
|-&lt;br /&gt;
| Toggle Hard/Soft Breakpoint&lt;br /&gt;
| Ctrl-F9&lt;br /&gt;
|-&lt;br /&gt;
| Breakpoint Properties&lt;br /&gt;
| Alt-F9&lt;br /&gt;
|-&lt;br /&gt;
| Breakpoint -&amp;gt; Bookmark&lt;br /&gt;
| Ctrl-Alt-F9&lt;br /&gt;
|-&lt;br /&gt;
| Bookmark -&amp;gt;  Breakpoint&lt;br /&gt;
| Ctrl-Alt-F9&lt;br /&gt;
|-&lt;br /&gt;
| Step Into&lt;br /&gt;
| F11&lt;br /&gt;
|-&lt;br /&gt;
| Step out of&lt;br /&gt;
| Shift-F11&lt;br /&gt;
|-&lt;br /&gt;
| Step Over&lt;br /&gt;
| F10&lt;br /&gt;
|-&lt;br /&gt;
| Run To Cursor&lt;br /&gt;
| Ctrl-F10&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Project&lt;br /&gt;
|-&lt;br /&gt;
| New Project&lt;br /&gt;
| Ctrl-Shift-N&lt;br /&gt;
|-&lt;br /&gt;
| Open Project&lt;br /&gt;
| Ctrl-Shift-O&lt;br /&gt;
|-&lt;br /&gt;
| Add Module to Project&lt;br /&gt;
| Ctrl-Shift-A&lt;br /&gt;
|-&lt;br /&gt;
| Create Project Item&lt;br /&gt;
| Ctrl-N&lt;br /&gt;
|-&lt;br /&gt;
| Create Project Item in Existing Package&lt;br /&gt;
| Ctrl-Alt-N&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
IDE&lt;br /&gt;
|-&lt;br /&gt;
| Add qualification&lt;br /&gt;
| Ctrl-Shift-S&lt;br /&gt;
|-&lt;br /&gt;
| Close all other editors&lt;br /&gt;
| Ctrl-Q&lt;br /&gt;
|-&lt;br /&gt;
| Prune open editors&lt;br /&gt;
| Ctrl-Shift-Q&lt;br /&gt;
|-&lt;br /&gt;
| Close the active window&lt;br /&gt;
| Ctrl-F4&lt;br /&gt;
|-&lt;br /&gt;
| Project window&lt;br /&gt;
| Ctrl-Alt-P&lt;br /&gt;
|-&lt;br /&gt;
| Project Settings&lt;br /&gt;
| Alt-F7&lt;br /&gt;
|-&lt;br /&gt;
| Open File&lt;br /&gt;
| Ctrl-O&lt;br /&gt;
|-&lt;br /&gt;
| Save File&lt;br /&gt;
| F2&lt;br /&gt;
|-&lt;br /&gt;
| Save Project&lt;br /&gt;
| Ctrl-S&lt;br /&gt;
|-&lt;br /&gt;
| Source Browser&lt;br /&gt;
| Ctrl-B&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Other&lt;br /&gt;
|-&lt;br /&gt;
| Help&lt;br /&gt;
| F1&lt;br /&gt;
|-&lt;br /&gt;
| Messages Window&lt;br /&gt;
| Ctrl-Alt-O&lt;br /&gt;
|-&lt;br /&gt;
| Error/Warnings Window&lt;br /&gt;
| Ctrl-Alt-E&lt;br /&gt;
|-&lt;br /&gt;
| Print&lt;br /&gt;
| Ctrl-P&lt;br /&gt;
|-&lt;br /&gt;
| Exit IDE&lt;br /&gt;
| Alt-F4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ru:IDE:Горячие Клавиши]]&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=How_to_Distribute_Applications&amp;diff=3624</id>
		<title>How to Distribute Applications</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=How_to_Distribute_Applications&amp;diff=3624"/>
		<updated>2013-05-24T09:57:53Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: New page: = How to Distribute Visual Prolog Applications =  Running of target modules created by Visual Prolog IDE requires existence of some Visual Prolog runtime DLLs on the computer at which thes...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= How to Distribute Visual Prolog Applications =&lt;br /&gt;
&lt;br /&gt;
Running of target modules created by Visual Prolog IDE requires existence of some Visual Prolog runtime DLLs on the computer at which these modules will be used. Therefore, these Visual Prolog runtime DLLs should be supplied together with the distributed modules. (Visual Prolog target modules can be applications, DLLs, and COM objects.)&lt;br /&gt;
&lt;br /&gt;
The IDE provides you assistance in preparing the set of files, which should be distributed together with your target modules generated by Visual Prolog. At any moment you can use the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; dialog to copy all Visual Prolog runtime DLLs, which are required to be distributed together with the generated target module, to the final directory of the project.&lt;br /&gt;
&lt;br /&gt;
Here we describe how to do this. When you activate the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; dialog, you will see the picture like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_ApplicationExpert_General.png]]&lt;br /&gt;
&lt;br /&gt;
Notice that when the &amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039; dialog is opened to create a new project, then it has the edit fields instead of the table you see on the picture.&lt;br /&gt;
&lt;br /&gt;
By the default the project &amp;#039;&amp;#039;&amp;#039;Final&amp;#039;&amp;#039;&amp;#039; directory is &amp;#039;&amp;#039;&amp;#039;EXE&amp;#039;&amp;#039;&amp;#039; (or &amp;#039;&amp;#039;&amp;#039;EXE64&amp;#039;&amp;#039;&amp;#039; for 64bit targets) subdirectory of the project. It can be seen and changed if needed in the &amp;#039;&amp;#039;&amp;#039;Directories&amp;#039;&amp;#039;&amp;#039; tab of the &amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039; dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_ApplicationExpert_Directories.png]]&lt;br /&gt;
&lt;br /&gt;
IDE automatically copies Visual Prolog runtime DLLs to the project final directory. When it reports, that the target project module is successfully built, go into the project final directory. In this directory you will see the project target module like &amp;lt;vp&amp;gt;ProjectName.exe&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;ProjectName.dll&amp;lt;/vp&amp;gt; and the set of required Visual Prolog runtime DLLs.&lt;br /&gt;
&lt;br /&gt;
If you will distribute the project target module to the customers, who can do not have the same version of Visual Prolog installed on computers at which they will execute this target module, then you NEED to SUPPLY to them all DLLs, which are copied by the IDE into the project &amp;#039;&amp;#039;&amp;#039;Final&amp;#039;&amp;#039;&amp;#039; directory.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Prolog Development Center A/S grants you permission to supply Visual Prolog runtime DLLs, which was copied by the IDE to your project final directory, to your customers.&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=File:Ide_ApplicationExpert_Directories.png&amp;diff=3623</id>
		<title>File:Ide ApplicationExpert Directories.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=File:Ide_ApplicationExpert_Directories.png&amp;diff=3623"/>
		<updated>2013-05-24T09:56:27Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/IDE_Dialogs&amp;diff=3622</id>
		<title>Ide/IDE Dialogs</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/IDE_Dialogs&amp;diff=3622"/>
		<updated>2013-05-24T08:52:19Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|IDE Dialogs}}&lt;br /&gt;
&lt;br /&gt;
=== Warning: These files will be overwritten ===&lt;br /&gt;
&lt;br /&gt;
When you create a new project with the IDE {{ide|Project Settings#General Tab|Project Settings}} facility, you can specify the &amp;#039;&amp;#039;&amp;#039;Subdirectory&amp;#039;&amp;#039;&amp;#039; in which the project will be placed (notice that usually this name is generated automatically from the specified project name). Notice that each project contains several standard files (always automatically generated by the IDE) with standard names. Therefore, if the specified subdirectory name coincides with one in which a previously created project already exists, then these 2 projects should have several standard files with the same names. Because the old versions of these files can be incompatible with the new project, the {{ide|Project Settings#General Tab|Project Settings}} generates the warning dialog with the title:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;These files will be overwritten:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
In the central pane of this dialog you see a list of files which should be overwritten.&lt;br /&gt;
&lt;br /&gt;
You can select the following actions:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If you select this button, then the old versions of files specified in the list will be overwritten with the new versions.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If you select this button, then no files will be overwritten, the IDE returns into the {{ide|Project Settings#General Tab|Project Settings}} dialog where you can the specify other name in the &amp;#039;&amp;#039;&amp;#039;Subdirectory&amp;#039;&amp;#039;&amp;#039; control.&lt;br /&gt;
&lt;br /&gt;
=== Resolve Ambiguity ===&lt;br /&gt;
&lt;br /&gt;
This dialog appears when you execute the:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Go to Declaration&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;Ctrl+Shift+D&amp;#039;&amp;#039;&amp;#039;),&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Go to Definition&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;Ctrl+Shift+C&amp;#039;&amp;#039;&amp;#039;), or&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Show Visual Prolog Help&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F1&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
commands and the cursor points onto a &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot;, which has several versions of the &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot; references in the generated {{ide|Code Experts#Source Browser|browse information}} and cannot resolve this ambiguity using all additional information about the &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot;, which The IDE can gather in the edited file.&lt;br /&gt;
&lt;br /&gt;
Correspondently it have titles:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Resolve Ambiguity of &amp;quot;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;quot; Declaration&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Resolve Ambiguity of &amp;quot;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;quot; Definition&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Choose &amp;quot;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;quot; to Show Help Topic&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
These dialogs display lists of references to the &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot; with additional information (gathered in the generated by the compiler {{ide|Code Experts#Source Browser|browse information}}, which helps you to resolve ambiguity of the &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Names are prefixed with the same {{ide|Project Tree#Icons Used in the Project Window|icons}}, which are used in the Project window.&lt;br /&gt;
&lt;br /&gt;
To continue an initiated command execution you need to select (click) one of displayed lines containing unique references to the &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Send Bug Report to Support ===&lt;br /&gt;
&lt;br /&gt;
Normally you should use &amp;#039;&amp;#039;&amp;#039;Help | Send Bug Report...&amp;#039;&amp;#039;&amp;#039; IDE command to send a bug report or feedback. You can also send a mail directly to the &amp;#039;&amp;#039;&amp;#039;Visual Prolog Support Service&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;About Visual Prolog Support Service&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Visual Prolog Support&amp;#039;&amp;#039;&amp;#039; is responsible for answering questions only about bugs and problems with using of Visual Prolog language, the IDE, and other tools and packages supplied in &amp;#039;&amp;#039;&amp;#039;Commercial&amp;#039;&amp;#039;&amp;#039; editions of Visual Prolog.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Guidelines for preparing Bug Reports to Visual Prolog Support&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Please check the following information sources before submitting your E-mail:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* [http://www.visual-prolog.com/vip6/support/faq.htm Frequently Asked Questions]&lt;br /&gt;
* [http://kb.visual-prolog.com Visual Prolog Knowledge Base]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Please do not ask Visual Prolog Support about general problems like: &amp;quot;Visual Prolog and Fuzzy Logic?&amp;quot;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
For things please use [http://discuss.visual-prolog.com/ Visual Prolog Discussion Forum], where you are free to discuss any question deals with Visual Prolog. Anybody can read the debate, but you need to register if you want to make postings.&lt;br /&gt;
&lt;br /&gt;
Prolog Development Center will follow and participate as much as possible in the debates. But we cannot make any &amp;quot;answer guarantee&amp;quot;; this is mainly your forum.&lt;br /&gt;
&lt;br /&gt;
This forum will receive all major announcements from Prolog Development Center.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Your message MUST contain information generated by &amp;quot;Help | Send Bug Report | Show Details&amp;quot; IDE command.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This information contains some parameters about your computer and your project that are useful for correct understanding of the problem. It should be copied to the mail.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4. How to write a message:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;To:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The address of Visual Prolog International Support Group is: &amp;#039;&amp;#039;&amp;#039;support@visual-prolog.com&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Subject:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Use a short, precise, and relevant Subject (title line). Please, do not use subjects like: &amp;#039;&amp;#039;&amp;#039;My 1st problem with Prolog&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Message Text:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:One problem per message, please.&lt;br /&gt;
*:Here you should describe your problem as detailed and precise, as it is possible.&lt;br /&gt;
*:Please supply examples of code illustrating your problem.&lt;br /&gt;
*:The information supplied in your message should be sufficient to reproduce your problem on our computers.&lt;br /&gt;
&lt;br /&gt;
Please follow the above guidelines when you E-mail Bug Reports to Visual Prolog Support.&lt;br /&gt;
&lt;br /&gt;
Regards&lt;br /&gt;
&lt;br /&gt;
The Visual Prolog International Support Group&lt;br /&gt;
&lt;br /&gt;
support@visual-prolog.com&lt;br /&gt;
&lt;br /&gt;
=== Replace Text ===&lt;br /&gt;
&lt;br /&gt;
Using this dialog you can find and replace each or every occurrence of a text pattern (a string or a regular expression) in the edited file.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039; box, type in the search string, or &amp;#039;&amp;#039;regular expression&amp;#039;&amp;#039;, or choose a previous string from the drop-down list.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;New Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Type the replacement string, or &amp;#039;&amp;#039;regular replacement expression&amp;#039;&amp;#039; in the &amp;#039;&amp;#039;&amp;#039;New Text&amp;#039;&amp;#039;&amp;#039; box, or choose a previous string from the drop-down list. Notice that &amp;#039;&amp;#039;regular replacement expressions&amp;#039;&amp;#039; have limited syntax regarding to &amp;#039;&amp;#039;regular expressions&amp;#039;&amp;#039; used in the  &amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039;  patterns.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Origin&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Options in the &amp;#039;&amp;#039;&amp;#039;Origin&amp;#039;&amp;#039;&amp;#039; group box defines the file scope in which the string should be searched.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Entire Scope&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Defines that the string should be searched in all file.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;From Cursor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Defines that the string should be searched beginning from the current cursor position.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Selected Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Defines that the string should be searched only in the selected piece of the edited text.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Direction&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Options in the &amp;#039;&amp;#039;&amp;#039;Direction&amp;#039;&amp;#039;&amp;#039; group box defines the direction in which the string should be searched.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Forward&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Search the document below the insertion point.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Backward&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Search the document above the insertion point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Options&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this group box you defines the search options.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Case Sensitive&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Find strings having the given pattern of uppercase and lowercase letters.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Whole Words Only&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Find occurrences of the string as whole words. It only displays instances of the Find what string that are matched in complete words. For example, a search for &amp;quot;my::List&amp;quot; will return &amp;quot;my::List&amp;quot; but not &amp;quot;cmy::List&amp;quot; or &amp;quot;my::Listtt&amp;quot;.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Use Regular Expressions&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:See  {{ide|IDE Dialogs#Regular Expressions|Regular Expressions}} for details.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Replace&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Replace&amp;#039;&amp;#039;&amp;#039; button to replace the current selection or to invoke searching of the specified string (regular expression) with the specified options if there are no selection.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Find Next&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039; button to invoke searching of the next occurrence of the specified string (regular expression) with the specified options.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Change All&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Change All&amp;#039;&amp;#039;&amp;#039; button to replace all occurrences of the search text, in the specified scope.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Close this dialog.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Help&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Displays this help topic.&lt;br /&gt;
&lt;br /&gt;
=== Find Text in Files ===&lt;br /&gt;
&lt;br /&gt;
Using this dialog you can find each occurrence of a combination of any characters, including uppercase and lowercase characters, whole words, or parts of words, or regular expressions in the specified group of files.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_FindInFiles.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039; box, type in the search string, or &amp;#039;&amp;#039;regular expression&amp;#039;&amp;#039;, or choose a previous string from the drop-down list.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Find in All Opened Editors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Check this option if you wish that the IDE search the specified string only in that text files, which are currently opened in the IDE text editors.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Find in Project Files Only&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Check this option if you wish that the IDE search the specified string only in text files, which are parts of the project currently loaded into the IDE.&lt;br /&gt;
:This button is disabled when the project is not loaded.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Show Search Results in New Window&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:If this option is checked ON, then the IDE will open new &amp;#039;&amp;#039;&amp;#039;Search results&amp;#039;&amp;#039;&amp;#039; window each time the search is completed, otherwise it will display search results in the same window.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;In Files:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this list editor you can specify (or select from the list of previously used) the file mask which will be used to restrict files in which the IDE will search for the string. For example, you can use &amp;lt;vp&amp;gt;*&amp;lt;/vp&amp;gt; operator to specify that any sub-string can be used instead of this operator.&lt;br /&gt;
:This option is disabled when the &amp;#039;&amp;#039;&amp;#039;Find in All Opened Editors&amp;#039;&amp;#039;&amp;#039; option is checked ON.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;In Folder:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this list editor you can specify (or select from the list of previously used) the folder, which will be used to restrict files in which the IDE will search for the string.&lt;br /&gt;
:This option is disabled when the &amp;#039;&amp;#039;&amp;#039;Find in All Opened Editors&amp;#039;&amp;#039;&amp;#039; option is checked ON.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Browse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press this button to open the &amp;#039;&amp;#039;&amp;#039;Set New Directory&amp;#039;&amp;#039;&amp;#039; dialog in which you can select the folder, which name will be inserted into the &amp;#039;&amp;#039;&amp;#039;In Folder&amp;#039;&amp;#039;&amp;#039; field.&lt;br /&gt;
:&amp;lt;br/&amp;gt;Notice that when &amp;#039;&amp;#039;&amp;#039;Find in Project Files Only&amp;#039;&amp;#039;&amp;#039; is checked ON, then this dialog will gives you access only to the folders known to the project.&lt;br /&gt;
:This button is disabled when the &amp;#039;&amp;#039;&amp;#039;Find in All Opened Editors&amp;#039;&amp;#039;&amp;#039; option is checked ON.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Search Subfolders&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When this option is checked ON (the default), then the IDE will search in all subfolders of the folder specified in the &amp;#039;&amp;#039;&amp;#039;In Folder&amp;#039;&amp;#039;&amp;#039; field.&lt;br /&gt;
:Otherwise, search will be only in the files directly in the folder specified in the &amp;#039;&amp;#039;&amp;#039;In Folder&amp;#039;&amp;#039;&amp;#039; field.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Whole Words Only&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Find occurrences of the string as whole words. It only displays instances of the Find what string that are matched in complete words. For example, a search for &amp;quot;my::List&amp;quot; will return &amp;quot;my::List&amp;quot; but not &amp;quot;cmy::List&amp;quot; or &amp;quot;my::Listtt&amp;quot;.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Case Sensitive&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:The selected item specifies whether the search should match case of the whole search string (&amp;#039;&amp;#039;&amp;#039;Case Sensitive&amp;#039;&amp;#039;&amp;#039;), ignore the case (&amp;#039;&amp;#039;&amp;#039;Case Insensitive&amp;#039;&amp;#039;&amp;#039;) or match the case of the first character of the search string (&amp;#039;&amp;#039;&amp;#039;Prolog Sensitive&amp;#039;&amp;#039;&amp;#039;). The last option is unavailable, when &amp;#039;&amp;#039;&amp;#039;Regular Expressions&amp;#039;&amp;#039;&amp;#039; option is checked ON.&lt;br /&gt;
&lt;br /&gt;
==== Regular Expressions ====&lt;br /&gt;
&lt;br /&gt;
Provides possibility to perform advanced string searching operations (searching, matching and replacing) using regular expressions.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Regular Expressions &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:A &amp;#039;&amp;#039;regular expression&amp;#039;&amp;#039; (or pattern) is a text string that describes some (mathematical) group of strings. A string &amp;lt;vp&amp;gt;S&amp;lt;/vp&amp;gt; &amp;quot;matches&amp;quot; a regular expression &amp;lt;vp&amp;gt;R&amp;lt;/vp&amp;gt; if &amp;lt;vp&amp;gt;S&amp;lt;/vp&amp;gt; belongs to the set of strings described by &amp;lt;vp&amp;gt;R&amp;lt;/vp&amp;gt;. Using regular expression, you can:&lt;br /&gt;
:* check whether the specified string matches the specified pattern;&lt;br /&gt;
:* search within a string for a substring matching the specified pattern;&lt;br /&gt;
:* perform replacing within matched substrings.&lt;br /&gt;
:Some regular expressions can match only one substring. That is, a set of strings such regular expression describes has only one member. For example, the regular expression &amp;#039;&amp;#039;&amp;#039;foo&amp;#039;&amp;#039;&amp;#039; matches only the substring &amp;#039;&amp;#039;&amp;#039;foo&amp;#039;&amp;#039;&amp;#039; and no others. Other regular expressions can match more than one substring. That is, a set of strings such regular expression describes has more than one member. For example, the regular expression &amp;lt;vp&amp;gt;f*&amp;lt;/vp&amp;gt; matches the set of strings made up of any number (including zero) of &amp;#039;&amp;#039;&amp;#039;f&amp;#039;&amp;#039;&amp;#039; characters. Some characters in regular expressions match themselves (such as &amp;#039;&amp;#039;&amp;#039;f&amp;#039;&amp;#039;&amp;#039;) and some do not match to any concrete character (such as &amp;lt;vp&amp;gt;*&amp;lt;/vp&amp;gt;). Characters that do not match themselves are used to specify patterns, which describe sets of different strings.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Regular Expression Syntax&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:See the pfc\regEx\packRegEx package for more details of regular expression syntax.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039; button to invoke searching of the specified string (regular expression) with the specified options.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Stop&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Stop&amp;#039;&amp;#039;&amp;#039; button to stop searching.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Help&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Displays this help topic.&lt;br /&gt;
&lt;br /&gt;
==== Search results ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_FindInFilesResults.png]]&lt;br /&gt;
&lt;br /&gt;
This window displays the table which contains the names of files in which the specified string is found, the line number and the position, where the specified text is located and the content of the whole line.&lt;br /&gt;
&lt;br /&gt;
If you double-click any filename, then this file will be opened in the text editor.&lt;br /&gt;
&lt;br /&gt;
=== Find Text ===&lt;br /&gt;
&lt;br /&gt;
Using this dialog you can find each occurrence of a combination of any characters, including uppercase and lowercase characters, whole words, or parts of words, or regular expressions.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039; box, type in the search string, or regular expression, or choose a previous string from the drop-down list.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Origin&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Options in the &amp;#039;&amp;#039;&amp;#039;Origin&amp;#039;&amp;#039;&amp;#039; group box defines the file scope in which the string should be searched.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Entire Scope&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the string should be searched in all file.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;From Cursor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the string should be searched beginning from the current cursor position.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Selected Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the string should be searched only in the selected piece of the edited text.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Direction&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Options in the &amp;#039;&amp;#039;&amp;#039;Direction&amp;#039;&amp;#039;&amp;#039; group box defines the direction in which the string should be searched.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Forward&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Search the document below the insertion point.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Backward&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Search the document above the insertion point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Options&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this group box you defines the search options.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Case Sensitive&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Find strings having the given pattern of uppercase and lowercase letters.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Whole Words Only&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Find occurrences of the string as whole words.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Use Regular Expressions&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::See {{ide|IDE Dialogs#Regular Expressions|Regular Expressions}} for details.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039; button to invoke searching of the specified string (regular expression) with the specified options.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Close this dialog.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Help&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Displays this help topic.&lt;br /&gt;
&lt;br /&gt;
=== Window Navigation Dialog ===&lt;br /&gt;
&lt;br /&gt;
The order, in which &amp;#039;&amp;#039;&amp;#039;Ctrl-TAB&amp;#039;&amp;#039;&amp;#039; shifts between IDE windows, has been changed to visit most-recently-visited windows first.&lt;br /&gt;
&lt;br /&gt;
Furthermore, &amp;#039;&amp;#039;&amp;#039;Ctrl-TAB&amp;#039;&amp;#039;&amp;#039; also brings up a navigation dialog listing all the open windows. The dialog stays up as long as Ctrl-key is pressed. In this dialog you can see the windows in the order they will be shifted to, but you can also choose a window directly using the mouse or the arrow keys. If you press letters the list will be filtered to windows starting with the letters you have pressed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ctrl-F1&amp;#039;&amp;#039;&amp;#039; Help,&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ctrl-Del&amp;#039;&amp;#039;&amp;#039; will close the selected window,&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ctrl-BackSpace&amp;#039;&amp;#039;&amp;#039; removes the last letter,&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ctrl-Alt&amp;#039;&amp;#039;&amp;#039; switches on/off showing only read-write files.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ctrl-*&amp;#039;&amp;#039;&amp;#039; switches on/off alternate filter by letter.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Key_Bindings&amp;diff=3621</id>
		<title>Ide/Key Bindings</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Key_Bindings&amp;diff=3621"/>
		<updated>2013-05-23T13:19:21Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|Key Bindings}}&lt;br /&gt;
&lt;br /&gt;
A number of Visual Prolog menu entries have accelerator keys (hot keys) associated with them.&lt;br /&gt;
&lt;br /&gt;
Beginning with Visual Prolog 7.0 some key binding have been changed to comply with Microsoft de facto standards. &lt;br /&gt;
The table below shows Visual Prolog 7.2 accelerator keys by functions.&lt;br /&gt;
&lt;br /&gt;
:{| {{prettytable}}&lt;br /&gt;
|- class=&amp;quot;header2&amp;quot;&lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Function&lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Key&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Edit&lt;br /&gt;
|-&lt;br /&gt;
| Copy&lt;br /&gt;
| Ctrl-C&lt;br /&gt;
|-&lt;br /&gt;
| Cut&lt;br /&gt;
| Ctrl-X or Shift-Del&lt;br /&gt;
|-&lt;br /&gt;
| Paste&lt;br /&gt;
| Ctrl-V or Shift-Ins&lt;br /&gt;
|-&lt;br /&gt;
| Paste&lt;br /&gt;
| Ctrl-Ins&lt;br /&gt;
|-&lt;br /&gt;
| Undo&lt;br /&gt;
| Ctrl-Z&lt;br /&gt;
|-&lt;br /&gt;
| Redo&lt;br /&gt;
| Ctrl-Y or Ctrl-Shift-Z&lt;br /&gt;
|-&lt;br /&gt;
| Select All&lt;br /&gt;
| Ctrl-A&lt;br /&gt;
|-&lt;br /&gt;
| Select Current Word&lt;br /&gt;
| Ctrl-W&lt;br /&gt;
|-&lt;br /&gt;
| Box Editor: Size To Content&lt;br /&gt;
| Shift-F6&lt;br /&gt;
|-&lt;br /&gt;
| Code Expert&lt;br /&gt;
| Ctrl-Shift-W&lt;br /&gt;
|-&lt;br /&gt;
| Delete&lt;br /&gt;
| Del&lt;br /&gt;
|-&lt;br /&gt;
| Delete Line&lt;br /&gt;
| Ctrl-Shift-L&lt;br /&gt;
|-&lt;br /&gt;
| Delete to End of Line&lt;br /&gt;
| Ctrl-Shift-E&lt;br /&gt;
|-&lt;br /&gt;
| Word Delete To End&lt;br /&gt;
Delete Object from Facts Tree&lt;br /&gt;
Retract Fact(s)&lt;br /&gt;
| Ctrl-Del&lt;br /&gt;
|-&lt;br /&gt;
| Insert Predicate&lt;br /&gt;
| Ctrl-Shift-I&lt;br /&gt;
|-&lt;br /&gt;
| Replace&lt;br /&gt;
| Ctrl-H&lt;br /&gt;
|-&lt;br /&gt;
| Lower Case&lt;br /&gt;
| Ctrl-U&lt;br /&gt;
|-&lt;br /&gt;
| Upper Case&lt;br /&gt;
| Ctrl-Shift-U&lt;br /&gt;
|-&lt;br /&gt;
| Toggle Case&lt;br /&gt;
| Ctrl-Alt-U&lt;br /&gt;
|-&lt;br /&gt;
| Zoom In&lt;br /&gt;
| Ctrl-[+] or Ctrl-Scroll mouse wheel up&lt;br /&gt;
|-&lt;br /&gt;
| Zoom Out&lt;br /&gt;
| Ctrl-[-] or Ctrl-Scroll mouse wheel down&lt;br /&gt;
|-&lt;br /&gt;
| Zoom to Normal&lt;br /&gt;
| Ctrl-0&lt;br /&gt;
|-&lt;br /&gt;
| Comment Line(s)&lt;br /&gt;
| Ctrl-Alt-5&lt;br /&gt;
|-&lt;br /&gt;
| Uncomment Line(s)&lt;br /&gt;
| Ctrl-Alt-Shift-5&lt;br /&gt;
|-&lt;br /&gt;
| Duplcate Line&lt;br /&gt;
| Ctrl-Alt-R&lt;br /&gt;
|-&lt;br /&gt;
| Insert Date Stamp&lt;br /&gt;
| Ctrl-Shift-Y&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Navigation&lt;br /&gt;
|-&lt;br /&gt;
| Find&lt;br /&gt;
| Ctrl-F&lt;br /&gt;
|-&lt;br /&gt;
| Find in Files&lt;br /&gt;
| Ctrl-Shift-F&lt;br /&gt;
|-&lt;br /&gt;
| Find Next&lt;br /&gt;
| F3&lt;br /&gt;
|-&lt;br /&gt;
| Find Previous&lt;br /&gt;
| Shift-F3&lt;br /&gt;
|-&lt;br /&gt;
| Last Searchs Result Window&lt;br /&gt;
| Ctrl-Alt-S&lt;br /&gt;
|-&lt;br /&gt;
| Locate in Project Tree&lt;br /&gt;
| Ctrl-T&lt;br /&gt;
|-&lt;br /&gt;
| Go Back&lt;br /&gt;
| Ctrl-Shift-F8&lt;br /&gt;
|-&lt;br /&gt;
| Go to Address&lt;br /&gt;
| Ctrl-G&lt;br /&gt;
|-&lt;br /&gt;
| Go to Definition&lt;br /&gt;
| F12&lt;br /&gt;
Ctrl-Shift-C&lt;br /&gt;
|-&lt;br /&gt;
| Go To Declaration&lt;br /&gt;
| Ctrl-F12&lt;br /&gt;
Ctrl-Shift-D&lt;br /&gt;
|-&lt;br /&gt;
| Go to Related Files&lt;br /&gt;
| Ctrl-R&lt;br /&gt;
|-&lt;br /&gt;
| Go to Executing Predicate Source&lt;br /&gt;
| Ctrl-E&lt;br /&gt;
|-&lt;br /&gt;
| Go To Line&lt;br /&gt;
| Ctrl-F2&lt;br /&gt;
|-&lt;br /&gt;
| Go To Position on Clipboard&lt;br /&gt;
| Shift-F2&lt;br /&gt;
|-&lt;br /&gt;
| Go To Next Error&lt;br /&gt;
| F8&lt;br /&gt;
|-&lt;br /&gt;
| Go To Previous Error&lt;br /&gt;
| Shift-F8&lt;br /&gt;
|-&lt;br /&gt;
| Go To Next Bookmark&lt;br /&gt;
| F6&lt;br /&gt;
|-&lt;br /&gt;
| Go To Previous Bookmark&lt;br /&gt;
| Shift-F6&lt;br /&gt;
|-&lt;br /&gt;
| Window Navigation Dialog&lt;br /&gt;
| Ctrl-Tab or Ctrl-F6&lt;br /&gt;
|-&lt;br /&gt;
| Set/Remove bookmark&lt;br /&gt;
| Ctrl-K&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Compile&lt;br /&gt;
|-&lt;br /&gt;
| Build&lt;br /&gt;
| Ctrl-Shift-B&lt;br /&gt;
|-&lt;br /&gt;
| Stop Build&lt;br /&gt;
| Ctrl-Break&lt;br /&gt;
|-&lt;br /&gt;
| Build Resource Only&lt;br /&gt;
| Alt-F8&lt;br /&gt;
|-&lt;br /&gt;
| Compile&lt;br /&gt;
| Ctrl-F7&lt;br /&gt;
|-&lt;br /&gt;
| Rebuild Project&lt;br /&gt;
| Ctrl-Shift-Alt-B&lt;br /&gt;
|-&lt;br /&gt;
| Run&lt;br /&gt;
| Ctrl-F5&lt;br /&gt;
|-&lt;br /&gt;
| Run in Window&lt;br /&gt;
| Alt-F5&lt;br /&gt;
|-&lt;br /&gt;
| 32 bit Platform&lt;br /&gt;
| Ctrl-Alt-3&lt;br /&gt;
|-&lt;br /&gt;
| 64 bit Platform&lt;br /&gt;
| Ctrl-Alt-6&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Debug&lt;br /&gt;
|-&lt;br /&gt;
| Start Debugging &lt;br /&gt;
| F5&lt;br /&gt;
|-&lt;br /&gt;
| Run Debugging Skipping Soft Breakpoints&lt;br /&gt;
| Ctrl-Shft-F10&lt;br /&gt;
|-&lt;br /&gt;
| Stop Debugging&lt;br /&gt;
| Shift-F5&lt;br /&gt;
|-&lt;br /&gt;
| Restart Debugging&lt;br /&gt;
| Ctrl-Shift-F5&lt;br /&gt;
|-&lt;br /&gt;
| Breakpoint Properties&lt;br /&gt;
| Alt-F9&lt;br /&gt;
|-&lt;br /&gt;
| Refresh Debug Window&lt;br /&gt;
| Ctrl-R&lt;br /&gt;
|-&lt;br /&gt;
| CallStack Window&lt;br /&gt;
| Ctrl-Alt-C&lt;br /&gt;
|-&lt;br /&gt;
| Variable Window&lt;br /&gt;
| Ctrl-Alt-V&lt;br /&gt;
|-&lt;br /&gt;
| Watch Window&lt;br /&gt;
| Ctrl-Alt-W&lt;br /&gt;
|-&lt;br /&gt;
| Facts Window&lt;br /&gt;
| Ctrl-Alt-F&lt;br /&gt;
|-&lt;br /&gt;
| Threads Window&lt;br /&gt;
| Ctrl-Alt-H&lt;br /&gt;
|-&lt;br /&gt;
| Modules Window&lt;br /&gt;
| Ctrl-Alt-L&lt;br /&gt;
|-&lt;br /&gt;
| Breakpoints Window&lt;br /&gt;
| Ctrl-Alt-B&lt;br /&gt;
|-&lt;br /&gt;
| Bookmarks Window&lt;br /&gt;
| Ctrl-Alt-K&lt;br /&gt;
|-&lt;br /&gt;
| Disassembly Window&lt;br /&gt;
| Ctrl-Alt-D&lt;br /&gt;
|-&lt;br /&gt;
| Disassembly Window from Current Line&lt;br /&gt;
| Ctrl-D&lt;br /&gt;
|-&lt;br /&gt;
| Registers window&lt;br /&gt;
| Ctrl-Alt-G&lt;br /&gt;
|-&lt;br /&gt;
| Memory Dump 1 Window&lt;br /&gt;
| Ctrl-Alt-M&lt;br /&gt;
|-&lt;br /&gt;
| Toggle Breakpoint&lt;br /&gt;
| F9&lt;br /&gt;
|-&lt;br /&gt;
| Toggle Hard/Soft Breakpoint&lt;br /&gt;
| Ctrl-F9&lt;br /&gt;
|-&lt;br /&gt;
| Step Into&lt;br /&gt;
| F11&lt;br /&gt;
|-&lt;br /&gt;
| Step out of&lt;br /&gt;
| Shift-F11&lt;br /&gt;
|-&lt;br /&gt;
| Step Over&lt;br /&gt;
| F10&lt;br /&gt;
|-&lt;br /&gt;
| Run To Cursor&lt;br /&gt;
| Ctrl-F10&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Project&lt;br /&gt;
|-&lt;br /&gt;
| New Project&lt;br /&gt;
| Ctrl-Shift-N&lt;br /&gt;
|-&lt;br /&gt;
| Open Project&lt;br /&gt;
| Ctrl-Shift-O&lt;br /&gt;
|-&lt;br /&gt;
| Add Module to Project&lt;br /&gt;
| Ctrl-Shift-A&lt;br /&gt;
|-&lt;br /&gt;
| Create Project Item&lt;br /&gt;
| Ctrl-N&lt;br /&gt;
|-&lt;br /&gt;
| Create Project Item in Existing Package&lt;br /&gt;
| Ctrl-Alt-N&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
IDE&lt;br /&gt;
|-&lt;br /&gt;
| Add qualification&lt;br /&gt;
| Ctrl-Shift-S&lt;br /&gt;
|-&lt;br /&gt;
| Close all other editors&lt;br /&gt;
| Ctrl-Q&lt;br /&gt;
|-&lt;br /&gt;
| Prune open editors&lt;br /&gt;
| Ctrl-Shift-Q&lt;br /&gt;
|-&lt;br /&gt;
| Close the active window&lt;br /&gt;
| Ctrl-F4&lt;br /&gt;
|-&lt;br /&gt;
| Project window&lt;br /&gt;
| Ctrl-Alt-P&lt;br /&gt;
|-&lt;br /&gt;
| Project Settings&lt;br /&gt;
| Alt-F7&lt;br /&gt;
|-&lt;br /&gt;
| Open File&lt;br /&gt;
| Ctrl-O&lt;br /&gt;
|-&lt;br /&gt;
| Save File&lt;br /&gt;
| F2&lt;br /&gt;
|-&lt;br /&gt;
| Save Project&lt;br /&gt;
| Ctrl-S&lt;br /&gt;
|-&lt;br /&gt;
| Source Browser&lt;br /&gt;
| Ctrl-B&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Other&lt;br /&gt;
|-&lt;br /&gt;
| Help&lt;br /&gt;
| F1&lt;br /&gt;
|-&lt;br /&gt;
| Messages Window&lt;br /&gt;
| Ctrl-Alt-O&lt;br /&gt;
|-&lt;br /&gt;
| Error/Warnings Window&lt;br /&gt;
| Ctrl-Alt-E&lt;br /&gt;
|-&lt;br /&gt;
| Print&lt;br /&gt;
| Ctrl-P&lt;br /&gt;
|-&lt;br /&gt;
| Exit IDE&lt;br /&gt;
| Alt-F4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ru:IDE:Горячие Клавиши]]&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Key_Bindings&amp;diff=3620</id>
		<title>Ide/Key Bindings</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Key_Bindings&amp;diff=3620"/>
		<updated>2013-05-23T12:09:43Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|Key Bindings}}&lt;br /&gt;
&lt;br /&gt;
A number of Visual Prolog menu entries have accelerator keys (hot keys) associated with them.&lt;br /&gt;
&lt;br /&gt;
Beginning with Visual Prolog 7.0 some key binding have been changed to comply with Microsoft de facto standards. &lt;br /&gt;
The table below shows Visual Prolog 7.2 accelerator keys by functions.&lt;br /&gt;
&lt;br /&gt;
:{| {{prettytable}}&lt;br /&gt;
|- class=&amp;quot;header2&amp;quot;&lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Function&lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Key&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Edit&lt;br /&gt;
|-&lt;br /&gt;
| Copy&lt;br /&gt;
| Ctrl-C&lt;br /&gt;
|-&lt;br /&gt;
| Cut&lt;br /&gt;
| Ctrl-X or Shift-Del&lt;br /&gt;
|-&lt;br /&gt;
| Paste&lt;br /&gt;
| Ctrl-V or Shift-Ins&lt;br /&gt;
|-&lt;br /&gt;
| Paste&lt;br /&gt;
| Ctrl-Ins&lt;br /&gt;
|-&lt;br /&gt;
| Undo&lt;br /&gt;
| Ctrl-Z&lt;br /&gt;
|-&lt;br /&gt;
| Redo&lt;br /&gt;
| Ctrl-Y or Ctrl-Shift-Z&lt;br /&gt;
|-&lt;br /&gt;
| Select All&lt;br /&gt;
| Ctrl-A&lt;br /&gt;
|-&lt;br /&gt;
| Select Current Word&lt;br /&gt;
| Ctrl-W&lt;br /&gt;
|-&lt;br /&gt;
| Box Editor: Size To Content&lt;br /&gt;
| Shift-F6&lt;br /&gt;
|-&lt;br /&gt;
| Code Expert&lt;br /&gt;
| Ctrl-Shift-W&lt;br /&gt;
|-&lt;br /&gt;
| Delete&lt;br /&gt;
| Del&lt;br /&gt;
|-&lt;br /&gt;
| Delete Line&lt;br /&gt;
| Ctrl-Shift-L&lt;br /&gt;
|-&lt;br /&gt;
| Delete to End of Line&lt;br /&gt;
| Ctrl-Shift-E&lt;br /&gt;
|-&lt;br /&gt;
| Word Delete To End&lt;br /&gt;
Delete Object from Facts Tree&lt;br /&gt;
Retract Fact(s)&lt;br /&gt;
| Ctrl-Del&lt;br /&gt;
|-&lt;br /&gt;
| Insert Predicate&lt;br /&gt;
| Ctrl-Shift-I&lt;br /&gt;
|-&lt;br /&gt;
| Replace&lt;br /&gt;
| Ctrl-H&lt;br /&gt;
|-&lt;br /&gt;
| Lower Case&lt;br /&gt;
| Ctrl-U&lt;br /&gt;
|-&lt;br /&gt;
| Upper Case&lt;br /&gt;
| Ctrl-Shift-U&lt;br /&gt;
|-&lt;br /&gt;
| Toggle Case&lt;br /&gt;
| Ctrl-Alt-U&lt;br /&gt;
|-&lt;br /&gt;
| Zoom In&lt;br /&gt;
| Ctrl-[+] or Ctrl-Scroll mouse wheel up&lt;br /&gt;
|-&lt;br /&gt;
| Zoom Out&lt;br /&gt;
| Ctrl-[-] or Ctrl-Scroll mouse wheel down&lt;br /&gt;
|-&lt;br /&gt;
| Zoom to Normal&lt;br /&gt;
| Ctrl-0&lt;br /&gt;
|-&lt;br /&gt;
| Comment Line(s)&lt;br /&gt;
| Ctrl-Alt-5&lt;br /&gt;
|-&lt;br /&gt;
| Uncomment Line(s)&lt;br /&gt;
| Ctrl-Alt-Shift-5&lt;br /&gt;
|-&lt;br /&gt;
| Duplcate Line&lt;br /&gt;
| Ctrl-Alt-R&lt;br /&gt;
|-&lt;br /&gt;
| Insert Date Stamp&lt;br /&gt;
| Ctrl-Shift-Y&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Navigation&lt;br /&gt;
|-&lt;br /&gt;
| Find&lt;br /&gt;
| Ctrl-F&lt;br /&gt;
|-&lt;br /&gt;
| Find in Files&lt;br /&gt;
| Ctrl-Shift-F&lt;br /&gt;
|-&lt;br /&gt;
| Find Next&lt;br /&gt;
| F3&lt;br /&gt;
|-&lt;br /&gt;
| Find Previous&lt;br /&gt;
| Shift-F3&lt;br /&gt;
|-&lt;br /&gt;
| Last Searchs Result Window&lt;br /&gt;
| Ctrl-Alt-S&lt;br /&gt;
|-&lt;br /&gt;
| Locate in Project Tree&lt;br /&gt;
| Ctrl-T&lt;br /&gt;
|-&lt;br /&gt;
| Go Back&lt;br /&gt;
| Ctrl-Shift-F8&lt;br /&gt;
|-&lt;br /&gt;
| Go to Address&lt;br /&gt;
| Ctrl-G&lt;br /&gt;
|-&lt;br /&gt;
| Go to Definition&lt;br /&gt;
| F12&lt;br /&gt;
Ctrl-Shift-C&lt;br /&gt;
|-&lt;br /&gt;
| Go To Declaration&lt;br /&gt;
| Ctrl-F12&lt;br /&gt;
Ctrl-Shift-D&lt;br /&gt;
|-&lt;br /&gt;
| Go to Related Files&lt;br /&gt;
| Ctrl-R&lt;br /&gt;
|-&lt;br /&gt;
| Go to Executing Predicate Source&lt;br /&gt;
| Ctrl-E&lt;br /&gt;
|-&lt;br /&gt;
| Go To Line&lt;br /&gt;
| Ctrl-F2&lt;br /&gt;
|-&lt;br /&gt;
| Go To Position on Clipboard&lt;br /&gt;
| Shift-F2&lt;br /&gt;
|-&lt;br /&gt;
| Go To Next Error&lt;br /&gt;
| F8&lt;br /&gt;
|-&lt;br /&gt;
| Go To Previous Error&lt;br /&gt;
| Shift-F8&lt;br /&gt;
|-&lt;br /&gt;
| Go To Next Bookmark&lt;br /&gt;
| F6&lt;br /&gt;
|-&lt;br /&gt;
| Go To Previous Bookmark&lt;br /&gt;
| Shift-F6&lt;br /&gt;
|-&lt;br /&gt;
| Window Navigation Dialog&lt;br /&gt;
| Ctrl-Tab or Ctrl-F6&lt;br /&gt;
|-&lt;br /&gt;
| Set/Remove bookmark&lt;br /&gt;
| Ctrl-K&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Compile&lt;br /&gt;
|-&lt;br /&gt;
| Build&lt;br /&gt;
| Ctrl-Shift-B&lt;br /&gt;
|-&lt;br /&gt;
| Stop Build&lt;br /&gt;
| Ctrl-Break&lt;br /&gt;
|-&lt;br /&gt;
| Build Resource Only&lt;br /&gt;
| Alt-F8&lt;br /&gt;
|-&lt;br /&gt;
| Compile&lt;br /&gt;
| Ctrl-F7&lt;br /&gt;
|-&lt;br /&gt;
| Rebuild Project&lt;br /&gt;
| Ctrl-Shift-Alt-B&lt;br /&gt;
|-&lt;br /&gt;
| Run&lt;br /&gt;
| Ctrl-F5&lt;br /&gt;
|-&lt;br /&gt;
| Run in Window&lt;br /&gt;
| Alt-F5&lt;br /&gt;
|-&lt;br /&gt;
| 32 bit Platform&lt;br /&gt;
| Ctrl-Alt-3&lt;br /&gt;
|-&lt;br /&gt;
| 64 bit Platform&lt;br /&gt;
| Ctrl-Alt-6&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Debug&lt;br /&gt;
|-&lt;br /&gt;
| Start Debugging &lt;br /&gt;
| F5&lt;br /&gt;
|-&lt;br /&gt;
| Run Debugging Skipping Soft Breakpoints&lt;br /&gt;
| Ctrl-Shft-F10&lt;br /&gt;
|-&lt;br /&gt;
| Stop Debugging&lt;br /&gt;
| Shift-F5&lt;br /&gt;
|-&lt;br /&gt;
| Restart Debugging&lt;br /&gt;
| Ctrl-Shift-F5&lt;br /&gt;
|-&lt;br /&gt;
| Breakpoint Properties&lt;br /&gt;
| Alt-F9&lt;br /&gt;
|-&lt;br /&gt;
| Refresh Debug Window&lt;br /&gt;
| Ctrl-R&lt;br /&gt;
|-&lt;br /&gt;
| CallStack Window&lt;br /&gt;
| Ctrl-Alt-C&lt;br /&gt;
|-&lt;br /&gt;
| Variable Window&lt;br /&gt;
| Ctrl-Alt-V&lt;br /&gt;
|-&lt;br /&gt;
| Watch Window&lt;br /&gt;
| Ctrl-Alt-W&lt;br /&gt;
|-&lt;br /&gt;
| Facts Window&lt;br /&gt;
| Ctrl-Alt-F&lt;br /&gt;
|-&lt;br /&gt;
| Threads Window&lt;br /&gt;
| Ctrl-Alt-H&lt;br /&gt;
|-&lt;br /&gt;
| Modules Window&lt;br /&gt;
| Ctrl-Alt-L&lt;br /&gt;
|-&lt;br /&gt;
| Breakpoints Window&lt;br /&gt;
| Ctrl-Alt-B&lt;br /&gt;
|-&lt;br /&gt;
| Bookmarks Window&lt;br /&gt;
| Ctrl-Alt-K&lt;br /&gt;
|-&lt;br /&gt;
| Disassembly Window&lt;br /&gt;
| Ctrl-Alt-D&lt;br /&gt;
|-&lt;br /&gt;
| Disassembly Window from Current Line&lt;br /&gt;
| Ctrl-D&lt;br /&gt;
|-&lt;br /&gt;
| Registers window&lt;br /&gt;
| Ctrl-Alt-G&lt;br /&gt;
|-&lt;br /&gt;
| Memory Dump 1 Window&lt;br /&gt;
| Ctrl-Alt-M&lt;br /&gt;
|-&lt;br /&gt;
| Toggle Breakpoint&lt;br /&gt;
| F9&lt;br /&gt;
|-&lt;br /&gt;
| Toggle Hard/Soft Breakpoint&lt;br /&gt;
| Ctrl-F9&lt;br /&gt;
|-&lt;br /&gt;
| Step Into&lt;br /&gt;
| F11&lt;br /&gt;
|-&lt;br /&gt;
| Step out of&lt;br /&gt;
| Shift-F11&lt;br /&gt;
|-&lt;br /&gt;
| Step Over&lt;br /&gt;
| F10&lt;br /&gt;
|-&lt;br /&gt;
| Run To Cursor&lt;br /&gt;
| Ctrl-F10&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Project&lt;br /&gt;
|-&lt;br /&gt;
| New Project&lt;br /&gt;
| Ctrl-Shift-N&lt;br /&gt;
|-&lt;br /&gt;
| Open Project&lt;br /&gt;
| Ctrl-Shift-O&lt;br /&gt;
|-&lt;br /&gt;
| Add Module to Project&lt;br /&gt;
| Ctrl-Shift-A&lt;br /&gt;
|-&lt;br /&gt;
| Create Project Item&lt;br /&gt;
| Ctrl-N&lt;br /&gt;
|-&lt;br /&gt;
| Create Project Item in Existing Package&lt;br /&gt;
| Ctrl-Alt-N&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
IDE&lt;br /&gt;
|-&lt;br /&gt;
| Add qualification&lt;br /&gt;
| Ctrl-Shift-S&lt;br /&gt;
|-&lt;br /&gt;
| Close all other editors&lt;br /&gt;
| Ctrl-Q&lt;br /&gt;
|-&lt;br /&gt;
| Prune open editors&lt;br /&gt;
| Ctrl-Shift-Q&lt;br /&gt;
|-&lt;br /&gt;
| Close the active window&lt;br /&gt;
| Ctrl-F4&lt;br /&gt;
|-&lt;br /&gt;
| Project window&lt;br /&gt;
| Ctrl-Alt-P&lt;br /&gt;
|-&lt;br /&gt;
| Project Settings&lt;br /&gt;
| Alt-F7&lt;br /&gt;
|-&lt;br /&gt;
| Open File&lt;br /&gt;
| Ctrl-O&lt;br /&gt;
|-&lt;br /&gt;
| Save File&lt;br /&gt;
| F2&lt;br /&gt;
|-&lt;br /&gt;
| Save Project&lt;br /&gt;
| Ctrl-S&lt;br /&gt;
|-&lt;br /&gt;
| Source Browser&lt;br /&gt;
| Ctrl-B&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#cee0f2; text-align:center; font-weight:bold; color: #006B9C;&amp;quot; |&lt;br /&gt;
Other&lt;br /&gt;
|-&lt;br /&gt;
| Help&lt;br /&gt;
| F1&lt;br /&gt;
|-&lt;br /&gt;
| Messages Window&lt;br /&gt;
| Ctrl-Alt-O&lt;br /&gt;
|-&lt;br /&gt;
| Error/Warnings Window&lt;br /&gt;
| Ctrl-Alt-E&lt;br /&gt;
|-&lt;br /&gt;
| Print&lt;br /&gt;
| Ctrl-P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ru:IDE:Горячие Клавиши]]&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Visual_Prolog_Demo_Examples&amp;diff=3615</id>
		<title>Visual Prolog Demo Examples</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Visual_Prolog_Demo_Examples&amp;diff=3615"/>
		<updated>2013-05-20T12:24:35Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|IDE Projects}}&lt;br /&gt;
&lt;br /&gt;
In the &amp;#039;&amp;#039;&amp;#039;bin&amp;#039;&amp;#039;&amp;#039; subdirectory you can find the &amp;#039;&amp;#039;&amp;#039;SetupExamples.msi&amp;#039;&amp;#039;&amp;#039; setup program file with which you can install Visual Prolog examples. The default subdirectory for examples is &amp;#039;&amp;#039;&amp;#039;&amp;quot;Visual Prolog 7.4 Examples&amp;quot;&amp;#039;&amp;#039;&amp;#039;. In the &amp;#039;&amp;#039;&amp;#039;SetupExamples.msi&amp;#039;&amp;#039;&amp;#039; program you can set it as subdirectory of your main Visual Prolog directory or somewhere else.&lt;br /&gt;
&lt;br /&gt;
=== Visual Prolog Personal Edition Examples ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;animationControlDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;askDialogDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This program demonstrates how to program dialogs that ask the user for something and return an answer.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;buttonDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This program demonstrates how to handle OK and Cancel buttons, how to handle default buttons, how to handle button responders&lt;br /&gt;
|- &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;diskUsage&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This example demonstrates usage of the PFC fileSystem package to get information about files in different specified directories. The PFC VPI/vpiTreeView package is used as a GUI interface end.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;editor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This example demonstrates how to open editor and save edited text.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;formWindowDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This program demonstrates a simple form and how a new form can be created dynamically.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;GDIplus&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The examples demonstrates drawing pictures using GDI .&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;genericsExample&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;GUIDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This example demonstrates how to manipulate with dialogs and controls in conventional GUI applications. It also demonstrates difference between class and object facts.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;listDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This program demonstrates how to handle list button, list edit and list control.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;listViewDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This example demonstrates how you can create dialogs with &amp;#039;&amp;#039;&amp;#039;vpiListView&amp;#039;&amp;#039;&amp;#039; controls using the PFC VPI/vpiListView package.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;LZDecompression&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;mdiWin&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This MDI mode example demonstrates how to change the standard &amp;quot;Windows&amp;quot; submenu items with user-defined items.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;MultiThreadDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This example demonstrates how to create the multi-thread application and handle interactions between threads. In the example, each thread produces the results in the single (common for all threads) &amp;quot;queue&amp;quot;, and the primary thread reads them one by one and displays on the screen.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;pictureDraw&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This example demonstrates how to draw pictures using the GdiPlusX.lib containing some graphical primitives. The example declares the &amp;#039;&amp;#039;&amp;#039;gdiPlus&amp;#039;&amp;#039;&amp;#039; package. The package maintains drawing pictures using the &amp;#039;&amp;#039;&amp;#039;GdiPlusX.lib&amp;#039;&amp;#039;&amp;#039; graphical primitives. The &amp;#039;&amp;#039;&amp;#039;pictWin&amp;#039;&amp;#039;&amp;#039; package contains invocations of drawing predicates for BMP and JPG files.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-right: 10px; padding-left: 10px&amp;quot; |&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pie&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;padding-right: 10px; padding-left: 10px&amp;quot; |&lt;br /&gt;
This example demonstrates a GUI Prolog Inference Engine (PIE) interpreter program. It uses a standard Prolog syntax (K&amp;amp;amp;M) and releases the most popular set of predicates.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;pieDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;prologSourceBrowser&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This is an example of using such pfc\gui controls as treeViewControl, listViewControl and editorControl.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;radioButtonDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This program demonstrates how to use single radio button group, multiple radio button groups or how to use check boxes.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;SandClocks&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The example demonstrates: How to program a simple enumeration of possibilities algorithm to solve the goal: &amp;quot;There are several sand clocks. How can we measure a given time interval?&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;StreamDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The example demonstrates Visual Prolog streams: &amp;lt;vp&amp;gt;outputStream_string&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;outputStream_file&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;console::getConsoleOutputStream&amp;lt;/vp&amp;gt;. It also illustrates that facts databases can be written to any outputStream.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Sudoku&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| A currently very popular logical Sudoku puzzle is used as an example. We show how such a problem can be solved using constraint programming and explain a simple approach to finite domains constraint solving. Furthermore, we show how to build an interactive GUI that visualizes the workings of the constraint solver.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;tabControlDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This program demonstrates how to handle tab control.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;toolTipDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Example demonstrates most aspects and styles of tooltips.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;validationDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This program demonstrates how to use validation. Validation is usually a check, which is performed on pressing OK button. Such check makes sure that all necessary controls with input values contains valid values.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-right: 10px; padding-left: 10px&amp;quot; |&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WatchDir&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Visual Prolog Commercial Edition Examples ===&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;balloonTipsDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;bgDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;BITS Example&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;CallProcess&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| An example of an external process invocation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;CGI&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| A CGI version of the Towers of Hanoi puzzle.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Com&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| These examples illustrate how COM components can be created by Visual Prolog and how COM components can be used from Visual Prolog program.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;DDE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This directory contains examples demonstrating Windows DDE interprocess communications. In the &amp;#039;&amp;#039;&amp;#039;Server&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Client&amp;#039;&amp;#039;&amp;#039; subdirectories there are examples of a DDE server and a DDE client applications. The DDE client initiates and controls A communication with the DDE server. In the &amp;#039;&amp;#039;&amp;#039;Office&amp;#039;&amp;#039;&amp;#039; subdirectory there is an example of a DDE client applications, which can communicate with Microsoft Office programs. (With the MS Word, for example.) All programs use the &amp;#039;&amp;#039;&amp;#039;vpiDDE&amp;#039;&amp;#039;&amp;#039; class from PFC VPI package.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The examples illustrates how to create and use Prolog DLLs.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;dockingDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;dragNdropDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This project demonstrates how to use the pfc/gui/dragNdrop package for application-wide drag-and-drop support.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;ESTA&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Expert System Shell.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;gridControlDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This program contains an example of Grid Control and demonstrates how to use it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;GridForm&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This example demonstrates how to can create grid controls.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;isApiDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The example demonstrates creating an ISAPI DLL.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;MSXML Example&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;OdbcDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This rather complex example demonstrates Visual Prolog ODBC connections. This is a GUI application providing several different complex functions. It uses the PFC ODBC package.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Parser Generator&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;ProgressBarDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;ribbonDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This demo project illustrates how to develop applications using the Ribbon and Command packages of pfc/gui.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;shellDDEdemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This project demonstrates how to easily integrate Visual Prolog with Windows Shell (Explorer).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;simpleOdbc&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This is an extremely simple example (comparing with the complex &amp;#039;&amp;#039;&amp;#039;OdbcDemo&amp;#039;&amp;#039;&amp;#039;) also demonstrating A ODBC connection. This is console application, which can open only the supplied &amp;#039;&amp;#039;&amp;#039;odbc.mdb&amp;#039;&amp;#039;&amp;#039; database and providing minimal functions. It uses the PFC ODBC package.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;toolboxDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;toyIDE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;treeControlDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;useVipInDotNet&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This example shows how to create and use Visual Prolog DLLs from Visual Basic applications under Dot Net. The example supplies sources for both Visual Prolog and Visual Basic projects.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;WebBrowser&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This example demonstrates how you can easy program full functioning WEB Browser in Visual Prolog. The example uses Microsoft ActiveX WebBrowser control.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;workspaceDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;xmlLiteDemo&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/$(ProDir)_Subdirectories&amp;diff=3614</id>
		<title>Ide/$(ProDir) Subdirectories</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/$(ProDir)_Subdirectories&amp;diff=3614"/>
		<updated>2013-05-20T12:06:10Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|IDE Projects}}&lt;br /&gt;
&lt;br /&gt;
=== $(ProDir) Subdirectories ===&lt;br /&gt;
&lt;br /&gt;
Visual Prolog is the complete programming environment based on the Prolog programming language. It contains everything needed for building large-scale commercial applications: Integrated Development Environment (IDE), compiler, linker, debugger, on-line Help, and Visual Prolog Foundation Classes (PFC). PFC is the collection of classes and interfaces that constitutes the foundation for writing various kinds of applications and software components. The classes and interfaces are organized in the package hierarchy. PFC supports: GUI, file system, fact databases, external databases, arithmetic, string handling, date and time, ODBC, registry, CGI, sockets/HTTP/FTP, Microsoft COM, multi-Threading, etc.&lt;br /&gt;
&lt;br /&gt;
After installation of Visual Prolog you will have the following subdirectories created in your Visual Prolog installation directory:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| {{ide|$(ProDir) Subdirectories#Files in the BIN Subdirectory|&amp;#039;&amp;#039;&amp;#039;bin&amp;#039;&amp;#039;&amp;#039;}}&lt;br /&gt;
| Contains executables and some supplementary files for Visual Prolog.&lt;br /&gt;
|-&lt;br /&gt;
| {{ide|$(ProDir) Subdirectories#Files in the BIN64 Subdirectory|&amp;#039;&amp;#039;&amp;#039;bin64&amp;#039;&amp;#039;&amp;#039;}}&lt;br /&gt;
| Contains executables and some supplementary files for Visual Prolog support for 64bit platforms.&lt;br /&gt;
|-&lt;br /&gt;
| {{ide|$(ProDir) Subdirectories#Files in the DLL\WIN32 Subdirectory|&amp;#039;&amp;#039;&amp;#039;dll\win32&amp;#039;&amp;#039;&amp;#039;}}&lt;br /&gt;
| Contains Visual Prolog DLLs for 32bit targets.&lt;br /&gt;
|-&lt;br /&gt;
| {{ide|$(ProDir) Subdirectories#Files in the DLL\X64 Subdirectory|&amp;#039;&amp;#039;&amp;#039;dll\x64&amp;#039;&amp;#039;&amp;#039;}} &lt;br /&gt;
| Contains Visual Prolog DLLs for 64bit targets.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;doc&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Contains this Visual Prolog on-line help file &amp;#039;&amp;#039;&amp;#039;vip.chm&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| {{ide|$(ProDir) Subdirectories#Files in the LIB Subdirectory|&amp;#039;&amp;#039;&amp;#039;lib&amp;#039;&amp;#039;&amp;#039;}}&lt;br /&gt;
| Contains the Visual Prolog libraries.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;pfc&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Contains the Visual Prolog Foundation Classes (PFC) and some import libraries for the correspondent DLLs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Files in the BIN Subdirectory ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;BIN&amp;#039;&amp;#039;&amp;#039; subdirectory contains 32bit executables and main supplementary files of Visual Prolog.&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Vip.exe&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Integrated Development Environment (IDE) is the main executable file. It includes text and various resource editors, code generating tools (Code Experts), build control logic, and the built-in debugger. The IDE calls the Visual Prolog compiler and the linker to build target files.&lt;br /&gt;
|-&lt;br /&gt;
| {{ide|IDE Tools#Command Line Compiler|&amp;#039;&amp;#039;&amp;#039;VipCompiler.exe&amp;#039;&amp;#039;&amp;#039;}}&amp;lt;br/&amp;gt;  &amp;#039;&amp;#039;&amp;#039;Vip7CompilerC.dll&amp;lt;br/&amp;gt; vipParser.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Visual Prolog command line compiler.&lt;br /&gt;
|-&lt;br /&gt;
| {{ide|IDE Tools#Command Line Compiler|&amp;#039;&amp;#039;&amp;#039;Vip6Link.exe&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;}}&lt;br /&gt;
| Visual Prolog command line Link Editor used to combine object files and library modules into a single image file: an executable file or a dynamic-link library (DLL).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;VipBuilder.exe&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Visual Prolog command line builder. It receives {{ide|Projects|Visual Prolog project files}} and generates the target file specified in this project.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;ProDoc.exe&amp;lt;br/&amp;gt;  MILHTMLParser.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| ProDoc - Prolog Documentation utility is the tool that allows making on-line references from Visual Prolog source code files with comments of special kinds included in them.&lt;br /&gt;
|- style=&amp;quot;x-cell-content-align: top&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;MemProfileAnalysis.exe&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This is the simple tool helping to display charts of the heap memory used by some program. This program must create the heap usage file with a call to &amp;lt;vp&amp;gt;profileMemory::profileBegin : ( ProfileFilename)&amp;lt;/vp&amp;gt;. Then this &amp;lt;vp&amp;gt;ProfileFilename&amp;lt;/vp&amp;gt; should be loaded into the &amp;#039;&amp;#039;&amp;#039;MemProfileAnalysis.exe&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;coverageAnalysis.exe&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The coverage analysis gives information about the predicates that have been called during execution of the program. The coverage analysis program reads &amp;#039;&amp;#039;&amp;#039;.deb&amp;#039;&amp;#039;&amp;#039; files to get information about a set of classes and predicates in a program and coverage files to get information about the predicates that have been called during execution of the program. The program must be compiled with options &amp;#039;&amp;#039;&amp;#039; /profile:min&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;/debug:full&amp;#039;&amp;#039;&amp;#039; to use this new tool.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Vip7associations.exe&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Assistant utility to set Visual Prolog file associations.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;SetupExamples.msi&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The SETUP program file with which you can install {{ide|Visual Prolog Examples|&amp;#039;&amp;#039;&amp;#039;Visual Prolog examples&amp;#039;&amp;#039;&amp;#039;}}.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;IdeDebug.dll&amp;lt;br/&amp;gt; ideVault.dll&amp;lt;br/&amp;gt; idestorage.dll&amp;lt;br/&amp;gt; comWrapper.dll&amp;lt;br/&amp;gt; activate.exe&amp;lt;br/&amp;gt; act.exe&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Assistant IDE components.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Project7.fkb&amp;lt;br/&amp;gt; Project7.bs2&amp;lt;br/&amp;gt; intelliSpeed.prodb&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Assistant files for the IDE.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Prolog.bmp&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The startup picture for Visual Prolog IDE.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;HelpTopic.db&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This database is used by the IDE to display context sensitive help. For example, when the cursor is on a PFC predicate or domain and you press the &amp;#039;&amp;#039;&amp;#039;F1&amp;#039;&amp;#039;&amp;#039; key then the IDE will use information form &amp;#039;&amp;#039;&amp;#039;HelpTopic.db&amp;#039;&amp;#039;&amp;#039; to display an appropriate help topic describing the pointed predicate or domain.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;RES&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The resource files contained in the &amp;#039;&amp;#039;&amp;#039;RES&amp;#039;&amp;#039;&amp;#039; subdirectory are used by the IDE as the default resources, which are copied into created projects.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Vip7Kernel.dll&amp;lt;br/&amp;gt; Vip7Run.dll&amp;lt;br/&amp;gt;  Vip7res.dll&amp;lt;br /&amp;gt; Vip7vpi.dll&amp;lt;br /&amp;gt; Vip7chainDB.dll&amp;lt;br /&amp;gt; Vip7RegExp2.dll&amp;lt;br /&amp;gt; boostRegex.dll&amp;lt;br /&amp;gt; SciLexer.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| See the description of 32bit DLLs below.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;dbghelp.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;solutionmanager.exe&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Tool to support solutions handling.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Files in the BIN64 Subdirectory ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;BIN64&amp;#039;&amp;#039;&amp;#039; subdirectory contains 64bit version of some Visual Prolog executables.&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;RemoteDebugger.exe&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Visual Prolog Debugger component to support the debugging of 64bit programs.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;vip7Kernel.x64.dll&amp;lt;br/&amp;gt; vip7Run.x64.dll&amp;lt;br/&amp;gt; etc.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| 64bit versions of some Visual Prolog run-time DLLs. All of them have suffix &amp;#039;&amp;#039;&amp;#039;.x64&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Files in the LIB Subdirectory ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;LIB&amp;#039;&amp;#039;&amp;#039; subdirectory contains the Visual Prolog libraries and import libraries.&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Vip7init.lib&amp;lt;br/&amp;gt; vip7init.x64.lib&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Visual Prolog runtime startup code.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Win32.lib&amp;lt;br/&amp;gt; Win32.x64.lib&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This library provides interface to Windows 32 / 64 API functions.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Vip7Kernel.lib&amp;lt;br/&amp;gt; Vip7Kernel.x64.lib&amp;lt;br/&amp;gt; Vip7run.lib&amp;lt;br/&amp;gt; vip7run.x64.lib&amp;lt;br/&amp;gt; etc&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
| These are import libraries to the correspondent DLLs copied into the &amp;#039;&amp;#039;&amp;#039;DLL\WIN32&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;DLL\X64&amp;#039;&amp;#039;&amp;#039; subdirectories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Files in the DLL\WIN32 Subdirectory ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;DLL\WIN32&amp;#039;&amp;#039;&amp;#039; subdirectory contains 32bit versions of Visual Prolog DLLs.&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Vip7Kernel.dll&amp;lt;br/&amp;gt; Vip7Run.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| These libraries implement run-time Visual Prolog execution system.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;SciLexer.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This library supports the implementation of &amp;#039;&amp;#039;&amp;#039;pfc\gui\controls\sciLexer package&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;Scintilla text editor&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Vip7Edit.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This library supports usage of the old version of Visual Prolog text editor.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Vip7res.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This library supports usage of the PFC &amp;#039;&amp;#039;&amp;#039;vpiResourceSupport&amp;#039;&amp;#039;&amp;#039; Resource Support package.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;vip7vpi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This library supports usage of the PFC &amp;#039;&amp;#039;&amp;#039;VPI&amp;#039;&amp;#039;&amp;#039; package.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Vip7chainDB.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This library supports usage of Visual Prolog external databases implemented in the PFC &amp;#039;&amp;#039;&amp;#039;chainDB&amp;#039;&amp;#039;&amp;#039; package.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Vip7RegExp2.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This library supports usage of the old version of PFC regular expressions support.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;boostRegex.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This library supports usage of the &amp;#039;&amp;#039;&amp;#039;pfc\regEx\regEx package&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Files in the DLL\X64 Subdirectory ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;DLL\X64&amp;#039;&amp;#039;&amp;#039; subdirectory contains 64bit version Visual Prolog DLLs which are described above. Their names have suffix &amp;#039;&amp;#039;&amp;#039;.x64&amp;#039;&amp;#039;&amp;#039;. There are no 64bit versions of Vip7Edit.dll and Vip7RegExp2.dll.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Text_Editor&amp;diff=3613</id>
		<title>Ide/Text Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Text_Editor&amp;diff=3613"/>
		<updated>2013-05-17T13:42:23Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|Text Editor}}&lt;br /&gt;
&lt;br /&gt;
== About the Text Editor ==&lt;br /&gt;
&lt;br /&gt;
The Visual Prolog &amp;#039;&amp;#039;&amp;#039;Text Editor&amp;#039;&amp;#039;&amp;#039; is used for creating and editing of any text files. However, the Visual Prolog text editor is specially oriented for editing Visual Prolog source code files from the IDE, for example, it supports color highlighting of Visual Prolog language syntax elements (keywords, variables, and other language elements). Also when the text editor is used in the IDE, it supports such Visual Prolog specific functions as &amp;#039;&amp;#039;&amp;#039;{{ide|Text Editor#Go to Declaration|Go to Name Declaration}}&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;{{ide|Text Editor#Go to Definition|Go to Name Definition}}&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;{{ide|Text Editor#Insert Known Names|Insert Interface}}&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Insert Class&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Insert Predicate&amp;#039;&amp;#039;&amp;#039;, etc.&lt;br /&gt;
&lt;br /&gt;
The text editor supports: undo/redo features (standard restriction is 512 steps), search, replace, changing case of letters, cut, copy, and paste operations with the clipboard, and drag and drop for quick block movements with the mouse, etc.&lt;br /&gt;
&lt;br /&gt;
Programmers can create the Visual Prolog &amp;#039;&amp;#039;&amp;#039;Text Editor&amp;#039;&amp;#039;&amp;#039; in their applications using the &amp;#039;&amp;#039;&amp;#039;pfc\gui\controls\sciLexer package&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
The most often used text editor commands have hot keys or can be called with the right mouse button pop-up context menu.&lt;br /&gt;
&lt;br /&gt;
== Getting Assistance ==&lt;br /&gt;
&lt;br /&gt;
Press &amp;#039;&amp;#039;&amp;#039;F1&amp;#039;&amp;#039;&amp;#039; (or the [[Image:Ide_TE_Help.png]] button in the toolbar or the &amp;#039;&amp;#039;&amp;#039;Help | Visual Prolog Help&amp;#039;&amp;#039;&amp;#039; command) when the input focus is in any text editor window to display this help information.&lt;br /&gt;
&lt;br /&gt;
== Set the Editor Options ==&lt;br /&gt;
&lt;br /&gt;
Text editor options are grouped in the {{ide|Options|Options}} dialog.&lt;br /&gt;
&lt;br /&gt;
== How to Work with Files ==&lt;br /&gt;
&lt;br /&gt;
=== Create a New Text File ===&lt;br /&gt;
&lt;br /&gt;
Execute the &amp;#039;&amp;#039;&amp;#039;File | New...&amp;#039;&amp;#039;&amp;#039; command (or &amp;#039;&amp;#039;&amp;#039;Ctrl+N&amp;#039;&amp;#039;&amp;#039;, or click the [[Image:Ide_TE_New.png]] toolbar button) to open the &amp;#039;&amp;#039;&amp;#039;Create Project Item&amp;#039;&amp;#039;&amp;#039; dialog. In the left pane of this dialog select &amp;#039;&amp;#039;&amp;#039;Text File&amp;#039;&amp;#039;&amp;#039;. For more detailed description see {{ide|Creating new Project Items#Creating a Text File|New Text File Creation}}.&lt;br /&gt;
&lt;br /&gt;
=== Open an Existing File ===&lt;br /&gt;
&lt;br /&gt;
There are several ways to open existing text files:&lt;br /&gt;
&lt;br /&gt;
* Using the standard &amp;#039;&amp;#039;&amp;#039;File Open&amp;#039;&amp;#039;&amp;#039; dialog box. To activate it you can use the &amp;#039;&amp;#039;&amp;#039;File | Open&amp;#039;&amp;#039;&amp;#039; command, or the &amp;#039;&amp;#039;&amp;#039;Ctrl+O&amp;#039;&amp;#039;&amp;#039; hot key, or clicking the [[Image:Ide_TE_Open.png]] toolbar button.&lt;br /&gt;
* Clicking a text file in the {{ide|Project Tree|project tree}} in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window.&lt;br /&gt;
* The IDE keeps tracking of text files you last worked on. You can quickly open one of them by selecting it from the list at the bottom of the &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; menu.&lt;br /&gt;
You can have many files opened in text editor windows simultaneously. The &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039; command does not close any already opened text editor windows. The Visual Prolog IDE is restricted to editing a single version of anyone file; therefore, if you try to open an already edited file, then the IDE simply sets the focus into the editor window with this file.&lt;br /&gt;
&lt;br /&gt;
Notice that the text editor can open both UNICODE and DOS character set text files. When it saves files that had DOS character set (before they were opened), then they are saved with the DOS character set. The same for UNICODE files.&lt;br /&gt;
&lt;br /&gt;
=== Save an Edited File ===&lt;br /&gt;
&lt;br /&gt;
There are several ways to save a text file being edited:&lt;br /&gt;
* Using the &amp;#039;&amp;#039;&amp;#039;File | Save&amp;#039;&amp;#039;&amp;#039; command, or the &amp;#039;&amp;#039;&amp;#039;F2&amp;#039;&amp;#039;&amp;#039; hot key, or clicking the [[Image:Ide_TE_Save.png]] toolbar button.&lt;br /&gt;
* Notice that all modified text files are ALWAYS saved before the IDE compiles them.&lt;br /&gt;
&lt;br /&gt;
=== Save a File under Different Name ===&lt;br /&gt;
&lt;br /&gt;
Use the &amp;#039;&amp;#039;&amp;#039;File | Save as ...&amp;#039;&amp;#039;&amp;#039; menu command.&lt;br /&gt;
&lt;br /&gt;
=== Print an Edited File ===&lt;br /&gt;
&lt;br /&gt;
Use the &amp;#039;&amp;#039;&amp;#039;File | Print&amp;#039;&amp;#039;&amp;#039; menu command to print the currently edited file. The standard Windows &amp;#039;&amp;#039;&amp;#039;Print&amp;#039;&amp;#039;&amp;#039; dialog appears. In it you can select some printing options.&lt;br /&gt;
&lt;br /&gt;
== How to Edit Text ==&lt;br /&gt;
&lt;br /&gt;
When you open a text file, then the text editor loads the entire file into memory. So the original file is not changed until changes are saved.&lt;br /&gt;
&lt;br /&gt;
Saving changes you can optionally keep the {{ide|Text Editor#Save an Edited File|backup copy}} of an original file.&lt;br /&gt;
&lt;br /&gt;
While you edit a file, the IDE checks whether the file is changed externally. For example, let us open a text file. Then go to a &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;ource code &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ontrol &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;ystem (SCS), for example, like Microsoft Visual SourceSafe. This SCS stores the master copy of the opened project. Let us get the latest version of some project files from the master copy in the SCS. When you return the focus into the IDE, it checks whether any of the opened text (and any other) files differ from their versions updated from the SCS. If the IDE detects such difference, then it display the warning dialog like this:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;vipbnf&amp;gt;The file &amp;quot;ExternallyChangedFileName&amp;quot; &lt;br /&gt;
            has been modified outside the IDE text editor. &lt;br /&gt;
            Do you want to reload the file or ignore external changes?&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The basic functions for moving around in texts and making simple edits follow the ordinary conventions of other Windows applications. So you can get started immediately. The more powerful editing commands are all on the menus, with their shortcuts shown against them, so you should be able to get up to speed quickly. Most of editing commands are in the pop-up menu, which can be activated with the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Any changes you make can be undone, and you can redo changes that you have undone. You can undo changes even after saving the changed file. However, notice that the undo buffer has the limited length.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Remember&amp;#039;&amp;#039;&amp;#039; that, while loading the text from the selected file, the text editor converts all non-viewable symbols into space characters. Notice that the text editor will also save all such characters like space characters!&lt;br /&gt;
&lt;br /&gt;
=== Insert Text ===&lt;br /&gt;
&lt;br /&gt;
Text is entered at the cursor position (the insertion point). The location of the cursor can be set by the keyboard or the mouse.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;cursor&amp;#039;&amp;#039;&amp;#039; (also known as the &amp;#039;&amp;#039;&amp;#039;caret&amp;#039;&amp;#039;&amp;#039;) is the vertical line that indicates the insertion position for text. Contrast this with the &amp;#039;&amp;#039;&amp;#039;mouse cursor&amp;#039;&amp;#039;&amp;#039; that tracks the mouse position.&lt;br /&gt;
&lt;br /&gt;
If any text is selected, it will be deleted before inserting the first character that you type.&lt;br /&gt;
&lt;br /&gt;
To change to the &amp;#039;&amp;#039;&amp;#039;Overwrite&amp;#039;&amp;#039;&amp;#039; mode, where each typed character replaces the one at the cursor position, press the &amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039; key once. This will also change the &amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039; indicator on the status bar to &amp;#039;&amp;#039;&amp;#039;Overwrite&amp;#039;&amp;#039;&amp;#039;. Press the &amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039; key again, to switch back to the &amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039; mode.&lt;br /&gt;
&lt;br /&gt;
=== Move in Text ===&lt;br /&gt;
&lt;br /&gt;
The cursor is constrained to positions within the existing text only, it cannot be free placed anywhere in the document window outside of the existing text.&lt;br /&gt;
&lt;br /&gt;
The following key combinations can be used to move the cursor:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cursor Moving Operations&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! To Move the Cursor:&lt;br /&gt;
! Press This Key:&lt;br /&gt;
|-&lt;br /&gt;
| To the mouse cursor position&lt;br /&gt;
| Mouse left button&lt;br /&gt;
|- &lt;br /&gt;
| To the beginning of the file&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+Home&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| To the end of the file&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+End&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| From the beginning of the line to the first non-space character in the line&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+Right Arrow&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| To the left margin&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Home&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| To the end of the line&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;End&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Forward one character&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Right Arrow&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|- &lt;br /&gt;
| Back one character&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Left Arrow&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Down one line&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Down Arrow&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Up one line&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Up Arrow&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Forward to the end of the current word&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+Right Arrow&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Back to the end of the previous word&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+Left Arrow&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|- &lt;br /&gt;
| Scroll one page (window) up&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Page Up&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Scroll one page (window) down&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Page Down&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Scroll up and down&lt;br /&gt;
| Rotate the &amp;#039;&amp;#039;&amp;#039;Mouse Roll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| To a specified line number&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+F2&amp;#039;&amp;#039;&amp;#039; and fill in the number&lt;br /&gt;
|-&lt;br /&gt;
| To the &amp;#039;&amp;#039;&amp;#039;Declaration&amp;#039;&amp;#039;&amp;#039; of a pointed name (predicate, fact, domain, etc.)&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+F12&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| To the &amp;#039;&amp;#039;&amp;#039;Definition&amp;#039;&amp;#039;&amp;#039; of a pointed name (to the &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;lauses of a pointed predicate)&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;F12&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039; key in conjunction with the keystrokes given in the table (excluding the three last items), to extend the selection.&lt;br /&gt;
&lt;br /&gt;
=== Move Using Bookmarks ===&lt;br /&gt;
&lt;br /&gt;
Sometimes you can wish to mark a line with a bookmark in order to be able to find this line quickly. The Visual Prolog text editor does not support this possibility directly. However, when the text editor is used inside the IDE, then it provides some kind of bookmarking on the base of breakpoints implemented in the Debugger.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How to Set Bookmarks&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:Place the cursor in a line on which you wish to set a bookmark and press the &amp;#039;&amp;#039;&amp;#039;F9&amp;#039;&amp;#039;&amp;#039; key (you can also use the &amp;#039;&amp;#039;&amp;#039;Breakpoint -&amp;gt; Toggle Breakpoint&amp;#039;&amp;#039;&amp;#039; pop-up menu and the &amp;#039;&amp;#039;&amp;#039;Debug | Toggle Breakpoint&amp;#039;&amp;#039;&amp;#039; menu commands). Then in the beginning of this line the [[Image:Ide_db_BreakPoints_en.png]] breakpoint icon appears. In the text editor window status bar find the line number and remember it.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How to Retrieve Bookmarks&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Ctrl+Alt+B&amp;#039;&amp;#039;&amp;#039; key (or select the &amp;#039;&amp;#039;&amp;#039;View | Breakpoints&amp;#039;&amp;#039;&amp;#039; menu command). The &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window appears:&lt;br /&gt;
:[[Image:Ide_TE_Breakpoints.png]]&lt;br /&gt;
:In this window you see all breakpoints currently set in all files. Notice that breakpoints (bookmarks) will be seen even in closed files.&lt;br /&gt;
&lt;br /&gt;
:To retrieve the desired bookmark in the text editor:&lt;br /&gt;
:# In the &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window select the correspondent breakpoint (using the breakpoint file name and the line number).&lt;br /&gt;
:# Double-click the breakpoint - the focus will be set into the text editor window with the file in which the breakpoint is set (this file will be opened in the text editor if needed) and the cursor will be positioned on the line on which the breakpoint is set.  &amp;lt;br /&amp;gt;You can also click the right mouse button in the &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window. In the appeared pop-up menu select the &amp;#039;&amp;#039;&amp;#039;Go to Source&amp;#039;&amp;#039;&amp;#039; command:&lt;br /&gt;
&lt;br /&gt;
:[[Image:Ide_TE_GoTo.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How to Remove Bookmarks&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:There are several ways to remove existing breakpoints (bookmarks):&lt;br /&gt;
:# When you in the text editor and the cursor is in the line marked with the breakpoint, simply press the &amp;#039;&amp;#039;&amp;#039;F12&amp;#039;&amp;#039;&amp;#039; key (you can also use the &amp;#039;&amp;#039;&amp;#039;Breakpoint -&amp;gt; Toggle Breakpoint&amp;#039;&amp;#039;&amp;#039; pop-up menu and the &amp;#039;&amp;#039;&amp;#039;Debug | Toggle Breakpoint&amp;#039;&amp;#039;&amp;#039; menu commands).&lt;br /&gt;
:# You can remove the selected breakpoint with the pop-up menu &amp;#039;&amp;#039;&amp;#039;Remove&amp;#039;&amp;#039;&amp;#039; command (you can also use the &amp;#039;&amp;#039;&amp;#039;Breakpoints | Remove&amp;#039;&amp;#039;&amp;#039; menu command).&lt;br /&gt;
:# You can remove all existing breakpoint with the pop-up menu &amp;#039;&amp;#039;&amp;#039;Remove All&amp;#039;&amp;#039;&amp;#039; command (you can also use the &amp;#039;&amp;#039;&amp;#039;Breakpoints | Remove All&amp;#039;&amp;#039;&amp;#039; menu command).&lt;br /&gt;
&lt;br /&gt;
=== Move by &amp;quot;Go to ...&amp;quot; Commands ===&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Go to&amp;#039;&amp;#039;&amp;#039; IDE menu contains several commands:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_TE_GoToCommands.png|center|frame|&amp;#039;&amp;#039;&amp;#039;&amp;quot;Go to ...&amp;quot; commands&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
These commands help you to fast navigation inside project text files. The target files can be as already opened in the text editor so still are not opened. Let us discuss these commands:&lt;br /&gt;
&lt;br /&gt;
==== Go to Declaration ====&lt;br /&gt;
&lt;br /&gt;
To use this command the cursor should be positioned on some name declared in the project. This name can be any predicate, fact, domain, constant, interface, or class name declared in the project (including declared in PFC packages used in the project).&lt;br /&gt;
&lt;br /&gt;
Press the hot key combination &amp;#039;&amp;#039;&amp;#039;Ctrl+F12&amp;#039;&amp;#039;&amp;#039; (the &amp;#039;&amp;#039;&amp;#039;Go to Declaration&amp;#039;&amp;#039;&amp;#039; pop-up menu command, or the &amp;#039;&amp;#039;&amp;#039;Go to | Go to Declaration&amp;#039;&amp;#039;&amp;#039; menu command) and the cursor jumps onto declaration of this name. The correspondent source code file will be opened in the text editor (if it was not). If this name is declared in several scopes, then the dialog {{ide|IDE Dialogs#Resolve Ambiguity|&amp;#039;&amp;#039;&amp;#039;Resolve Ambiguity&amp;#039;&amp;#039;&amp;#039;}} displaying these scopes appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_TE_ResolveAmbiguity.png|center]]&lt;br /&gt;
&lt;br /&gt;
and you will be able to select the required scope.&lt;br /&gt;
&lt;br /&gt;
==== Go to Definition ====&lt;br /&gt;
&lt;br /&gt;
To use this command the cursor should be positioned on a name of some predicate defined in the project.&lt;br /&gt;
&lt;br /&gt;
Now press the key &amp;#039;&amp;#039;&amp;#039;F12&amp;#039;&amp;#039;&amp;#039; (the &amp;#039;&amp;#039;&amp;#039;Go to Definition&amp;#039;&amp;#039;&amp;#039; pop-up menu command, or the &amp;#039;&amp;#039;&amp;#039;Go to | Go to Definition&amp;#039;&amp;#039;&amp;#039; menu command) and the cursor jumps onto clauses defining this predicate. The correspondent source code file will be opened in the text editor (if it was not). If clauses defining this predicate explicitly exist in several scopes, then the dialog {{ide|IDE Dialogs#Resolve Ambiguity|&amp;#039;&amp;#039;&amp;#039;Resolve Ambiguity&amp;#039;&amp;#039;&amp;#039;}} displaying these scopes appears. Notice that only scopes explicitly containing text of clauses for the predicate are displayed.&lt;br /&gt;
&lt;br /&gt;
==== Go To Related Files ====&lt;br /&gt;
&lt;br /&gt;
Press the hot key combination &amp;#039;&amp;#039;&amp;#039;Ctrl+R&amp;#039;&amp;#039;&amp;#039; and the IDE will open the file which relates to the current file and place the cursor at the beginning of the file. If there is more than one file, which relate to the current file, then the dialog &amp;#039;&amp;#039;&amp;#039;Related Files&amp;#039;&amp;#039;&amp;#039; displaying these files appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_TE_RelatedFiles.png|center]]&lt;br /&gt;
&lt;br /&gt;
The following file types of the same class relate to each other:&lt;br /&gt;
* Declaration of the class&lt;br /&gt;
* Implementation of the class&lt;br /&gt;
* Interface of the object, which is produced by the class&lt;br /&gt;
* Some resource files (e.g. GUI dialogs, windows and forms) that represent the object, which is produced by the class&lt;br /&gt;
&lt;br /&gt;
==== Go to Resource Editor ====&lt;br /&gt;
&lt;br /&gt;
To use this command you should be in a text editor window and the cursor should be placed at the valid resource identifier.&lt;br /&gt;
&lt;br /&gt;
Press the hot key combination &amp;#039;&amp;#039;&amp;#039;Ctrl+Shift+C&amp;#039;&amp;#039;&amp;#039; and the IDE will open the resource file that is associated with the resource identifier at which the cursor is placed. The file would be opened in corresponding editor window.&lt;br /&gt;
&lt;br /&gt;
==== Go to Line Number ====&lt;br /&gt;
&lt;br /&gt;
To use this command you should be in a text editor window.&lt;br /&gt;
Now press the hot key combination &amp;#039;&amp;#039;&amp;#039;Ctrl+F2&amp;#039;&amp;#039;&amp;#039; (the &amp;#039;&amp;#039;&amp;#039;Go to Line Number&amp;#039;&amp;#039;&amp;#039; pop-up menu command, or the &amp;#039;&amp;#039;&amp;#039;Go to | Go to Line Number&amp;#039;&amp;#039;&amp;#039; menu command) and the small dialog &amp;#039;&amp;#039;&amp;#039;Go to Line&amp;#039;&amp;#039;&amp;#039; appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_TE_LineNumber.png|center]]&lt;br /&gt;
&lt;br /&gt;
Type in the desired line number and the cursor jumps onto this line in the current text editor.&lt;br /&gt;
&lt;br /&gt;
==== Go to Position on Clipboard ====&lt;br /&gt;
&lt;br /&gt;
When a runtime error occurs in a Visual Prolog program, then the Visual Prolog exception handling system displays the &amp;#039;&amp;#039;&amp;#039;Program Error&amp;#039;&amp;#039;&amp;#039; dialog, which contains information about this runtime error. This information includes the short error description, the filename and the position of the predicate that raises the error.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Program Error&amp;#039;&amp;#039;&amp;#039; dialog contains the &amp;#039;&amp;#039;&amp;#039;Copy to Clipboard&amp;#039;&amp;#039;&amp;#039; button. Pressing this button you can place the filename and the error position onto the Windows system clipboard.&lt;br /&gt;
&lt;br /&gt;
Now you can load the correspondent project into the IDE and press the &amp;#039;&amp;#039;&amp;#039;Shift+F2&amp;#039;&amp;#039;&amp;#039; hot key (or execute the IDE menu command &amp;#039;&amp;#039;&amp;#039;Go to | Go to Position on Clipboard&amp;#039;&amp;#039;&amp;#039;). Then the IDE opens the file that name was stored in the clipboard and places the cursor onto the error position stored in the clipboard.&lt;br /&gt;
&lt;br /&gt;
==== Go to Error (Warning) ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Go to Selected Error (Warning)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:When errors and/or warnings are generated while compiling project files, then their short descriptions, filenames, and positions are displayed in the &amp;#039;&amp;#039;&amp;#039;Errors (Warnings)&amp;#039;&amp;#039;&amp;#039; window.&lt;br /&gt;
&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Errors (Warnings)&amp;#039;&amp;#039;&amp;#039; window you can double-click some error, then the IDE opens the correspondent file and places the cursor onto the position of this error/warning message. The same action is accepted if you first select some error and then press &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; (or execute the &amp;#039;&amp;#039;&amp;#039;Go to Code&amp;#039;&amp;#039;&amp;#039; pop-up menu command).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Go to Next Error (Warning)&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Errors (Warnings)&amp;#039;&amp;#039;&amp;#039; window you can select one of this error/warning messages. (If you do not make such selection, then the first error/warning message is accepted as the selected.) Then you can go into any other IDE window, make some actions, and then press the &amp;#039;&amp;#039;&amp;#039;F8&amp;#039;&amp;#039;&amp;#039; hot key (or execute the IDE menu command &amp;#039;&amp;#039;&amp;#039;Go to | Go to Next Error (Warning)&amp;#039;&amp;#039;&amp;#039;). The IDE opens the correspondent file and places the cursor onto the position of the error/warning message next to the current.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Go to Previous Error (Warning)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:Similarly, when you press the &amp;#039;&amp;#039;&amp;#039;Shift+F8&amp;#039;&amp;#039;&amp;#039; hot key (or execute the IDE menu command &amp;#039;&amp;#039;&amp;#039;Go to | Go to Previous Error (Warning)&amp;#039;&amp;#039;&amp;#039;). The IDE opens the correspondent file and place the cursor onto the position of the error/warning message previous to the current.&lt;br /&gt;
&lt;br /&gt;
=== Select Text ===&lt;br /&gt;
&lt;br /&gt;
Text is always selected as a stream of consecutive characters.&lt;br /&gt;
* You can select any text with the mouse:&lt;br /&gt;
*# Press and hold the left mouse button at the start of the text you want to select. Then drag the cursor to the end of the selection, and release the button.&lt;br /&gt;
*# Click the left mouse button at the start of the selection. Hold the &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039; key down and click the left button at the end of the selection.&lt;br /&gt;
* You can select any text using the keyboard:&lt;br /&gt;
*:Use any of the cursor motion keys (see the table &amp;#039;&amp;#039;&amp;#039;Cursor Moving Operations&amp;#039;&amp;#039;&amp;#039; above) to move the cursor to the start of the text you want to select. Then press and hold the &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039; key down while using the motion keys to move the cursor to the end of the selection.&lt;br /&gt;
* You can select the whole edited text:&lt;br /&gt;
*:Choose the &amp;#039;&amp;#039;&amp;#039;Edit | Select All&amp;#039;&amp;#039;&amp;#039; menu command or press &amp;#039;&amp;#039;&amp;#039;Ctrl+A&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* You can cancel a selection pressing &amp;#039;&amp;#039;&amp;#039;Esc&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Drag and Drop ===&lt;br /&gt;
&lt;br /&gt;
* To move a selected text:&lt;br /&gt;
*:Hold the &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039; mouse button down insider the selection. Drag the mouse cursor to the new location (you will see that the shape of the mouse pointer changes). Release the &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039; button.&lt;br /&gt;
* To copy a selected text:&lt;br /&gt;
*:Hold the &amp;#039;&amp;#039;&amp;#039;Ctrl+Left&amp;#039;&amp;#039;&amp;#039; mouse button down in the selection. Drag the mouse cursor to the new location (you will see that the shape of the mouse pointer changes). Release the &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039; button.&lt;br /&gt;
&lt;br /&gt;
=== Delete Text ===&lt;br /&gt;
&lt;br /&gt;
You can delete parts of an edited text with the following actions:&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! To Delete This:&lt;br /&gt;
! Do This:&lt;br /&gt;
|-&lt;br /&gt;
| Selected piece of text&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Backspace&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| The next character&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| The previous character&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Backspace&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Till the end of the current word&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+Delete&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Delete -&amp;gt; Delete Word Right&amp;#039;&amp;#039;&amp;#039; pop-up menu command&lt;br /&gt;
|-&lt;br /&gt;
| Back to the last start of the word&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+Backspace&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Delete -&amp;gt; Delete Word Left&amp;#039;&amp;#039;&amp;#039; pop-up menu command&lt;br /&gt;
|-&lt;br /&gt;
| The current line&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+Y&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Delete -&amp;gt; Delete Line&amp;#039;&amp;#039;&amp;#039; pop-up menu command&lt;br /&gt;
|-&lt;br /&gt;
| To the end of the line&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Delete -&amp;gt; Delete Line&amp;#039;&amp;#039;&amp;#039; pop-up menu command&lt;br /&gt;
|-&lt;br /&gt;
| The current word&lt;br /&gt;
|Double-click a word to select it and &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Backspace&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| The whole document&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+A&amp;#039;&amp;#039;&amp;#039; to select the whole text and &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Backspace&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Use Clipboard ===&lt;br /&gt;
&lt;br /&gt;
The Windows clipboard can be used to copy text fragments as inside the text editor so to exchange text fragments with external text editors/viewers.&lt;br /&gt;
&lt;br /&gt;
The following clipboard commands are accessible from the text editor pop-up context menu, from the &amp;#039;&amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&amp;#039; submenu, and from the toolbar:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039; command&lt;br /&gt;
*:Hot key: &amp;#039;&amp;#039;&amp;#039;Ctrl+X&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Shift+Del&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Edit | Cut&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039; pop-up menu commands.&lt;br /&gt;
*:Toolbar: [[Image:Ide_TE_Cut.png]]&lt;br /&gt;
*:This command is enabled only when some text fragment is selected. Use this command to remove the selected text and place it on the clipboard. Cutting text to the clipboard replaces any text previously stored in the clipboard.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039; command&lt;br /&gt;
*:Hot key: &amp;#039;&amp;#039;&amp;#039;Ctrl+C&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Ctrl+Insert&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Edit | Copy&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039; pop-up menu commands.&lt;br /&gt;
*:Toolbar: [[Image:Ide_TE_Copy.png]]&lt;br /&gt;
*:This command is enabled only when some text fragment is selected. Use this command to copy the selected text on the clipboard. Copying text to the clipboard replaces any text previously stored in the clipboard.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039; command&lt;br /&gt;
*:Hot key: &amp;#039;&amp;#039;&amp;#039;Ctrl+V&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Shift+Ins&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Edit | Paste&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039; pop-up menu commands.&lt;br /&gt;
*:Toolbar: [[Image:Ide_TE_Paste.png]]&lt;br /&gt;
*:This command places a copy of the clipboard contents at the insertion point. It is unavailable if the clipboard is empty. Notice that the editor converts all non-viewable symbols from the clipboard contents into space characters.&lt;br /&gt;
*:If there is a selected block in an active text editor, then the &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039; command replaces the selected block with the contents of the clipboard text buffer.&lt;br /&gt;
&lt;br /&gt;
Remember that the clipboard contents is the same for all windows in all applications opened in the Windows session.&lt;br /&gt;
&lt;br /&gt;
=== Change Case ===&lt;br /&gt;
&lt;br /&gt;
You can use the following commands to change case of selected text fragments:&lt;br /&gt;
* Change all selected letters to &amp;#039;&amp;#039;&amp;#039;UPPER&amp;#039;&amp;#039;&amp;#039; case:&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Edit | Upper Case&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Ctrl+Shift+U&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Change all selected letters to &amp;#039;&amp;#039;&amp;#039;lower&amp;#039;&amp;#039;&amp;#039; case:&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Edit | Lower Case&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Ctrl+U&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Invert case of each character:&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Edit | Toggle Case&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Ctrl+Alt+U&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Find Text ==&lt;br /&gt;
&lt;br /&gt;
You can use the {{ide|IDE Dialogs#Find Text|&amp;#039;&amp;#039;&amp;#039;Find Text&amp;#039;&amp;#039;&amp;#039;}} dialog to find each occurrence of any character combination (including uppercase and lowercase characters, whole words or parts of words, using regular expression, etc.) in the file being edited.&lt;br /&gt;
&lt;br /&gt;
You can activate the {{ide|IDE Dialogs#Find Text|&amp;#039;&amp;#039;&amp;#039;Find Text&amp;#039;&amp;#039;&amp;#039;}} dialog with the &amp;#039;&amp;#039;&amp;#039;Ctrl+F&amp;#039;&amp;#039;&amp;#039; hot key, or the &amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039; pop-up menu command, or the &amp;#039;&amp;#039;&amp;#039;Edit | Find&amp;#039;&amp;#039;&amp;#039; menu command.&lt;br /&gt;
&lt;br /&gt;
When you press the &amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039; button in the {{ide|IDE Dialogs#Find Text|&amp;#039;&amp;#039;&amp;#039;Find Text&amp;#039;&amp;#039;&amp;#039;}} dialog, the dialog is closed and the text editor starts searching for the specified string (regular expression) with the specified options. If the text editor finds the string, it selects the found string (highlights) and displays the page containing the highlighted string.&lt;br /&gt;
&lt;br /&gt;
If you wish to find the next occurrence of the specified string, then you can use the &amp;#039;&amp;#039;&amp;#039;Find Next&amp;#039;&amp;#039;&amp;#039; command. Just press &amp;#039;&amp;#039;&amp;#039;F3&amp;#039;&amp;#039;&amp;#039; key (use the &amp;#039;&amp;#039;&amp;#039;Edit | Find Next&amp;#039;&amp;#039;&amp;#039; menu command or the &amp;#039;&amp;#039;&amp;#039;Find Next&amp;#039;&amp;#039;&amp;#039; mouse pop-up menu command).&lt;br /&gt;
&lt;br /&gt;
== Replace Text ==&lt;br /&gt;
&lt;br /&gt;
You can use the {{ide|IDE Dialogs#Replace Text|&amp;#039;&amp;#039;&amp;#039;Replace Text&amp;#039;&amp;#039;&amp;#039;}} dialog to find and replace some occurrences of a text pattern in the file being edited.&lt;br /&gt;
&lt;br /&gt;
You can activate the {{ide|IDE Dialogs#Replace Text|&amp;#039;&amp;#039;&amp;#039;Replace Text&amp;#039;&amp;#039;&amp;#039;}} dialog with the &amp;#039;&amp;#039;&amp;#039;Ctrl+H&amp;#039;&amp;#039;&amp;#039; hot key, or the &amp;#039;&amp;#039;&amp;#039;Replace&amp;#039;&amp;#039;&amp;#039; pop-up menu command, or the &amp;#039;&amp;#039;&amp;#039;Edit | Replace&amp;#039;&amp;#039;&amp;#039; menu command).&lt;br /&gt;
&lt;br /&gt;
==  Find Text in Several Files ==&lt;br /&gt;
&lt;br /&gt;
You can use the {{ide|IDE Dialogs#Find Text in Files|&amp;#039;&amp;#039;&amp;#039;Find in Files&amp;#039;&amp;#039;&amp;#039;}} dialog to find each occurrence of any character combination (including uppercase and lowercase characters, whole words, or parts of words, or using regular expression) in a specified set of files.&lt;br /&gt;
&lt;br /&gt;
You can activate the {{ide|IDE Dialogs#Find Text in Files|&amp;#039;&amp;#039;&amp;#039;Find in Files&amp;#039;&amp;#039;&amp;#039;}} dialog with the &amp;#039;&amp;#039;&amp;#039;Ctrl+Shift+F&amp;#039;&amp;#039;&amp;#039; hot key, or the &amp;#039;&amp;#039;&amp;#039;Find in Files&amp;#039;&amp;#039;&amp;#039; pop-up menu command, or the &amp;#039;&amp;#039;&amp;#039;Edit | Find in Files&amp;#039;&amp;#039;&amp;#039; menu command).&lt;br /&gt;
&lt;br /&gt;
== Find Names Containing a Substring ==&lt;br /&gt;
&lt;br /&gt;
You can use the {{ide|Code Experts#Source Browser|&amp;#039;&amp;#039;&amp;#039;Source Browser&amp;#039;&amp;#039;&amp;#039;}} to find in the project all Visual Prolog names (of some kind) containing some substring. For example, you can find all predicates, which names contain the &amp;lt;vp&amp;gt;&amp;quot;string&amp;quot;&amp;lt;/vp&amp;gt; sub-part.&lt;br /&gt;
&lt;br /&gt;
== Insert Known Names ==&lt;br /&gt;
&lt;br /&gt;
When used in the IDE, the text editor provides some rather useful {{ide|Code Experts#Insert Commands|&amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039;}} menu commands:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_Insert_Commands.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Insert menu commands&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
Using these commands one can easy insert declared in the project predicates, facts, domains, constants, etc. (with scopes in which these names are declared). Most of these commands use &lt;br /&gt;
{{ide|Code Experts#Source Browser|Browse information}} generated by the compiler. Therefore, in order to new declared names appear in the dialogs of the {{ide|Code Experts#Insert Commands|&amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039;}} menu commands, you need to compile the editing file using the &amp;#039;&amp;#039;&amp;#039;Build | Compile&amp;#039;&amp;#039;&amp;#039; (or &amp;#039;&amp;#039;&amp;#039;Ctrl+F9&amp;#039;&amp;#039;&amp;#039;) or any other compilation command.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Text_Editor&amp;diff=3612</id>
		<title>Ide/Text Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Text_Editor&amp;diff=3612"/>
		<updated>2013-05-17T13:25:28Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|Text Editor}}&lt;br /&gt;
&lt;br /&gt;
== About the Text Editor ==&lt;br /&gt;
&lt;br /&gt;
The Visual Prolog &amp;#039;&amp;#039;&amp;#039;Text Editor&amp;#039;&amp;#039;&amp;#039; is used for creating and editing of any text files. However, the Visual Prolog text editor is specially oriented for editing Visual Prolog source code files from the IDE, for example, it supports color highlighting of Visual Prolog language syntax elements (keywords, variables, and other language elements). Also when the text editor is used in the IDE, it supports such Visual Prolog specific functions as &amp;#039;&amp;#039;&amp;#039;{{ide|Text Editor#Go to Declaration|Go to Name Declaration}}&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;{{ide|Text Editor#Go to Definition|Go to Name Definition}}&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;{{ide|Text Editor#Insert Known Names|Insert Interface}}&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Insert Class&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Insert Predicate&amp;#039;&amp;#039;&amp;#039;, etc.&lt;br /&gt;
&lt;br /&gt;
The text editor supports: undo/redo features (standard restriction is 512 steps), search, replace, changing case of letters, cut, copy, and paste operations with the clipboard, and drag and drop for quick block movements with the mouse, etc.&lt;br /&gt;
&lt;br /&gt;
Programmers can create the Visual Prolog &amp;#039;&amp;#039;&amp;#039;Text Editor&amp;#039;&amp;#039;&amp;#039; in their applications using the &amp;#039;&amp;#039;&amp;#039;pfc\gui\controls\sciLexer package&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
The most often used text editor commands have hot keys or can be called with the right mouse button pop-up context menu.&lt;br /&gt;
&lt;br /&gt;
== Getting Assistance ==&lt;br /&gt;
&lt;br /&gt;
Press &amp;#039;&amp;#039;&amp;#039;F1&amp;#039;&amp;#039;&amp;#039; (or the [[Image:Ide_TE_Help.png]] button in the toolbar or the &amp;#039;&amp;#039;&amp;#039;Help | Visual Prolog Help&amp;#039;&amp;#039;&amp;#039; command) when the input focus is in any text editor window to display this help information.&lt;br /&gt;
&lt;br /&gt;
== Set the Editor Options ==&lt;br /&gt;
&lt;br /&gt;
Text editor options are grouped in the {{ide|Options|Options}} dialog.&lt;br /&gt;
&lt;br /&gt;
== How to Work with Files ==&lt;br /&gt;
&lt;br /&gt;
=== Create a New Text File ===&lt;br /&gt;
&lt;br /&gt;
Execute the &amp;#039;&amp;#039;&amp;#039;File | New...&amp;#039;&amp;#039;&amp;#039; command (or &amp;#039;&amp;#039;&amp;#039;Ctrl+N&amp;#039;&amp;#039;&amp;#039;, or click the [[Image:Ide_TE_New.png]] toolbar button) to open the &amp;#039;&amp;#039;&amp;#039;Create Project Item&amp;#039;&amp;#039;&amp;#039; dialog. In the left pane of this dialog select &amp;#039;&amp;#039;&amp;#039;Text File&amp;#039;&amp;#039;&amp;#039;. For more detailed description see {{ide|Creating new Project Items#Creating a Text File|New Text File Creation}}.&lt;br /&gt;
&lt;br /&gt;
=== Open an Existing File ===&lt;br /&gt;
&lt;br /&gt;
There are several ways to open existing text files:&lt;br /&gt;
&lt;br /&gt;
* Using the standard &amp;#039;&amp;#039;&amp;#039;File Open&amp;#039;&amp;#039;&amp;#039; dialog box. To activate it you can use the &amp;#039;&amp;#039;&amp;#039;File | Open&amp;#039;&amp;#039;&amp;#039; command, or the &amp;#039;&amp;#039;&amp;#039;Ctrl+O&amp;#039;&amp;#039;&amp;#039; hot key, or clicking the [[Image:Ide_TE_Open.png]] toolbar button.&lt;br /&gt;
* Clicking a text file in the {{ide|Project Tree|project tree}} in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window.&lt;br /&gt;
* The IDE keeps tracking of text files you last worked on. You can quickly open one of them by selecting it from the list at the bottom of the &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; menu.&lt;br /&gt;
You can have many files opened in text editor windows simultaneously. The &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039; command does not close any already opened text editor windows. The Visual Prolog IDE is restricted to editing a single version of anyone file; therefore, if you try to open an already edited file, then the IDE simply sets the focus into the editor window with this file.&lt;br /&gt;
&lt;br /&gt;
Notice that the text editor can open both UNICODE and DOS character set text files. When it saves files that had DOS character set (before they were opened), then they are saved with the DOS character set. The same for UNICODE files.&lt;br /&gt;
&lt;br /&gt;
=== Save an Edited File ===&lt;br /&gt;
&lt;br /&gt;
There are several ways to save a text file being edited:&lt;br /&gt;
* Using the &amp;#039;&amp;#039;&amp;#039;File | Save&amp;#039;&amp;#039;&amp;#039; command, or the &amp;#039;&amp;#039;&amp;#039;F2&amp;#039;&amp;#039;&amp;#039; hot key, or clicking the [[Image:Ide_TE_Save.png]] toolbar button.&lt;br /&gt;
* Notice that all modified text files are ALWAYS saved before the IDE compiles them.&lt;br /&gt;
&lt;br /&gt;
=== Save a File under Different Name ===&lt;br /&gt;
&lt;br /&gt;
Use the &amp;#039;&amp;#039;&amp;#039;File | Save as ...&amp;#039;&amp;#039;&amp;#039; menu command.&lt;br /&gt;
&lt;br /&gt;
=== Print an Edited File ===&lt;br /&gt;
&lt;br /&gt;
Use the &amp;#039;&amp;#039;&amp;#039;File | Print&amp;#039;&amp;#039;&amp;#039; menu command to print the currently edited file. The standard Windows &amp;#039;&amp;#039;&amp;#039;Print&amp;#039;&amp;#039;&amp;#039; dialog appears. In it you can select some printing options.&lt;br /&gt;
&lt;br /&gt;
== How to Edit Text ==&lt;br /&gt;
&lt;br /&gt;
When you open a text file, then the text editor loads the entire file into memory. So the original file is not changed until changes are saved.&lt;br /&gt;
&lt;br /&gt;
Saving changes you can optionally keep the {{ide|Text Editor#Save an Edited File|backup copy}} of an original file.&lt;br /&gt;
&lt;br /&gt;
While you edit a file, the IDE checks whether the file is changed externally. For example, let us open a text file. Then go to a &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;ource code &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ontrol &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;ystem (SCS), for example, like Microsoft Visual SourceSafe. This SCS stores the master copy of the opened project. Let us get the latest version of some project files from the master copy in the SCS. When you return the focus into the IDE, it checks whether any of the opened text (and any other) files differ from their versions updated from the SCS. If the IDE detects such difference, then it display the warning dialog like this:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;vipbnf&amp;gt;The file &amp;quot;ExternallyChangedFileName&amp;quot; &lt;br /&gt;
            has been modified outside the IDE text editor. &lt;br /&gt;
            Do you want to reload the file or ignore external changes?&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The basic functions for moving around in texts and making simple edits follow the ordinary conventions of other Windows applications. So you can get started immediately. The more powerful editing commands are all on the menus, with their shortcuts shown against them, so you should be able to get up to speed quickly. Most of editing commands are in the pop-up menu, which can be activated with the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Any changes you make can be undone, and you can redo changes that you have undone. You can undo changes even after saving the changed file. However, notice that the undo buffer has the limited length.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Remember&amp;#039;&amp;#039;&amp;#039; that, while loading the text from the selected file, the text editor converts all non-viewable symbols into space characters. Notice that the text editor will also save all such characters like space characters!&lt;br /&gt;
&lt;br /&gt;
=== Insert Text ===&lt;br /&gt;
&lt;br /&gt;
Text is entered at the cursor position (the insertion point). The location of the cursor can be set by the keyboard or the mouse.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;cursor&amp;#039;&amp;#039;&amp;#039; (also known as the &amp;#039;&amp;#039;&amp;#039;caret&amp;#039;&amp;#039;&amp;#039;) is the vertical line that indicates the insertion position for text. Contrast this with the &amp;#039;&amp;#039;&amp;#039;mouse cursor&amp;#039;&amp;#039;&amp;#039; that tracks the mouse position.&lt;br /&gt;
&lt;br /&gt;
If any text is selected, it will be deleted before inserting the first character that you type.&lt;br /&gt;
&lt;br /&gt;
To change to the &amp;#039;&amp;#039;&amp;#039;Overwrite&amp;#039;&amp;#039;&amp;#039; mode, where each typed character replaces the one at the cursor position, press the &amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039; key once. This will also change the &amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039; indicator on the status bar to &amp;#039;&amp;#039;&amp;#039;Overwrite&amp;#039;&amp;#039;&amp;#039;. Press the &amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039; key again, to switch back to the &amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039; mode.&lt;br /&gt;
&lt;br /&gt;
=== Move in Text ===&lt;br /&gt;
&lt;br /&gt;
The cursor is constrained to positions within the existing text only, it cannot be free placed anywhere in the document window outside of the existing text.&lt;br /&gt;
&lt;br /&gt;
The following key combinations can be used to move the cursor:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cursor Moving Operations&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! To Move the Cursor:&lt;br /&gt;
! Press This Key:&lt;br /&gt;
|-&lt;br /&gt;
| To the mouse cursor position&lt;br /&gt;
| Mouse left button&lt;br /&gt;
|- &lt;br /&gt;
| To the beginning of the file&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+Home&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| To the end of the file&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+End&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| From the beginning of the line to the first non-space character in the line&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+Right Arrow&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| To the left margin&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Home&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| To the end of the line&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;End&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Forward one character&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Right Arrow&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|- &lt;br /&gt;
| Back one character&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Left Arrow&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Down one line&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Down Arrow&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Up one line&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Up Arrow&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Forward to the end of the current word&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+Right Arrow&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Back to the end of the previous word&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+Left Arrow&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|- &lt;br /&gt;
| Scroll one page (window) up&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Page Up&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Scroll one page (window) down&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Page Down&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Scroll up and down&lt;br /&gt;
| Rotate the &amp;#039;&amp;#039;&amp;#039;Mouse Roll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| To a specified line number&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+F2&amp;#039;&amp;#039;&amp;#039; and fill in the number&lt;br /&gt;
|-&lt;br /&gt;
| To the &amp;#039;&amp;#039;&amp;#039;Declaration&amp;#039;&amp;#039;&amp;#039; of a pointed name (predicate, fact, domain, etc.)&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+F12&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| To the &amp;#039;&amp;#039;&amp;#039;Definition&amp;#039;&amp;#039;&amp;#039; of a pointed name (to the &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;lauses of a pointed predicate)&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;F12&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039; key in conjunction with the keystrokes given in the table (excluding the three last items), to extend the selection.&lt;br /&gt;
&lt;br /&gt;
=== Move Using Bookmarks ===&lt;br /&gt;
&lt;br /&gt;
Sometimes you can wish to mark a line with a bookmark in order to be able to find this line quickly. The Visual Prolog text editor does not support this possibility directly. However, when the text editor is used inside the IDE, then it provides some kind of bookmarking on the base of breakpoints implemented in the Debugger.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How to Set Bookmarks&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:Place the cursor in a line on which you wish to set a bookmark and press the &amp;#039;&amp;#039;&amp;#039;F9&amp;#039;&amp;#039;&amp;#039; key (you can also use the &amp;#039;&amp;#039;&amp;#039;Breakpoint -&amp;gt; Toggle Breakpoint&amp;#039;&amp;#039;&amp;#039; pop-up menu and the &amp;#039;&amp;#039;&amp;#039;Debug | Toggle Breakpoint&amp;#039;&amp;#039;&amp;#039; menu commands). Then in the beginning of this line the [[Image:Ide_db_BreakPoints_en.png]] breakpoint icon appears. In the text editor window status bar find the line number and remember it.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How to Retrieve Bookmarks&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Ctrl+Alt+B&amp;#039;&amp;#039;&amp;#039; key (or select the &amp;#039;&amp;#039;&amp;#039;View | Breakpoints&amp;#039;&amp;#039;&amp;#039; menu command). The &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window appears:&lt;br /&gt;
:[[Image:Ide_TE_Breakpoints.png]]&lt;br /&gt;
:In this window you see all breakpoints currently set in all files. Notice that breakpoints (bookmarks) will be seen even in closed files.&lt;br /&gt;
&lt;br /&gt;
:To retrieve the desired bookmark in the text editor:&lt;br /&gt;
:# In the &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window select the correspondent breakpoint (using the breakpoint file name and the line number).&lt;br /&gt;
:# Double-click the breakpoint - the focus will be set into the text editor window with the file in which the breakpoint is set (this file will be opened in the text editor if needed) and the cursor will be positioned on the line on which the breakpoint is set.  &amp;lt;br /&amp;gt;You can also click the right mouse button in the &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window. In the appeared pop-up menu select the &amp;#039;&amp;#039;&amp;#039;Go to Source&amp;#039;&amp;#039;&amp;#039; command:&lt;br /&gt;
&lt;br /&gt;
:[[Image:Ide_TE_GoTo.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How to Remove Bookmarks&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:There are several ways to remove existing breakpoints (bookmarks):&lt;br /&gt;
:# When you in the text editor and the cursor is in the line marked with the breakpoint, simply press the &amp;#039;&amp;#039;&amp;#039;F12&amp;#039;&amp;#039;&amp;#039; key (you can also use the &amp;#039;&amp;#039;&amp;#039;Breakpoint -&amp;gt; Toggle Breakpoint&amp;#039;&amp;#039;&amp;#039; pop-up menu and the &amp;#039;&amp;#039;&amp;#039;Debug | Toggle Breakpoint&amp;#039;&amp;#039;&amp;#039; menu commands).&lt;br /&gt;
:# You can remove the selected breakpoint with the pop-up menu &amp;#039;&amp;#039;&amp;#039;Remove&amp;#039;&amp;#039;&amp;#039; command (you can also use the &amp;#039;&amp;#039;&amp;#039;Breakpoints | Remove&amp;#039;&amp;#039;&amp;#039; menu command).&lt;br /&gt;
:# You can remove all existing breakpoint with the pop-up menu &amp;#039;&amp;#039;&amp;#039;Remove All&amp;#039;&amp;#039;&amp;#039; command (you can also use the &amp;#039;&amp;#039;&amp;#039;Breakpoints | Remove All&amp;#039;&amp;#039;&amp;#039; menu command).&lt;br /&gt;
&lt;br /&gt;
=== Move by &amp;quot;Go to ...&amp;quot; Commands ===&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Go to&amp;#039;&amp;#039;&amp;#039; IDE menu contains several commands:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_TE_GoToCommands.png|center|frame|&amp;#039;&amp;#039;&amp;#039;&amp;quot;Go to ...&amp;quot; commands&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
These commands help you to fast navigation inside project text files. The target files can be as already opened in the text editor so still are not opened. Let us discuss these commands:&lt;br /&gt;
&lt;br /&gt;
==== Go to Declaration ====&lt;br /&gt;
&lt;br /&gt;
To use this command the cursor should be positioned on some name declared in the project. This name can be any predicate, fact, domain, constant, interface, or class name declared in the project (including declared in PFC packages used in the project).&lt;br /&gt;
&lt;br /&gt;
Press the hot key combination &amp;#039;&amp;#039;&amp;#039;Ctrl+F12&amp;#039;&amp;#039;&amp;#039; (the &amp;#039;&amp;#039;&amp;#039;Go to Declaration&amp;#039;&amp;#039;&amp;#039; pop-up menu command, or the &amp;#039;&amp;#039;&amp;#039;Go to | Go to Declaration&amp;#039;&amp;#039;&amp;#039; menu command) and the cursor jumps onto declaration of this name. The correspondent source code file will be opened in the text editor (if it was not). If this name is declared in several scopes, then the dialog {{ide|IDE Dialogs#Resolve Ambiguity|&amp;#039;&amp;#039;&amp;#039;Resolve Ambiguity&amp;#039;&amp;#039;&amp;#039;}} displaying these scopes appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_TE_ResolveAmbiguity.png|center]]&lt;br /&gt;
&lt;br /&gt;
and you will be able to select the required scope.&lt;br /&gt;
&lt;br /&gt;
==== Go to Definition ====&lt;br /&gt;
&lt;br /&gt;
To use this command the cursor should be positioned on a name of some predicate defined in the project.&lt;br /&gt;
&lt;br /&gt;
Now press the key &amp;#039;&amp;#039;&amp;#039;F12&amp;#039;&amp;#039;&amp;#039; (the &amp;#039;&amp;#039;&amp;#039;Go to Definition&amp;#039;&amp;#039;&amp;#039; pop-up menu command, or the &amp;#039;&amp;#039;&amp;#039;Go to | Go to Definition&amp;#039;&amp;#039;&amp;#039; menu command) and the cursor jumps onto clauses defining this predicate. The correspondent source code file will be opened in the text editor (if it was not). If clauses defining this predicate explicitly exist in several scopes, then the dialog {{ide|IDE Dialogs#Resolve Ambiguity|&amp;#039;&amp;#039;&amp;#039;Resolve Ambiguity&amp;#039;&amp;#039;&amp;#039;}} displaying these scopes appears. Notice that only scopes explicitly containing text of clauses for the predicate are displayed.&lt;br /&gt;
&lt;br /&gt;
==== Go To Related Files ====&lt;br /&gt;
&lt;br /&gt;
Press the hot key combination &amp;#039;&amp;#039;&amp;#039;Ctrl+R&amp;#039;&amp;#039;&amp;#039; and the IDE will open the file which relates to the current file and place the cursor at the beginning of the file. If there is more than one file, which relate to the current file, then the dialog &amp;#039;&amp;#039;&amp;#039;Related Files&amp;#039;&amp;#039;&amp;#039; displaying these files appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_TE_RelatedFiles.png|center]]&lt;br /&gt;
&lt;br /&gt;
The following file types of the same class relate to each other:&lt;br /&gt;
* Declaration of the class&lt;br /&gt;
* Implementation of the class&lt;br /&gt;
* Interface of the object, which is produced by the class&lt;br /&gt;
* Some resource files (e.g. GUI dialogs, windows and forms) that represent the object, which is produced by the class&lt;br /&gt;
&lt;br /&gt;
==== Go to Resource Editor ====&lt;br /&gt;
&lt;br /&gt;
To use this command you should be in a text editor window and the cursor should be placed at the valid resource identifier.&lt;br /&gt;
&lt;br /&gt;
Press the hot key combination &amp;#039;&amp;#039;&amp;#039;Ctrl+Shift+C&amp;#039;&amp;#039;&amp;#039; and the IDE will open the resource file that is associated with the resource identifier at which the cursor is placed. The file would be opened in corresponding editor window.&lt;br /&gt;
&lt;br /&gt;
==== Go to Line Number ====&lt;br /&gt;
&lt;br /&gt;
To use this command you should be in a text editor window.&lt;br /&gt;
Now press the hot key combination &amp;#039;&amp;#039;&amp;#039;Ctrl+F2&amp;#039;&amp;#039;&amp;#039; (the &amp;#039;&amp;#039;&amp;#039;Go to Line Number&amp;#039;&amp;#039;&amp;#039; pop-up menu command, or the &amp;#039;&amp;#039;&amp;#039;Go to | Go to Line Number&amp;#039;&amp;#039;&amp;#039; menu command) and the small dialog &amp;#039;&amp;#039;&amp;#039;Go to Line&amp;#039;&amp;#039;&amp;#039; appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_TE_LineNumber.png|center]]&lt;br /&gt;
&lt;br /&gt;
Type in the desired line number and the cursor jumps onto this line in the current text editor.&lt;br /&gt;
&lt;br /&gt;
==== Go to Position on Clipboard ====&lt;br /&gt;
&lt;br /&gt;
When a runtime error occurs in a Visual Prolog program, then the Visual Prolog exception handling system displays the &amp;#039;&amp;#039;&amp;#039;Program Error&amp;#039;&amp;#039;&amp;#039; dialog, which contains information about this runtime error. This information includes the short error description, the filename and the position of the predicate that raises the error.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Program Error&amp;#039;&amp;#039;&amp;#039; dialog contains the &amp;#039;&amp;#039;&amp;#039;Copy to Clipboard&amp;#039;&amp;#039;&amp;#039; button. Pressing this button you can place the filename and the error position onto the Windows system clipboard.&lt;br /&gt;
&lt;br /&gt;
Now you can load the correspondent project into the IDE and press the &amp;#039;&amp;#039;&amp;#039;Shift+F2&amp;#039;&amp;#039;&amp;#039; hot key (or execute the IDE menu command &amp;#039;&amp;#039;&amp;#039;Go to | Go to Position on Clipboard&amp;#039;&amp;#039;&amp;#039;). Then the IDE opens the file that name was stored in the clipboard and places the cursor onto the error position stored in the clipboard.&lt;br /&gt;
&lt;br /&gt;
==== Go to Error (Warning) ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Go to Selected Error (Warning)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:When errors and/or warnings are generated while compiling project files, then their short descriptions, filenames, and positions are displayed in the &amp;#039;&amp;#039;&amp;#039;Errors (Warnings)&amp;#039;&amp;#039;&amp;#039; window.&lt;br /&gt;
&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Errors (Warnings)&amp;#039;&amp;#039;&amp;#039; window you can double-click some error, then the IDE opens the correspondent file and places the cursor onto the position of this error/warning message. The same action is accepted if you first select some error and then press &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; (or execute the &amp;#039;&amp;#039;&amp;#039;Go to Code&amp;#039;&amp;#039;&amp;#039; pop-up menu command).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Go to Next Error (Warning)&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Errors (Warnings)&amp;#039;&amp;#039;&amp;#039; window you can select one of this error/warning messages. (If you do not make such selection, then the first error/warning message is accepted as the selected.) Then you can go into any other IDE window, make some actions, and then press the &amp;#039;&amp;#039;&amp;#039;F8&amp;#039;&amp;#039;&amp;#039; hot key (or execute the IDE menu command &amp;#039;&amp;#039;&amp;#039;Go to | Go to Next Error (Warning)&amp;#039;&amp;#039;&amp;#039;). The IDE opens the correspondent file and places the cursor onto the position of the error/warning message next to the current.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Go to Previous Error (Warning)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:Similarly, when you press the &amp;#039;&amp;#039;&amp;#039;Shift+F8&amp;#039;&amp;#039;&amp;#039; hot key (or execute the IDE menu command &amp;#039;&amp;#039;&amp;#039;Go to | Go to Previous Error (Warning)&amp;#039;&amp;#039;&amp;#039;). The IDE opens the correspondent file and place the cursor onto the position of the error/warning message previous to the current.&lt;br /&gt;
&lt;br /&gt;
=== Select Text ===&lt;br /&gt;
&lt;br /&gt;
Text is always selected as a stream of consecutive characters.&lt;br /&gt;
* You can select any text with the mouse:&lt;br /&gt;
*# Press and hold the left mouse button at the start of the text you want to select. Then drag the cursor to the end of the selection, and release the button.&lt;br /&gt;
*# Click the left mouse button at the start of the selection. Hold the &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039; key down and click the left button at the end of the selection.&lt;br /&gt;
* You can select any text using the keyboard:&lt;br /&gt;
*:Use any of the cursor motion keys (see the table &amp;#039;&amp;#039;&amp;#039;Cursor Moving Operations&amp;#039;&amp;#039;&amp;#039; above) to move the cursor to the start of the text you want to select. Then press and hold the &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039; key down while using the motion keys to move the cursor to the end of the selection.&lt;br /&gt;
* You can select the whole edited text:&lt;br /&gt;
*:Choose the &amp;#039;&amp;#039;&amp;#039;Edit | Select All&amp;#039;&amp;#039;&amp;#039; menu command or press &amp;#039;&amp;#039;&amp;#039;Ctrl+A&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* You can cancel a selection pressing &amp;#039;&amp;#039;&amp;#039;Esc&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Drag and Drop ===&lt;br /&gt;
&lt;br /&gt;
* To move a selected text:&lt;br /&gt;
*:Hold the &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039; mouse button down insider the selection. Drag the mouse cursor to the new location (you will see that the shape of the mouse pointer changes). Release the &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039; button.&lt;br /&gt;
* To copy a selected text:&lt;br /&gt;
*:Hold the &amp;#039;&amp;#039;&amp;#039;Ctrl+Left&amp;#039;&amp;#039;&amp;#039; mouse button down in the selection. Drag the mouse cursor to the new location (you will see that the shape of the mouse pointer changes). Release the &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039; button.&lt;br /&gt;
&lt;br /&gt;
=== Delete Text ===&lt;br /&gt;
&lt;br /&gt;
You can delete parts of an edited text with the following actions:&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! To Delete This:&lt;br /&gt;
! Do This:&lt;br /&gt;
|-&lt;br /&gt;
| Selected piece of text&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Backspace&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| The next character&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| The previous character&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Backspace&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Till the end of the current word&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+Delete&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Delete -&amp;gt; Delete Word Right&amp;#039;&amp;#039;&amp;#039; pop-up menu command&lt;br /&gt;
|-&lt;br /&gt;
| Back to the last start of the word&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+Backspace&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Delete -&amp;gt; Delete Word Left&amp;#039;&amp;#039;&amp;#039; pop-up menu command&lt;br /&gt;
|-&lt;br /&gt;
| The current line&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+Y&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Delete -&amp;gt; Delete Line&amp;#039;&amp;#039;&amp;#039; pop-up menu command&lt;br /&gt;
|-&lt;br /&gt;
| To the end of the line&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Delete -&amp;gt; Delete Line&amp;#039;&amp;#039;&amp;#039; pop-up menu command&lt;br /&gt;
|-&lt;br /&gt;
| The current word&lt;br /&gt;
|Double-click a word to select it and &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Backspace&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| The whole document&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ctrl+A&amp;#039;&amp;#039;&amp;#039; to select the whole text and &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Backspace&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Use Clipboard ===&lt;br /&gt;
&lt;br /&gt;
The Windows clipboard can be used to copy text fragments as inside the text editor so to exchange text fragments with external text editors/viewers.&lt;br /&gt;
&lt;br /&gt;
The following clipboard commands are accessible from the text editor pop-up context menu, from the &amp;#039;&amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&amp;#039; submenu, and from the toolbar:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039; command&lt;br /&gt;
*:Hot key: &amp;#039;&amp;#039;&amp;#039;Ctrl+X&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Shift+Del&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Edit | Cut&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039; pop-up menu commands.&lt;br /&gt;
*:Toolbar: [[Image:Ide_TE_Cut.png]]&lt;br /&gt;
*:This command is enabled only when some text fragment is selected. Use this command to remove the selected text and place it on the clipboard. Cutting text to the clipboard replaces any text previously stored in the clipboard.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039; command&lt;br /&gt;
*:Hot key: &amp;#039;&amp;#039;&amp;#039;Ctrl+C&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Ctrl+Insert&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Edit | Copy&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039; pop-up menu commands.&lt;br /&gt;
*:Toolbar: [[Image:Ide_TE_Copy.png]]&lt;br /&gt;
*:This command is enabled only when some text fragment is selected. Use this command to copy the selected text on the clipboard. Copying text to the clipboard replaces any text previously stored in the clipboard.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039; command&lt;br /&gt;
*:Hot key: &amp;#039;&amp;#039;&amp;#039;Ctrl+V&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Shift+Ins&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Edit | Paste&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039; pop-up menu commands.&lt;br /&gt;
*:Toolbar: [[Image:Ide_TE_Paste.png]]&lt;br /&gt;
*:This command places a copy of the clipboard contents at the insertion point. It is unavailable if the clipboard is empty. Notice that the editor converts all non-viewable symbols from the clipboard contents into space characters.&lt;br /&gt;
*:If there is a selected block in an active text editor, then the &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039; command replaces the selected block with the contents of the clipboard text buffer.&lt;br /&gt;
&lt;br /&gt;
Remember that the clipboard contents is the same for all windows in all applications opened in the Windows session.&lt;br /&gt;
&lt;br /&gt;
=== Change Case ===&lt;br /&gt;
&lt;br /&gt;
You can use the following commands to change case of selected text fragments:&lt;br /&gt;
* Change all selected letters to &amp;#039;&amp;#039;&amp;#039;UPPER&amp;#039;&amp;#039;&amp;#039; case:&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Edit | Upper Case&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Ctrl+Shift+U&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Change all selected letters to &amp;#039;&amp;#039;&amp;#039;lower&amp;#039;&amp;#039;&amp;#039; case:&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Edit | Lower Case&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Ctrl+U&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Invert case of each character:&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Edit | Toggle Case&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Ctrl+Alt+U&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Find Text ==&lt;br /&gt;
&lt;br /&gt;
You can use the {{ide|IDE Dialogs#Find Text|&amp;#039;&amp;#039;&amp;#039;Find Text&amp;#039;&amp;#039;&amp;#039;}} dialog to find each occurrence of any character combination (including uppercase and lowercase characters, whole words or parts of words, using regular expression, etc.) in the file being edited.&lt;br /&gt;
&lt;br /&gt;
You can activate the {{ide|IDE Dialogs#Find Text|&amp;#039;&amp;#039;&amp;#039;Find Text&amp;#039;&amp;#039;&amp;#039;}} dialog with the &amp;#039;&amp;#039;&amp;#039;Ctrl+F&amp;#039;&amp;#039;&amp;#039; hot key, or the &amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039; pop-up menu command, or the &amp;#039;&amp;#039;&amp;#039;Edit | Find&amp;#039;&amp;#039;&amp;#039; menu command.&lt;br /&gt;
&lt;br /&gt;
When you press the &amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039; button in the {{ide|IDE Dialogs#Find Text|&amp;#039;&amp;#039;&amp;#039;Find Text&amp;#039;&amp;#039;&amp;#039;}} dialog, the dialog is closed and the text editor starts searching for the specified string (regular expression) with the specified options. If the text editor finds the string, it selects the found string (highlights) and displays the page containing the highlighted string.&lt;br /&gt;
&lt;br /&gt;
If you wish to find the next occurrence of the specified string, then you can use the &amp;#039;&amp;#039;&amp;#039;Find Next&amp;#039;&amp;#039;&amp;#039; command. Just press &amp;#039;&amp;#039;&amp;#039;F3&amp;#039;&amp;#039;&amp;#039; key (use the &amp;#039;&amp;#039;&amp;#039;Edit | Find Next&amp;#039;&amp;#039;&amp;#039; menu command or the &amp;#039;&amp;#039;&amp;#039;Find Next&amp;#039;&amp;#039;&amp;#039; mouse pop-up menu command).&lt;br /&gt;
&lt;br /&gt;
== Replace Text ==&lt;br /&gt;
&lt;br /&gt;
You can use the {{ide|IDE Dialogs#Replace Text|&amp;#039;&amp;#039;&amp;#039;Replace Text&amp;#039;&amp;#039;&amp;#039;}} dialog to find and replace some occurrences of a text pattern in the file being edited.&lt;br /&gt;
&lt;br /&gt;
You can activate the {{ide|IDE Dialogs#Replace Text|&amp;#039;&amp;#039;&amp;#039;Replace Text&amp;#039;&amp;#039;&amp;#039;}} dialog with the &amp;#039;&amp;#039;&amp;#039;Ctrl+H&amp;#039;&amp;#039;&amp;#039; hot key, or the &amp;#039;&amp;#039;&amp;#039;Replace&amp;#039;&amp;#039;&amp;#039; pop-up menu command, or the &amp;#039;&amp;#039;&amp;#039;Edit | Replace&amp;#039;&amp;#039;&amp;#039; menu command).&lt;br /&gt;
&lt;br /&gt;
==  Find Text in Several Files ==&lt;br /&gt;
&lt;br /&gt;
You can use the {{ide|IDE Dialogs#Find Text in Files|&amp;#039;&amp;#039;&amp;#039;Find in Files&amp;#039;&amp;#039;&amp;#039;}} dialog to find each occurrence of any character combination (including uppercase and lowercase characters, whole words, or parts of words, or using regular expression) in a specified set of files.&lt;br /&gt;
&lt;br /&gt;
You can activate the {{ide|IDE Dialogs#Find Text in Files|&amp;#039;&amp;#039;&amp;#039;Find in Files&amp;#039;&amp;#039;&amp;#039;}} dialog with the &amp;#039;&amp;#039;&amp;#039;Ctrl+Shift+F&amp;#039;&amp;#039;&amp;#039; hot key, or the &amp;#039;&amp;#039;&amp;#039;Find in Files&amp;#039;&amp;#039;&amp;#039; pop-up menu command, or the &amp;#039;&amp;#039;&amp;#039;Edit | Find in Files&amp;#039;&amp;#039;&amp;#039; menu command).&lt;br /&gt;
&lt;br /&gt;
== Find Names Containing a Substring ==&lt;br /&gt;
&lt;br /&gt;
You can use the {{ide|Code Experts#Source Browser|&amp;#039;&amp;#039;&amp;#039;Source Browser&amp;#039;&amp;#039;&amp;#039;}} to find in the project all Visual Prolog names (of some kind) containing some substring. For example, you can find all predicates, which names contain the &amp;lt;vp&amp;gt;&amp;quot;string&amp;quot;&amp;lt;/vp&amp;gt; sub-part.&lt;br /&gt;
&lt;br /&gt;
== Insert Known Names ==&lt;br /&gt;
&lt;br /&gt;
When used in the IDE, the text editor provides some rather useful {{ide|Code Experts#Insert Commands|&amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039;}} menu commands:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_Insert_Commands.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Insert menu commands&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
Using these commands one can easy insert declared in the project predicates, facts, domains, constants, etc. (with scopes in which these names are declared). Most of these commands use &lt;br /&gt;
{{ide|Code Experts#Source Browser|Source Browser}} generated by the compiler. Therefore, in order to new declared names appear in the dialogs of the {{ide|Code Experts#Insert Commands|&amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039;}} menu commands, you need to compile the editing file using the &amp;#039;&amp;#039;&amp;#039;Build | Compile&amp;#039;&amp;#039;&amp;#039; (or &amp;#039;&amp;#039;&amp;#039;Ctrl+F9&amp;#039;&amp;#039;&amp;#039;) or any other compilation command.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/IDE_Dialogs&amp;diff=3611</id>
		<title>Ide/IDE Dialogs</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/IDE_Dialogs&amp;diff=3611"/>
		<updated>2013-05-17T12:59:04Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|IDE Dialogs}}&lt;br /&gt;
&lt;br /&gt;
=== Warning: These files will be overwritten ===&lt;br /&gt;
&lt;br /&gt;
When you create a new project with the IDE {{ide|Project Settings#General Tab|Project Settings}} facility, you can specify the &amp;#039;&amp;#039;&amp;#039;Subdirectory&amp;#039;&amp;#039;&amp;#039; in which the project will be placed (notice that usually this name is generated automatically from the specified project name). Notice that each project contains several standard files (always automatically generated by the IDE) with standard names. Therefore, if the specified subdirectory name coincides with one in which a previously created project already exists, then these 2 projects should have several standard files with the same names. Because the old versions of these files can be incompatible with the new project, the {{ide|Project Settings#General Tab|Project Settings}} generates the warning dialog with the title:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;These files will be overwritten:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
In the central pane of this dialog you see a list of files which should be overwritten.&lt;br /&gt;
&lt;br /&gt;
You can select the following actions:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If you select this button, then the old versions of files specified in the list will be overwritten with the new versions.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If you select this button, then no files will be overwritten, the IDE returns into the {{ide|Project Settings#General Tab|Project Settings}} dialog where you can the specify other name in the &amp;#039;&amp;#039;&amp;#039;Subdirectory&amp;#039;&amp;#039;&amp;#039; control.&lt;br /&gt;
&lt;br /&gt;
=== Resolve Ambiguity ===&lt;br /&gt;
&lt;br /&gt;
This dialog appears when you execute the:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Go to Declaration&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;Ctrl+Shift+D&amp;#039;&amp;#039;&amp;#039;),&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Go to Definition&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;Ctrl+Shift+C&amp;#039;&amp;#039;&amp;#039;), or&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Show Visual Prolog Help&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F1&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
commands and the cursor points onto a &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot;, which has several versions of the &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot; references in the generated {{ide|Code Experts#Source Browser|browse information}} and cannot resolve this ambiguity using all additional information about the &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot;, which The IDE can gather in the edited file.&lt;br /&gt;
&lt;br /&gt;
Correspondently it have titles:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Resolve Ambiguity of &amp;quot;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;quot; Declaration&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Resolve Ambiguity of &amp;quot;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;quot; Definition&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Choose &amp;quot;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;quot; to Show Help Topic&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
These dialogs display lists of references to the &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot; with additional information (gathered in the generated by the compiler {{ide|Code Experts#Source Browser|browse information}}, which helps you to resolve ambiguity of the &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Names are prefixed with the same {{ide|Project Tree#Icons Used in the Project Window|icons}}, which are used in the Project window.&lt;br /&gt;
&lt;br /&gt;
To continue an initiated command execution you need to select (click) one of displayed lines containing unique references to the &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Send Bug Report to Support ===&lt;br /&gt;
&lt;br /&gt;
Normally you should use &amp;#039;&amp;#039;&amp;#039;Help | Send Bug Report...&amp;#039;&amp;#039;&amp;#039; IDE command to send a bug report or feedback. You can also send a mail directly to the &amp;#039;&amp;#039;&amp;#039;Visual Prolog Support Service&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;About Visual Prolog Support Service&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Visual Prolog Support&amp;#039;&amp;#039;&amp;#039; is responsible for answering questions only about bugs and problems with using of Visual Prolog language, the IDE, and other tools and packages supplied in &amp;#039;&amp;#039;&amp;#039;Commercial&amp;#039;&amp;#039;&amp;#039; editions of Visual Prolog.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Guidelines for preparing Bug Reports to Visual Prolog Support&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Please check the following information sources before submitting your E-mail:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* [http://www.visual-prolog.com/vip6/support/faq.htm Frequently Asked Questions]&lt;br /&gt;
* [http://kb.visual-prolog.com Visual Prolog Knowledge Base]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Please do not ask Visual Prolog Support about general problems like: &amp;quot;Visual Prolog and Fuzzy Logic?&amp;quot;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
For things please use [http://discuss.visual-prolog.com/ Visual Prolog Discussion Forum], where you are free to discuss any question deals with Visual Prolog. Anybody can read the debate, but you need to register if you want to make postings.&lt;br /&gt;
&lt;br /&gt;
Prolog Development Center will follow and participate as much as possible in the debates. But we cannot make any &amp;quot;answer guarantee&amp;quot;; this is mainly your forum.&lt;br /&gt;
&lt;br /&gt;
This forum will receive all major announcements from Prolog Development Center.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Your message MUST contain information generated by &amp;quot;Help | Send Bug Report | Show Details&amp;quot; IDE command.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This information contains some parameters about your computer and your project that are useful for correct understanding of the problem. It should be copied to the mail.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4. How to write a message:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;To:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The address of Visual Prolog International Support Group is: &amp;#039;&amp;#039;&amp;#039;support@visual-prolog.com&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Subject:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Use a short, precise, and relevant Subject (title line). Please, do not use subjects like: &amp;#039;&amp;#039;&amp;#039;My 1st problem with Prolog&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Message Text:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:One problem per message, please.&lt;br /&gt;
*:Here you should describe your problem as detailed and precise, as it is possible.&lt;br /&gt;
*:Please supply examples of code illustrating your problem.&lt;br /&gt;
*:The information supplied in your message should be sufficient to reproduce your problem on our computers.&lt;br /&gt;
&lt;br /&gt;
Please follow the above guidelines when you E-mail Bug Reports to Visual Prolog Support.&lt;br /&gt;
&lt;br /&gt;
Regards&lt;br /&gt;
&lt;br /&gt;
The Visual Prolog International Support Group&lt;br /&gt;
&lt;br /&gt;
support@visual-prolog.com&lt;br /&gt;
&lt;br /&gt;
=== Replace Text ===&lt;br /&gt;
&lt;br /&gt;
Using this dialog you can find and replace each or every occurrence of a text pattern (a string or a regular expression) in the edited file.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039; box, type in the search string, or &amp;#039;&amp;#039;regular expression&amp;#039;&amp;#039;, or choose a previous string from the drop-down list.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;New Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Type the replacement string, or &amp;#039;&amp;#039;regular replacement expression&amp;#039;&amp;#039; in the &amp;#039;&amp;#039;&amp;#039;New Text&amp;#039;&amp;#039;&amp;#039; box, or choose a previous string from the drop-down list. Notice that &amp;#039;&amp;#039;regular replacement expressions&amp;#039;&amp;#039; have limited syntax regarding to &amp;#039;&amp;#039;regular expressions&amp;#039;&amp;#039; used in the  &amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039;  patterns.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Origin&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Options in the &amp;#039;&amp;#039;&amp;#039;Origin&amp;#039;&amp;#039;&amp;#039; group box defines the file scope in which the string should be searched.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Entire Scope&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Defines that the string should be searched in all file.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;From Cursor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Defines that the string should be searched beginning from the current cursor position.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Selected Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Defines that the string should be searched only in the selected piece of the edited text.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Direction&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Options in the &amp;#039;&amp;#039;&amp;#039;Direction&amp;#039;&amp;#039;&amp;#039; group box defines the direction in which the string should be searched.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Forward&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Search the document below the insertion point.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Backward&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Search the document above the insertion point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Options&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this group box you defines the search options.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Case Sensitive&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Find strings having the given pattern of uppercase and lowercase letters.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Whole Words Only&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Find occurrences of the string as whole words. It only displays instances of the Find what string that are matched in complete words. For example, a search for &amp;quot;my::List&amp;quot; will return &amp;quot;my::List&amp;quot; but not &amp;quot;cmy::List&amp;quot; or &amp;quot;my::Listtt&amp;quot;.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Use Regular Expressions&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:See  {{ide|IDE Dialogs#Regular Expressions|Regular Expressions}} for details.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Replace&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Replace&amp;#039;&amp;#039;&amp;#039; button to replace the current selection or to invoke searching of the specified string (regular expression) with the specified options if there are no selection.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Find Next&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039; button to invoke searching of the next occurrence of the specified string (regular expression) with the specified options.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Change All&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Change All&amp;#039;&amp;#039;&amp;#039; button to replace all occurrences of the search text, in the specified scope.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Close this dialog.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Help&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Displays this help topic.&lt;br /&gt;
&lt;br /&gt;
=== Find Text in Files ===&lt;br /&gt;
&lt;br /&gt;
Using this dialog you can find each occurrence of a combination of any characters, including uppercase and lowercase characters, whole words, or parts of words, or regular expressions in the specified group of files.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_FindInFiles.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039; box, type in the search string, or &amp;#039;&amp;#039;regular expression&amp;#039;&amp;#039;, or choose a previous string from the drop-down list.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Find in All Opened Editors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Check this option if you wish that the IDE search the specified string only in that text files, which are currently opened in the IDE text editors.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Find in Project Files Only&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Check this option if you wish that the IDE search the specified string only in text files, which are parts of the project currently loaded into the IDE.&lt;br /&gt;
:This button is disabled when the project is not loaded.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Show Search Results in New Window&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:If this option is checked ON, then the IDE will open new &amp;#039;&amp;#039;&amp;#039;Search results&amp;#039;&amp;#039;&amp;#039; window each time the search is completed, otherwise it will display search results in the same window.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;In Files:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this list editor you can specify (or select from the list of previously used) the file mask which will be used to restrict files in which the IDE will search for the string. For example, you can use &amp;lt;vp&amp;gt;*&amp;lt;/vp&amp;gt; operator to specify that any sub-string can be used instead of this operator.&lt;br /&gt;
:This option is disabled when the &amp;#039;&amp;#039;&amp;#039;Find in All Opened Editors&amp;#039;&amp;#039;&amp;#039; option is checked ON.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;In Folder:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this list editor you can specify (or select from the list of previously used) the folder, which will be used to restrict files in which the IDE will search for the string.&lt;br /&gt;
:This option is disabled when the &amp;#039;&amp;#039;&amp;#039;Find in All Opened Editors&amp;#039;&amp;#039;&amp;#039; option is checked ON.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Browse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press this button to open the &amp;#039;&amp;#039;&amp;#039;Set New Directory&amp;#039;&amp;#039;&amp;#039; dialog in which you can select the folder, which name will be inserted into the &amp;#039;&amp;#039;&amp;#039;In Folder&amp;#039;&amp;#039;&amp;#039; field.&lt;br /&gt;
:&amp;lt;br/&amp;gt;Notice that when &amp;#039;&amp;#039;&amp;#039;Find in Project Files Only&amp;#039;&amp;#039;&amp;#039; is checked ON, then this dialog will gives you access only to the folders known to the project.&lt;br /&gt;
:This button is disabled when the &amp;#039;&amp;#039;&amp;#039;Find in All Opened Editors&amp;#039;&amp;#039;&amp;#039; option is checked ON.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Search Subfolders&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When this option is checked ON (the default), then the IDE will search in all subfolders of the folder specified in the &amp;#039;&amp;#039;&amp;#039;In Folder&amp;#039;&amp;#039;&amp;#039; field.&lt;br /&gt;
:Otherwise, search will be only in the files directly in the folder specified in the &amp;#039;&amp;#039;&amp;#039;In Folder&amp;#039;&amp;#039;&amp;#039; field.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Whole Words Only&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Find occurrences of the string as whole words. It only displays instances of the Find what string that are matched in complete words. For example, a search for &amp;quot;my::List&amp;quot; will return &amp;quot;my::List&amp;quot; but not &amp;quot;cmy::List&amp;quot; or &amp;quot;my::Listtt&amp;quot;.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Case Sensitive&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:The selected item specifies whether the search should match case of the whole search string (&amp;#039;&amp;#039;&amp;#039;Case Sensitive&amp;#039;&amp;#039;&amp;#039;), ignore the case (&amp;#039;&amp;#039;&amp;#039;Case Insensitive&amp;#039;&amp;#039;&amp;#039;) or match the case of the first character of the search string (&amp;#039;&amp;#039;&amp;#039;Prolog Sensitive&amp;#039;&amp;#039;&amp;#039;). The last option is unavailable, when &amp;#039;&amp;#039;&amp;#039;Regular Expressions&amp;#039;&amp;#039;&amp;#039; option is checked ON.&lt;br /&gt;
&lt;br /&gt;
==== Regular Expressions ====&lt;br /&gt;
&lt;br /&gt;
Provides possibility to perform advanced string searching operations (searching, matching and replacing) using regular expressions.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Regular Expressions &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:A &amp;#039;&amp;#039;regular expression&amp;#039;&amp;#039; (or pattern) is a text string that describes some (mathematical) group of strings. A string &amp;lt;vp&amp;gt;S&amp;lt;/vp&amp;gt; &amp;quot;matches&amp;quot; a regular expression &amp;lt;vp&amp;gt;R&amp;lt;/vp&amp;gt; if &amp;lt;vp&amp;gt;S&amp;lt;/vp&amp;gt; belongs to the set of strings described by &amp;lt;vp&amp;gt;R&amp;lt;/vp&amp;gt;. Using regular expression, you can:&lt;br /&gt;
:* check whether the specified string matches the specified pattern;&lt;br /&gt;
:* search within a string for a substring matching the specified pattern;&lt;br /&gt;
:* perform replacing within matched substrings.&lt;br /&gt;
:Some regular expressions can match only one substring. That is, a set of strings such regular expression describes has only one member. For example, the regular expression &amp;#039;&amp;#039;&amp;#039;foo&amp;#039;&amp;#039;&amp;#039; matches only the substring &amp;#039;&amp;#039;&amp;#039;foo&amp;#039;&amp;#039;&amp;#039; and no others. Other regular expressions can match more than one substring. That is, a set of strings such regular expression describes has more than one member. For example, the regular expression &amp;lt;vp&amp;gt;f*&amp;lt;/vp&amp;gt; matches the set of strings made up of any number (including zero) of &amp;#039;&amp;#039;&amp;#039;f&amp;#039;&amp;#039;&amp;#039; characters. Some characters in regular expressions match themselves (such as &amp;#039;&amp;#039;&amp;#039;f&amp;#039;&amp;#039;&amp;#039;) and some do not match to any concrete character (such as &amp;lt;vp&amp;gt;*&amp;lt;/vp&amp;gt;). Characters that do not match themselves are used to specify patterns, which describe sets of different strings.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Regular Expression Syntax&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
See the [pfc\regEx\packRegEx.htm regEx] package for more details of regular expression syntax.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039; button to invoke searching of the specified string (regular expression) with the specified options.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Stop&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Stop&amp;#039;&amp;#039;&amp;#039; button to stop searching.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Help&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Displays this help topic.&lt;br /&gt;
&lt;br /&gt;
==== Search results ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_FindInFilesResults.png]]&lt;br /&gt;
&lt;br /&gt;
This window displays the table which contains the names of files in which the specified string is found, the line number and the position, where the specified text is located and the content of the whole line.&lt;br /&gt;
&lt;br /&gt;
If you double-click any filename, then this file will be opened in the text editor.&lt;br /&gt;
&lt;br /&gt;
=== Find Text ===&lt;br /&gt;
&lt;br /&gt;
Using this dialog you can find each occurrence of a combination of any characters, including uppercase and lowercase characters, whole words, or parts of words, or regular expressions.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039; box, type in the search string, or regular expression, or choose a previous string from the drop-down list.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Origin&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Options in the &amp;#039;&amp;#039;&amp;#039;Origin&amp;#039;&amp;#039;&amp;#039; group box defines the file scope in which the string should be searched.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Entire Scope&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the string should be searched in all file.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;From Cursor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the string should be searched beginning from the current cursor position.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Selected Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the string should be searched only in the selected piece of the edited text.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Direction&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Options in the &amp;#039;&amp;#039;&amp;#039;Direction&amp;#039;&amp;#039;&amp;#039; group box defines the direction in which the string should be searched.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Forward&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Search the document below the insertion point.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Backward&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Search the document above the insertion point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Options&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this group box you defines the search options.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Case Sensitive&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Find strings having the given pattern of uppercase and lowercase letters.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Whole Words Only&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Find occurrences of the string as whole words.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Use Regular Expressions&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::See {{ide|IDE Dialogs#Regular Expressions|Regular Expressions}} for details.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039; button to invoke searching of the specified string (regular expression) with the specified options.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Close this dialog.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Help&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Displays this help topic.&lt;br /&gt;
&lt;br /&gt;
=== Window Navigation Dialog ===&lt;br /&gt;
&lt;br /&gt;
The order, in which &amp;#039;&amp;#039;&amp;#039;Ctrl-TAB&amp;#039;&amp;#039;&amp;#039; shifts between IDE windows, has been changed to visit most-recently-visited windows first.&lt;br /&gt;
&lt;br /&gt;
Furthermore, &amp;#039;&amp;#039;&amp;#039;Ctrl-TAB&amp;#039;&amp;#039;&amp;#039; also brings up a navigation dialog listing all the open windows. The dialog stays up as long as Ctrl-key is pressed. In this dialog you can see the windows in the order they will be shifted to, but you can also choose a window directly using the mouse or the arrow keys. If you press letters the list will be filtered to windows starting with the letters you have pressed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ctrl-F1&amp;#039;&amp;#039;&amp;#039; Help,&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ctrl-Del&amp;#039;&amp;#039;&amp;#039; will close the selected window,&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ctrl-BackSpace&amp;#039;&amp;#039;&amp;#039; removes the last letter,&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ctrl-Alt&amp;#039;&amp;#039;&amp;#039; switches on/off showing only read-write files.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ctrl-*&amp;#039;&amp;#039;&amp;#039; switches on/off alternate filter by letter.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/IDE_Dialogs&amp;diff=3610</id>
		<title>Ide/IDE Dialogs</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/IDE_Dialogs&amp;diff=3610"/>
		<updated>2013-05-17T12:52:17Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|IDE Dialogs}}&lt;br /&gt;
&lt;br /&gt;
=== Warning: These files will be overwritten ===&lt;br /&gt;
&lt;br /&gt;
When you create a new project with the IDE {{ide|Project Settings#General Tab|Project Settings}} facility, you can specify the &amp;#039;&amp;#039;&amp;#039;Subdirectory&amp;#039;&amp;#039;&amp;#039; in which the project will be placed (notice that usually this name is generated automatically from the specified project name). Notice that each project contains several standard files (always automatically generated by the IDE) with standard names. Therefore, if the specified subdirectory name coincides with one in which a previously created project already exists, then these 2 projects should have several standard files with the same names. Because the old versions of these files can be incompatible with the new project, the {{ide|Project Settings#General Tab|Project Settings}} generates the warning dialog with the title:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;These files will be overwritten:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
In the central pane of this dialog you see a list of files which should be overwritten.&lt;br /&gt;
&lt;br /&gt;
You can select the following actions:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If you select this button, then the old versions of files specified in the list will be overwritten with the new versions.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If you select this button, then no files will be overwritten, the IDE returns into the {{ide|Project Settings#General Tab|Project Settings}} dialog where you can the specify other name in the &amp;#039;&amp;#039;&amp;#039;Subdirectory&amp;#039;&amp;#039;&amp;#039; control.&lt;br /&gt;
&lt;br /&gt;
=== Resolve Ambiguity ===&lt;br /&gt;
&lt;br /&gt;
This dialog appears when you execute the:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Go to Declaration&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;Ctrl+Shift+D&amp;#039;&amp;#039;&amp;#039;),&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Go to Definition&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;Ctrl+Shift+C&amp;#039;&amp;#039;&amp;#039;), or&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Show Visual Prolog Help&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F1&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
commands and the cursor points onto a &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot;, which has several versions of the &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot; references in the generated {{ide|Code Experts#Source Browser|browse information}} and cannot resolve this ambiguity using all additional information about the &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot;, which The IDE can gather in the edited file.&lt;br /&gt;
&lt;br /&gt;
Correspondently it have titles:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Resolve Ambiguity of &amp;quot;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;quot; Declaration&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Resolve Ambiguity of &amp;quot;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;quot; Definition&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Choose &amp;quot;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;quot; to Show Help Topic&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
These dialogs display lists of references to the &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot; with additional information (gathered in the generated by the compiler {{ide|Code Experts#Source Browser|browse information}}, which helps you to resolve ambiguity of the &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Names are prefixed with the same {{ide|Project Tree#Icons Used in the Project Window|icons}}, which are used in the Project window.&lt;br /&gt;
&lt;br /&gt;
To continue an initiated command execution you need to select (click) one of displayed lines containing unique references to the &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Send Bug Report to Support ===&lt;br /&gt;
&lt;br /&gt;
Normally you should use &amp;#039;&amp;#039;&amp;#039;Help | Send Bug Report...&amp;#039;&amp;#039;&amp;#039; IDE command to send a bug report or feedback. You can also send a mail directly to the &amp;#039;&amp;#039;&amp;#039;Visual Prolog Support Service&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;About Visual Prolog Support Service&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Visual Prolog Support&amp;#039;&amp;#039;&amp;#039; is responsible for answering questions only about bugs and problems with using of Visual Prolog language, the IDE, and other tools and packages supplied in &amp;#039;&amp;#039;&amp;#039;Commercial&amp;#039;&amp;#039;&amp;#039; editions of Visual Prolog.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Guidelines for preparing Bug Reports to Visual Prolog Support&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Please check the following information sources before submitting your E-mail:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* [http://www.visual-prolog.com/vip6/support/faq.htm Frequently Asked Questions]&lt;br /&gt;
* [http://kb.visual-prolog.com Visual Prolog Knowledge Base]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Please do not ask Visual Prolog Support about general problems like: &amp;quot;Visual Prolog and Fuzzy Logic?&amp;quot;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
For things please use [http://discuss.visual-prolog.com/ Visual Prolog Discussion Forum], where you are free to discuss any question deals with Visual Prolog. Anybody can read the debate, but you need to register if you want to make postings.&lt;br /&gt;
&lt;br /&gt;
Prolog Development Center will follow and participate as much as possible in the debates. But we cannot make any &amp;quot;answer guarantee&amp;quot;; this is mainly your forum.&lt;br /&gt;
&lt;br /&gt;
This forum will receive all major announcements from Prolog Development Center.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Your message MUST contain information generated by &amp;quot;Help | Send Bug Report | Show Details&amp;quot; IDE command.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This information contains some parameters about your computer and your project that are useful for correct understanding of the problem. It should be copied to the mail.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4. How to write a message:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;To:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The address of Visual Prolog International Support Group is: &amp;#039;&amp;#039;&amp;#039;support@visual-prolog.com&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Subject:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Use a short, precise, and relevant Subject (title line). Please, do not use subjects like: &amp;#039;&amp;#039;&amp;#039;My 1st problem with Prolog&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Message Text:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:One problem per message, please.&lt;br /&gt;
*:Here you should describe your problem as detailed and precise, as it is possible.&lt;br /&gt;
*:Please supply examples of code illustrating your problem.&lt;br /&gt;
*:The information supplied in your message should be sufficient to reproduce your problem on our computers.&lt;br /&gt;
&lt;br /&gt;
Please follow the above guidelines when you E-mail Bug Reports to Visual Prolog Support.&lt;br /&gt;
&lt;br /&gt;
Regards&lt;br /&gt;
&lt;br /&gt;
The Visual Prolog International Support Group&lt;br /&gt;
&lt;br /&gt;
support@visual-prolog.com&lt;br /&gt;
&lt;br /&gt;
=== Replace Text ===&lt;br /&gt;
&lt;br /&gt;
Using this dialog you can find and replace each or every occurrence of a text pattern (a string or a regular expression) in the edited file.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039; box, type in the search string, or &amp;#039;&amp;#039;regular expression&amp;#039;&amp;#039;, or choose a previous string from the drop-down list.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;New Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Type the replacement string, or &amp;#039;&amp;#039;regular replacement expression&amp;#039;&amp;#039; in the &amp;#039;&amp;#039;&amp;#039;New Text&amp;#039;&amp;#039;&amp;#039; box, or choose a previous string from the drop-down list. Notice that &amp;#039;&amp;#039;regular replacement expressions&amp;#039;&amp;#039; have limited syntax regarding to &amp;#039;&amp;#039;regular expressions&amp;#039;&amp;#039; used in the  &amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039;  patterns.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Origin&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Options in the &amp;#039;&amp;#039;&amp;#039;Origin&amp;#039;&amp;#039;&amp;#039; group box defines the file scope in which the string should be searched.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Entire Scope&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Defines that the string should be searched in all file.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;From Cursor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Defines that the string should be searched beginning from the current cursor position.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Selected Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Defines that the string should be searched only in the selected piece of the edited text.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Direction&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Options in the &amp;#039;&amp;#039;&amp;#039;Direction&amp;#039;&amp;#039;&amp;#039; group box defines the direction in which the string should be searched.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Forward&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Search the document below the insertion point.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Backward&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Search the document above the insertion point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Options&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this group box you defines the search options.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Case Sensitive&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Find strings having the given pattern of uppercase and lowercase letters.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Whole Words Only&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:Find occurrences of the string as whole words. It only displays instances of the Find what string that are matched in complete words. For example, a search for &amp;quot;my::List&amp;quot; will return &amp;quot;my::List&amp;quot; but not &amp;quot;cmy::List&amp;quot; or &amp;quot;my::Listtt&amp;quot;.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Use Regular Expressions&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:*:See [Find_Text_in_Files.htm #Regular_Expressions2 Regular Expressions] for details.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Replace&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Replace&amp;#039;&amp;#039;&amp;#039; button to replace the current selection or to invoke searching of the specified string (regular expression) with the specified options if there are no selection.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Find Next&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039; button to invoke searching of the next occurrence of the specified string (regular expression) with the specified options.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Change All&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Change All&amp;#039;&amp;#039;&amp;#039; button to replace all occurrences of the search text, in the specified scope.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Close this dialog.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Help&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Displays this help topic.&lt;br /&gt;
&lt;br /&gt;
=== Find Text in Files ===&lt;br /&gt;
&lt;br /&gt;
Using this dialog you can find each occurrence of a combination of any characters, including uppercase and lowercase characters, whole words, or parts of words, or regular expressions in the specified group of files.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_FindInFiles.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039; box, type in the search string, or &amp;#039;&amp;#039;regular expression&amp;#039;&amp;#039;, or choose a previous string from the drop-down list.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Find in All Opened Editors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Check this option if you wish that the IDE search the specified string only in that text files, which are currently opened in the IDE text editors.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Find in Project Files Only&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Check this option if you wish that the IDE search the specified string only in text files, which are parts of the project currently loaded into the IDE.&lt;br /&gt;
:This button is disabled when the project is not loaded.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Show Search Results in New Window&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:If this option is checked ON, then the IDE will open new &amp;#039;&amp;#039;&amp;#039;Search results&amp;#039;&amp;#039;&amp;#039; window each time the search is completed, otherwise it will display search results in the same window.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;In Files:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this list editor you can specify (or select from the list of previously used) the file mask which will be used to restrict files in which the IDE will search for the string. For example, you can use &amp;lt;vp&amp;gt;*&amp;lt;/vp&amp;gt; operator to specify that any sub-string can be used instead of this operator.&lt;br /&gt;
:This option is disabled when the &amp;#039;&amp;#039;&amp;#039;Find in All Opened Editors&amp;#039;&amp;#039;&amp;#039; option is checked ON.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;In Folder:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this list editor you can specify (or select from the list of previously used) the folder, which will be used to restrict files in which the IDE will search for the string.&lt;br /&gt;
:This option is disabled when the &amp;#039;&amp;#039;&amp;#039;Find in All Opened Editors&amp;#039;&amp;#039;&amp;#039; option is checked ON.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Browse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press this button to open the &amp;#039;&amp;#039;&amp;#039;Set New Directory&amp;#039;&amp;#039;&amp;#039; dialog in which you can select the folder, which name will be inserted into the &amp;#039;&amp;#039;&amp;#039;In Folder&amp;#039;&amp;#039;&amp;#039; field.&lt;br /&gt;
:&amp;lt;br/&amp;gt;Notice that when &amp;#039;&amp;#039;&amp;#039;Find in Project Files Only&amp;#039;&amp;#039;&amp;#039; is checked ON, then this dialog will gives you access only to the folders known to the project.&lt;br /&gt;
:This button is disabled when the &amp;#039;&amp;#039;&amp;#039;Find in All Opened Editors&amp;#039;&amp;#039;&amp;#039; option is checked ON.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Search Subfolders&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When this option is checked ON (the default), then the IDE will search in all subfolders of the folder specified in the &amp;#039;&amp;#039;&amp;#039;In Folder&amp;#039;&amp;#039;&amp;#039; field.&lt;br /&gt;
:Otherwise, search will be only in the files directly in the folder specified in the &amp;#039;&amp;#039;&amp;#039;In Folder&amp;#039;&amp;#039;&amp;#039; field.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Whole Words Only&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Find occurrences of the string as whole words. It only displays instances of the Find what string that are matched in complete words. For example, a search for &amp;quot;my::List&amp;quot; will return &amp;quot;my::List&amp;quot; but not &amp;quot;cmy::List&amp;quot; or &amp;quot;my::Listtt&amp;quot;.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Case Sensitive&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:The selected item specifies whether the search should match case of the whole search string (&amp;#039;&amp;#039;&amp;#039;Case Sensitive&amp;#039;&amp;#039;&amp;#039;), ignore the case (&amp;#039;&amp;#039;&amp;#039;Case Insensitive&amp;#039;&amp;#039;&amp;#039;) or match the case of the first character of the search string (&amp;#039;&amp;#039;&amp;#039;Prolog Sensitive&amp;#039;&amp;#039;&amp;#039;). The last option is unavailable, when &amp;#039;&amp;#039;&amp;#039;Regular Expressions&amp;#039;&amp;#039;&amp;#039; option is checked ON.&lt;br /&gt;
&lt;br /&gt;
==== Regular Expressions ====&lt;br /&gt;
&lt;br /&gt;
Provides possibility to perform advanced string searching operations (searching, matching and replacing) using regular expressions.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Regular Expressions &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:A &amp;#039;&amp;#039;regular expression&amp;#039;&amp;#039; (or pattern) is a text string that describes some (mathematical) group of strings. A string &amp;lt;vp&amp;gt;S&amp;lt;/vp&amp;gt; &amp;quot;matches&amp;quot; a regular expression &amp;lt;vp&amp;gt;R&amp;lt;/vp&amp;gt; if &amp;lt;vp&amp;gt;S&amp;lt;/vp&amp;gt; belongs to the set of strings described by &amp;lt;vp&amp;gt;R&amp;lt;/vp&amp;gt;. Using regular expression, you can:&lt;br /&gt;
:* check whether the specified string matches the specified pattern;&lt;br /&gt;
:* search within a string for a substring matching the specified pattern;&lt;br /&gt;
:* perform replacing within matched substrings.&lt;br /&gt;
:Some regular expressions can match only one substring. That is, a set of strings such regular expression describes has only one member. For example, the regular expression &amp;#039;&amp;#039;&amp;#039;foo&amp;#039;&amp;#039;&amp;#039; matches only the substring &amp;#039;&amp;#039;&amp;#039;foo&amp;#039;&amp;#039;&amp;#039; and no others. Other regular expressions can match more than one substring. That is, a set of strings such regular expression describes has more than one member. For example, the regular expression &amp;lt;vp&amp;gt;f*&amp;lt;/vp&amp;gt; matches the set of strings made up of any number (including zero) of &amp;#039;&amp;#039;&amp;#039;f&amp;#039;&amp;#039;&amp;#039; characters. Some characters in regular expressions match themselves (such as &amp;#039;&amp;#039;&amp;#039;f&amp;#039;&amp;#039;&amp;#039;) and some do not match to any concrete character (such as &amp;lt;vp&amp;gt;*&amp;lt;/vp&amp;gt;). Characters that do not match themselves are used to specify patterns, which describe sets of different strings.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Regular Expression Syntax&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
See the [pfc\regEx\packRegEx.htm regEx] package for more details of regular expression syntax.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039; button to invoke searching of the specified string (regular expression) with the specified options.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Stop&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Stop&amp;#039;&amp;#039;&amp;#039; button to stop searching.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Help&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Displays this help topic.&lt;br /&gt;
&lt;br /&gt;
==== Search results ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_FindInFilesResults.png]]&lt;br /&gt;
&lt;br /&gt;
This window displays the table which contains the names of files in which the specified string is found, the line number and the position, where the specified text is located and the content of the whole line.&lt;br /&gt;
&lt;br /&gt;
If you double-click any filename, then this file will be opened in the text editor.&lt;br /&gt;
&lt;br /&gt;
=== Find Text ===&lt;br /&gt;
&lt;br /&gt;
Using this dialog you can find each occurrence of a combination of any characters, including uppercase and lowercase characters, whole words, or parts of words, or regular expressions.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Text to Find&amp;#039;&amp;#039;&amp;#039; box, type in the search string, or regular expression, or choose a previous string from the drop-down list.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Origin&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Options in the &amp;#039;&amp;#039;&amp;#039;Origin&amp;#039;&amp;#039;&amp;#039; group box defines the file scope in which the string should be searched.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Entire Scope&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the string should be searched in all file.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;From Cursor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the string should be searched beginning from the current cursor position.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Selected Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the string should be searched only in the selected piece of the edited text.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Direction&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Options in the &amp;#039;&amp;#039;&amp;#039;Direction&amp;#039;&amp;#039;&amp;#039; group box defines the direction in which the string should be searched.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Forward&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Search the document below the insertion point.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Backward&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Search the document above the insertion point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Options&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this group box you defines the search options.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Case Sensitive&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Find strings having the given pattern of uppercase and lowercase letters.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Whole Words Only&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Find occurrences of the string as whole words.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Use Regular Expressions&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::See {{ide|IDE Dialogs#Regular Expressions|Regular Expressions}} for details.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Press the &amp;#039;&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&amp;#039; button to invoke searching of the specified string (regular expression) with the specified options.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Close this dialog.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Help&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Displays this help topic.&lt;br /&gt;
&lt;br /&gt;
=== Window Navigation Dialog ===&lt;br /&gt;
&lt;br /&gt;
The order, in which &amp;#039;&amp;#039;&amp;#039;Ctrl-TAB&amp;#039;&amp;#039;&amp;#039; shifts between IDE windows, has been changed to visit most-recently-visited windows first.&lt;br /&gt;
&lt;br /&gt;
Furthermore, &amp;#039;&amp;#039;&amp;#039;Ctrl-TAB&amp;#039;&amp;#039;&amp;#039; also brings up a navigation dialog listing all the open windows. The dialog stays up as long as Ctrl-key is pressed. In this dialog you can see the windows in the order they will be shifted to, but you can also choose a window directly using the mouse or the arrow keys. If you press letters the list will be filtered to windows starting with the letters you have pressed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ctrl-F1&amp;#039;&amp;#039;&amp;#039; Help,&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ctrl-Del&amp;#039;&amp;#039;&amp;#039; will close the selected window,&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ctrl-BackSpace&amp;#039;&amp;#039;&amp;#039; removes the last letter,&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ctrl-Alt&amp;#039;&amp;#039;&amp;#039; switches on/off showing only read-write files.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ctrl-*&amp;#039;&amp;#039;&amp;#039; switches on/off alternate filter by letter.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Editing_a_Toolbar&amp;diff=3609</id>
		<title>Ide/Resource Editor/Editing a Toolbar</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Editing_a_Toolbar&amp;diff=3609"/>
		<updated>2013-05-17T10:11:54Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
To edit a toolbar, double-click (or press &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039;) the name of a file with a toolbar description in the project tree in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window&amp;#039;s list of project files. The &amp;#039;&amp;#039;&amp;#039;Toolbar Editor&amp;#039;&amp;#039;&amp;#039; window appears and you can create whatever form of a toolbar you wish.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_ToolbarEditor.png|center|frame|The &amp;#039;&amp;#039;&amp;#039;Toolbar Editor&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
In the top of the picture you see edited toolbar (&amp;#039;&amp;#039;&amp;#039;ProjectToolbar&amp;#039;&amp;#039;&amp;#039; in the picture).&lt;br /&gt;
&lt;br /&gt;
==== Controls Toolbar in the Toolbar Editor ====&lt;br /&gt;
&lt;br /&gt;
In the bottom of the previous picture you see the &amp;#039;&amp;#039;&amp;#039;Controls&amp;#039;&amp;#039;&amp;#039; toolbar. Using the &amp;#039;&amp;#039;&amp;#039;Controls&amp;#039;&amp;#039;&amp;#039; toolbar you can easily add desired controls into the edited toolbar.&lt;br /&gt;
&lt;br /&gt;
There are the Controls toolbar commands inserting the following kinds of controls into toolbars:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_PushBtn.png]]&lt;br /&gt;
! Push Button&lt;br /&gt;
| Enables inserting of the &amp;#039;&amp;#039;&amp;#039;push button&amp;#039;&amp;#039;&amp;#039; control into the edited toolbar. Click inside the toolbar to specify the place where the control should be inserted, press on the button [[Image:Ide_Ctrl_PushBtn.png]], the {{ide|Resource Editor#Push and Check Button Attributes|Button Attributes}} dialog appears. In this dialog you must specify a bitmap that will be used to display the button. Press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button to create the control.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_CheckBx.png]]&lt;br /&gt;
! Check Button&lt;br /&gt;
| Enables inserting of the &amp;#039;&amp;#039;&amp;#039;check button&amp;#039;&amp;#039;&amp;#039; control into the edited toolbar. Click inside the toolbar to specify the place where the control should be inserted, press on the button [[Image:Ide_Ctrl_CheckBx.png]], the {{ide|Resource Editor#Push and Check Button Attributes|Button Attributes}} dialog appears. In this dialog you must specify a bitmap that will be used to display the button. Press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button to create the control.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_StaText.png]]&lt;br /&gt;
! Static Text&lt;br /&gt;
| Enables inserting of the &amp;#039;&amp;#039;&amp;#039;static text&amp;#039;&amp;#039;&amp;#039; control into the edited toolbar. Click inside the toolbar to specify the place where the control should be inserted, press on the button [[Image:Ide_Ctrl_StaText.png]], the {{ide|Resource Editor#Text Control Attributes|Text Attributes}} dialog appears. In this dialog you can specify the &amp;#039;&amp;#039;&amp;#039;Initial Text&amp;#039;&amp;#039;&amp;#039; that will be displayed in the control. Press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button to create the control.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_TB_ContextText.png]]&lt;br /&gt;
! Context Sensitive Text&lt;br /&gt;
| Enables inserting of the &amp;#039;&amp;#039;&amp;#039;context sensitive text&amp;#039;&amp;#039;&amp;#039; control into the edited toolbar. Click inside the toolbar to specify the place where the control should be inserted, press on the button [[Image:Ide_TB_ContextText.png]], the {{ide|Resource Editor#Text Control Attributes|Text Attributes}} dialog appears. Press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button to create the control.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_ListBtn.png]]&lt;br /&gt;
! List Button&lt;br /&gt;
| Enables inserting of the &amp;#039;&amp;#039;&amp;#039;list button&amp;#039;&amp;#039;&amp;#039; control into the edited toolbar. Click inside the toolbar to specify the place where the control should be inserted, press on the button [[Image:Ide_Ctrl_ListBtn.png]], the {{ide|Resource Editor#Text Control Attributes|List Button Attributes}} dialog appears. Press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button to create the control. List buttons can be used to select one item from a list of possible values.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_TB_Separator.png]]&lt;br /&gt;
! Separator&lt;br /&gt;
| Enables inserting of a &amp;#039;&amp;#039;&amp;#039;separator&amp;#039;&amp;#039;&amp;#039; into the edited toolbar. Click inside the toolbar to specify the place where the &amp;#039;&amp;#039;&amp;#039;separator&amp;#039;&amp;#039;&amp;#039; should be inserted, press on the button [[Image:Ide_TB_Separator.png]], the &amp;#039;&amp;#039;&amp;#039;separator&amp;#039;&amp;#039;&amp;#039; will be inserted. The separator is like a space; it is used to make some space and a vertical bar between other controls, usually to divide them into functional groups.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_TB_NewRow.png]]&lt;br /&gt;
! New Row&lt;br /&gt;
| Enables inserting of a &amp;#039;&amp;#039;&amp;#039;new row&amp;#039;&amp;#039;&amp;#039; into the edited toolbar. Click inside the toolbar to specify the place where the &amp;#039;&amp;#039;&amp;#039;new row&amp;#039;&amp;#039;&amp;#039; should start, press on the button [[Image:Ide_TB_NewRow.png]], the &amp;#039;&amp;#039;&amp;#039;new row&amp;#039;&amp;#039;&amp;#039; will be created. Notice that the &amp;#039;&amp;#039;&amp;#039;new rows&amp;#039;&amp;#039;&amp;#039; are relevant only for toolbars with the styles &amp;#039;&amp;#039;Inside&amp;#039;&amp;#039; and &amp;#039;&amp;#039;Movable&amp;#039;&amp;#039;. A &amp;#039;&amp;#039;&amp;#039;new row&amp;#039;&amp;#039;&amp;#039; control will cause breaking of the current line, the following controls appear on the next line.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Control Types Used in Toolbars ====&lt;br /&gt;
&lt;br /&gt;
In the lower part of the previous picture we see the &lt;br /&gt;
{{ide|Resource Editor#Controls Toolbar in the Toolbar Editor|&amp;#039;&amp;#039;&amp;#039;Controls toolbar&amp;#039;&amp;#039;&amp;#039;}} toolbar, which contains all kinds of controls that can be used in toolbars.&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;30%&amp;quot;|Control&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Push Button&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This is a standard push button. When pressed it sends an &amp;lt;vp&amp;gt;vpiDomains::e_Menu&amp;lt;/vp&amp;gt; event to the parent window. The bitmap must be registered for the button.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Check Button&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This is used to indicate the state of a property that can have two states; either checked or unchecked. When pressed it sends an &amp;lt;vp&amp;gt;vpiDomains::e_Control(_, vpiDomains::wc_CheckBox,_,_)&amp;lt;/vp&amp;gt; event to the parent window. You must register a bitmap for a check button.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;List Button&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| A list button can be used to select one item from a number of values. When pressed it sends an &amp;lt;vp&amp;gt;vpiDomains::e_Control(_, vpiDomains::wc_LBoxButton,_,_)&amp;lt;/vp&amp;gt; event to the parent window.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Static Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Text may be placed in this control initially and also dynamically. A &amp;#039;&amp;#039;&amp;#039;Static Text&amp;#039;&amp;#039;&amp;#039; is often used for titles.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Context Sensitive Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| If a Context Sensitive Text field is put into the toolbar, this field will display help information about the control the mouse is currently located over.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Separator&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| A separator is like a space; it is used to make some space and a vertical bar between other controls, usually to divide them into functional groups.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;New Row&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| New row is relevant only for toolbars with the styles &amp;#039;&amp;#039;&amp;#039;Inside&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Movable&amp;#039;&amp;#039;&amp;#039;. A New Row control will cause the current line to break, and the following controls to appear on the next line of the toolbar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Toolbar Layout Editing ====&lt;br /&gt;
&lt;br /&gt;
The layout of the toolbar can be done both with the keyboard, and with the mouse. There is an insertion point that is marked with a colored bar. This insertion point can be moved with the arrow keys, or by clicking the mouse on the new location. When the insertion bar is at a given location, the control to the right of the bar can be deleted by pressing the &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039; key, the control to the left can be deleted by pressing the &amp;#039;&amp;#039;&amp;#039;Backspace&amp;#039;&amp;#039;&amp;#039; key.&lt;br /&gt;
&lt;br /&gt;
To place a new control at the insertion point:&lt;br /&gt;
&lt;br /&gt;
* select an item from the &amp;#039;&amp;#039;&amp;#039;Controls&amp;#039;&amp;#039;&amp;#039; menu or&lt;br /&gt;
* choose a control from the ones shown in the &amp;#039;&amp;#039;&amp;#039;Controls&amp;#039;&amp;#039;&amp;#039; floating dialog or&lt;br /&gt;
* click the right mouse button anywhere in the Toolbars Editor window area outside the toolbar to display a pop up from which a desired control can be selected.&lt;br /&gt;
&lt;br /&gt;
==== Attributes of Toolbar Controls ====&lt;br /&gt;
&lt;br /&gt;
After a control is inserted, it is possible to change the control attributes. Just double-click the control.&lt;br /&gt;
&lt;br /&gt;
===== Push and Check Button Attributes =====&lt;br /&gt;
&lt;br /&gt;
Double-click a Push button or a Check button calls the &amp;#039;&amp;#039;&amp;#039;Button Attributes&amp;#039;&amp;#039;&amp;#039; dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_Toolbar_ButtonAttributes.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;Specifying properties of push buttons and check buttons&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following information must be specified:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;30%&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| width=&amp;quot;70%&amp;quot;|A constant name to identify the button control. This is the constant that will be used in the &amp;lt;vp&amp;gt;vpiDomains::e_Menu&amp;lt;/vp&amp;gt; events. Therefore, it is recommended to use the same constant as is used for the menu item correspondent to the same command.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039; input box is where you can select or type in the symbolic constant that will be used as the control identifier. It can be input directly from the keyboard or selected from the list of available constants (by clicking the [[Image:Ide_ListButton_Button.png]] button). It must be either a legal symbolic constant (for example, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idt_file_open&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; ) or an integer value.&lt;br /&gt;
&lt;br /&gt;
If you enter a symbolic constant, then the IDE automatically places this symbolic constant into the &amp;#039;&amp;#039;&amp;#039;resourceidentifiers.i&amp;#039;&amp;#039;&amp;#039; file and generates an appropriate integer value for it. The &amp;#039;&amp;#039;&amp;#039;Toolbar Editor&amp;#039;&amp;#039;&amp;#039; automatically generates the default symbolic constants (for example, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idt_7&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; from the &amp;#039;&amp;#039;toolbar constant prefix&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idt_&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; and the number of this control in the toolbar.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Status Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|The string entered into this field can consist from 2 sub-strings separated by a semicolon. The sub-string specified before the semicolon (if specified) is used as the button Tool Tip text. The sub-string specified after the semicolon (or if the semicolon is not specified) will be displayed in the &amp;#039;&amp;#039;&amp;#039;Context Sensitive Text&amp;#039;&amp;#039;&amp;#039; field (when the mouse cursor is positioned over this button).&lt;br /&gt;
&lt;br /&gt;
For example, the text &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;New;New file&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; will cause &amp;#039;&amp;#039;&amp;#039;New&amp;#039;&amp;#039;&amp;#039; to be shown in the yellow tool tip while &amp;#039;&amp;#039;&amp;#039;New file&amp;#039;&amp;#039;&amp;#039; will be shown in a context sensitive field when the mouse is over the button.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Checked&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|If this check box is checked than the button initial state is &amp;quot;pressed&amp;quot; and the icon shaped as &amp;#039;&amp;#039;pressed&amp;#039;&amp;#039; is initially displayed. Otherwise the button initial state is &amp;quot;released&amp;quot; and the icon shaped as &amp;#039;&amp;#039;released&amp;#039;&amp;#039; is displayed.&lt;br /&gt;
|- &lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Disabled&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|If this check box is checked then the button initially does not accept a user input and is grayed. Otherwise the button is initially enabled (accepts a user input) and has initial state specified by the &amp;#039;&amp;#039;&amp;#039;Checked&amp;#039;&amp;#039;&amp;#039; check box.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Push Button&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; or&amp;lt;br /&amp;gt; &amp;#039;&amp;#039;&amp;#039;Check Button&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Select the appropriate button style (&amp;#039;&amp;#039;&amp;#039;Push Button&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Check Button&amp;#039;&amp;#039;&amp;#039;). The style can be changed at any time. At runtime the state (&amp;#039;&amp;#039;pressed&amp;#039;&amp;#039; or &amp;#039;&amp;#039;released&amp;#039;&amp;#039;) of a check button can be switched by clicking the check button.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Bitmap Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|This bitmap will be used to display a button. This bitmap should be selected from the list of bitmaps registered in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window (by clicking the [[Image:_Ide_ListButton_Button.png]] button). Before a bitmap name will appear in the registered bitmap list, it should be registered in the project with the &amp;#039;&amp;#039;&amp;#039;File | Add&amp;#039;&amp;#039;&amp;#039; command (the &amp;#039;&amp;#039;&amp;#039;Resource Files&amp;#039;&amp;#039;&amp;#039; should be selected in the &amp;#039;&amp;#039;&amp;#039;Files of Type&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
In Visual Prolog v.7 we use a single bitmap for each button and automatically draw different state ornamentations for the &amp;#039;&amp;#039;released&amp;#039;&amp;#039; state, the &amp;#039;&amp;#039;pressed&amp;#039;&amp;#039; state, and the &amp;#039;&amp;#039;disabled&amp;#039;&amp;#039; state of the button.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|If the &amp;#039;&amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&amp;#039; button is pressed, then the {{ide|Resource Editor#Graphics Editor|&amp;#039;&amp;#039;&amp;#039;Graphics Editor&amp;#039;&amp;#039;&amp;#039;}} will come up with the given bitmap allowing you to view and edit the bitmap.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Text Control Attributes =====&lt;br /&gt;
&lt;br /&gt;
Double-clicking a Static Text or a Context Sensitive Text control calls the &amp;#039;&amp;#039;&amp;#039;Text Attributes&amp;#039;&amp;#039;&amp;#039; dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_Toolbar_TextControl.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Specifying properties of text controls in a toolbar&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The following information must be specified:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;30%&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| width=&amp;quot;70%&amp;quot;|A constant name to identify the Text control.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Initial Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The default text to display in the field.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Static&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;or&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;&amp;#039;Context Sensitive&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Select the appropriate text control type. The style can be changed at any time.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Font &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Select a font name, font style (Normal, Bold, Italic ...), and font size for the displayed text.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Text Width&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Determines a width in pixels of the Text control field. It can be entered manually or, by pushing the &amp;#039;&amp;#039;&amp;#039;&amp;quot;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;lt;---Text---&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;#039;&amp;#039;&amp;#039; button. In this case the width of the field will be optimized to display the &amp;#039;&amp;#039;&amp;#039;Initial Text&amp;#039;&amp;#039;&amp;#039; with the selected Font.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Foreground Color&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Select the Foreground Color for the displayed text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== List Button Attributes =====&lt;br /&gt;
&lt;br /&gt;
Double-clicking a List Button control calls the &amp;#039;&amp;#039;&amp;#039;List Button Attributes&amp;#039;&amp;#039;&amp;#039; dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_Toolbar_ListButtonAttributes.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;Specifying properties of list buttons in a toolbar&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only two parameters can be set for a list button in a toolbar:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;30%&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Constant &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| width=&amp;quot;70%&amp;quot;|A constant name to identify the List Button control.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Width &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Determines the width in pixels of the List Button control field.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Editing_a_Toolbar&amp;diff=3608</id>
		<title>Ide/Resource Editor/Editing a Toolbar</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Editing_a_Toolbar&amp;diff=3608"/>
		<updated>2013-05-17T10:03:11Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
To edit a toolbar, double-click (or press &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039;) the name of a file with a toolbar description in the project tree in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window&amp;#039;s list of project files. The &amp;#039;&amp;#039;&amp;#039;Toolbar Editor&amp;#039;&amp;#039;&amp;#039; window appears and you can create whatever form of a toolbar you wish.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_ToolbarEditor.png|center|frame|The &amp;#039;&amp;#039;&amp;#039;Toolbar Editor&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
In the top of the picture you see edited toolbar (&amp;#039;&amp;#039;&amp;#039;ProjectToolbar&amp;#039;&amp;#039;&amp;#039; in the picture).&lt;br /&gt;
&lt;br /&gt;
==== Controls Toolbar ====&lt;br /&gt;
&lt;br /&gt;
In the bottom of the previous picture you see the &amp;#039;&amp;#039;&amp;#039;Controls&amp;#039;&amp;#039;&amp;#039; toolbar. Using the &amp;#039;&amp;#039;&amp;#039;Controls&amp;#039;&amp;#039;&amp;#039; toolbar you can easily add desired controls into the edited toolbar.&lt;br /&gt;
&lt;br /&gt;
There are the Controls toolbar commands inserting the following kinds of controls into toolbars:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_PushBtn.png]]&lt;br /&gt;
! Push Button&lt;br /&gt;
| Enables inserting of the &amp;#039;&amp;#039;&amp;#039;push button&amp;#039;&amp;#039;&amp;#039; control into the edited toolbar. Click inside the toolbar to specify the place where the control should be inserted, press on the button [[Image:Ide_Ctrl_PushBtn.png]], the {{ide|Resource Editor#Push and Check Button Attributes|Button Attributes}} dialog appears. In this dialog you must specify a bitmap that will be used to display the button. Press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button to create the control.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_CheckBx.png]]&lt;br /&gt;
! Check Button&lt;br /&gt;
| Enables inserting of the &amp;#039;&amp;#039;&amp;#039;check button&amp;#039;&amp;#039;&amp;#039; control into the edited toolbar. Click inside the toolbar to specify the place where the control should be inserted, press on the button [[Image:Ide_Ctrl_CheckBx.png]], the {{ide|Resource Editor#Push and Check Button Attributes|Button Attributes}} dialog appears. In this dialog you must specify a bitmap that will be used to display the button. Press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button to create the control.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_StaText.png]]&lt;br /&gt;
! Static Text&lt;br /&gt;
| Enables inserting of the &amp;#039;&amp;#039;&amp;#039;static text&amp;#039;&amp;#039;&amp;#039; control into the edited toolbar. Click inside the toolbar to specify the place where the control should be inserted, press on the button [[Image:Ide_Ctrl_StaText.png]], the {{ide|Resource Editor#Text Control Attributes|Text Attributes}} dialog appears. In this dialog you can specify the &amp;#039;&amp;#039;&amp;#039;Initial Text&amp;#039;&amp;#039;&amp;#039; that will be displayed in the control. Press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button to create the control.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_TB_ContextText.png]]&lt;br /&gt;
! Context Sensitive Text&lt;br /&gt;
| Enables inserting of the &amp;#039;&amp;#039;&amp;#039;context sensitive text&amp;#039;&amp;#039;&amp;#039; control into the edited toolbar. Click inside the toolbar to specify the place where the control should be inserted, press on the button [[Image:Ide_TB_ContextText.png]], the {{ide|Resource Editor#Text Control Attributes|Text Attributes}} dialog appears. Press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button to create the control.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_ListBtn.png]]&lt;br /&gt;
! List Button&lt;br /&gt;
| Enables inserting of the &amp;#039;&amp;#039;&amp;#039;list button&amp;#039;&amp;#039;&amp;#039; control into the edited toolbar. Click inside the toolbar to specify the place where the control should be inserted, press on the button [[Image:Ide_Ctrl_ListBtn.png]], the {{ide|Resource Editor#Text Control Attributes|List Button Attributes}} dialog appears. Press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button to create the control. List buttons can be used to select one item from a list of possible values.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_TB_Separator.png]]&lt;br /&gt;
! Separator&lt;br /&gt;
| Enables inserting of a &amp;#039;&amp;#039;&amp;#039;separator&amp;#039;&amp;#039;&amp;#039; into the edited toolbar. Click inside the toolbar to specify the place where the &amp;#039;&amp;#039;&amp;#039;separator&amp;#039;&amp;#039;&amp;#039; should be inserted, press on the button [[Image:Ide_TB_Separator.png]], the &amp;#039;&amp;#039;&amp;#039;separator&amp;#039;&amp;#039;&amp;#039; will be inserted. The separator is like a space; it is used to make some space and a vertical bar between other controls, usually to divide them into functional groups.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_TB_NewRow.png]]&lt;br /&gt;
! New Row&lt;br /&gt;
| Enables inserting of a &amp;#039;&amp;#039;&amp;#039;new row&amp;#039;&amp;#039;&amp;#039; into the edited toolbar. Click inside the toolbar to specify the place where the &amp;#039;&amp;#039;&amp;#039;new row&amp;#039;&amp;#039;&amp;#039; should start, press on the button [[Image:Ide_TB_NewRow.png]], the &amp;#039;&amp;#039;&amp;#039;new row&amp;#039;&amp;#039;&amp;#039; will be created. Notice that the &amp;#039;&amp;#039;&amp;#039;new rows&amp;#039;&amp;#039;&amp;#039; are relevant only for toolbars with the styles &amp;#039;&amp;#039;Inside&amp;#039;&amp;#039; and &amp;#039;&amp;#039;Movable&amp;#039;&amp;#039;. A &amp;#039;&amp;#039;&amp;#039;new row&amp;#039;&amp;#039;&amp;#039; control will cause breaking of the current line, the following controls appear on the next line.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Control Types Used in Toolbars ====&lt;br /&gt;
&lt;br /&gt;
In the lower part of the previous picture we see the &lt;br /&gt;
{{ide|Resource Editor#Controls Toolbar|&amp;#039;&amp;#039;&amp;#039;Controls toolbar&amp;#039;&amp;#039;&amp;#039;}} toolbar, which contains all kinds of controls that can be used in toolbars.&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;30%&amp;quot;|Control&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Push Button&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This is a standard push button. When pressed it sends an &amp;lt;vp&amp;gt;vpiDomains::e_Menu&amp;lt;/vp&amp;gt; event to the parent window. The bitmap must be registered for the button.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Check Button&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This is used to indicate the state of a property that can have two states; either checked or unchecked. When pressed it sends an &amp;lt;vp&amp;gt;vpiDomains::e_Control(_, vpiDomains::wc_CheckBox,_,_)&amp;lt;/vp&amp;gt; event to the parent window. You must register a bitmap for a check button.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;List Button&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| A list button can be used to select one item from a number of values. When pressed it sends an &amp;lt;vp&amp;gt;vpiDomains::e_Control(_, vpiDomains::wc_LBoxButton,_,_)&amp;lt;/vp&amp;gt; event to the parent window.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Static Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Text may be placed in this control initially and also dynamically. A &amp;#039;&amp;#039;&amp;#039;Static Text&amp;#039;&amp;#039;&amp;#039; is often used for titles.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Context Sensitive Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| If a Context Sensitive Text field is put into the toolbar, this field will display help information about the control the mouse is currently located over.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Separator&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| A separator is like a space; it is used to make some space and a vertical bar between other controls, usually to divide them into functional groups.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;New Row&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| New row is relevant only for toolbars with the styles &amp;#039;&amp;#039;&amp;#039;Inside&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Movable&amp;#039;&amp;#039;&amp;#039;. A New Row control will cause the current line to break, and the following controls to appear on the next line of the toolbar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Toolbar Layout Editing ====&lt;br /&gt;
&lt;br /&gt;
The layout of the toolbar can be done both with the keyboard, and with the mouse. There is an insertion point that is marked with a colored bar. This insertion point can be moved with the arrow keys, or by clicking the mouse on the new location. When the insertion bar is at a given location, the control to the right of the bar can be deleted by pressing the &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039; key, the control to the left can be deleted by pressing the &amp;#039;&amp;#039;&amp;#039;Backspace&amp;#039;&amp;#039;&amp;#039; key.&lt;br /&gt;
&lt;br /&gt;
To place a new control at the insertion point:&lt;br /&gt;
&lt;br /&gt;
* select an item from the &amp;#039;&amp;#039;&amp;#039;Controls&amp;#039;&amp;#039;&amp;#039; menu or&lt;br /&gt;
* choose a control from the ones shown in the &amp;#039;&amp;#039;&amp;#039;Controls&amp;#039;&amp;#039;&amp;#039; floating dialog or&lt;br /&gt;
* click the right mouse button anywhere in the Toolbars Editor window area outside the toolbar to display a pop up from which a desired control can be selected.&lt;br /&gt;
&lt;br /&gt;
==== Attributes of Toolbar Controls ====&lt;br /&gt;
&lt;br /&gt;
After a control is inserted, it is possible to change the control attributes. Just double-click the control.&lt;br /&gt;
&lt;br /&gt;
===== Push and Check Button Attributes =====&lt;br /&gt;
&lt;br /&gt;
Double-click a Push button or a Check button calls the &amp;#039;&amp;#039;&amp;#039;Button Attributes&amp;#039;&amp;#039;&amp;#039; dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_Toolbar_ButtonAttributes.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;Specifying properties of push buttons and check buttons&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following information must be specified:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;30%&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| width=&amp;quot;70%&amp;quot;|A constant name to identify the button control. This is the constant that will be used in the &amp;lt;vp&amp;gt;vpiDomains::e_Menu&amp;lt;/vp&amp;gt; events. Therefore, it is recommended to use the same constant as is used for the menu item correspondent to the same command.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039; input box is where you can select or type in the symbolic constant that will be used as the control identifier. It can be input directly from the keyboard or selected from the list of available constants (by clicking the [[Image:Ide_ListButton_Button.png]] button). It must be either a legal symbolic constant (for example, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idt_file_open&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; ) or an integer value.&lt;br /&gt;
&lt;br /&gt;
If you enter a symbolic constant, then the IDE automatically places this symbolic constant into the &amp;#039;&amp;#039;&amp;#039;resourceidentifiers.i&amp;#039;&amp;#039;&amp;#039; file and generates an appropriate integer value for it. The &amp;#039;&amp;#039;&amp;#039;Toolbar Editor&amp;#039;&amp;#039;&amp;#039; automatically generates the default symbolic constants (for example, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idt_7&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; from the &amp;#039;&amp;#039;toolbar constant prefix&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idt_&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; and the number of this control in the toolbar.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Status Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|The string entered into this field can consist from 2 sub-strings separated by a semicolon. The sub-string specified before the semicolon (if specified) is used as the button Tool Tip text. The sub-string specified after the semicolon (or if the semicolon is not specified) will be displayed in the &amp;#039;&amp;#039;&amp;#039;Context Sensitive Text&amp;#039;&amp;#039;&amp;#039; field (when the mouse cursor is positioned over this button).&lt;br /&gt;
&lt;br /&gt;
For example, the text &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;New;New file&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; will cause &amp;#039;&amp;#039;&amp;#039;New&amp;#039;&amp;#039;&amp;#039; to be shown in the yellow tool tip while &amp;#039;&amp;#039;&amp;#039;New file&amp;#039;&amp;#039;&amp;#039; will be shown in a context sensitive field when the mouse is over the button.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Checked&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|If this check box is checked than the button initial state is &amp;quot;pressed&amp;quot; and the icon shaped as &amp;#039;&amp;#039;pressed&amp;#039;&amp;#039; is initially displayed. Otherwise the button initial state is &amp;quot;released&amp;quot; and the icon shaped as &amp;#039;&amp;#039;released&amp;#039;&amp;#039; is displayed.&lt;br /&gt;
|- &lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Disabled&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|If this check box is checked then the button initially does not accept a user input and is grayed. Otherwise the button is initially enabled (accepts a user input) and has initial state specified by the &amp;#039;&amp;#039;&amp;#039;Checked&amp;#039;&amp;#039;&amp;#039; check box.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Push Button&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; or&amp;lt;br /&amp;gt; &amp;#039;&amp;#039;&amp;#039;Check Button&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Select the appropriate button style (&amp;#039;&amp;#039;&amp;#039;Push Button&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Check Button&amp;#039;&amp;#039;&amp;#039;). The style can be changed at any time. At runtime the state (&amp;#039;&amp;#039;pressed&amp;#039;&amp;#039; or &amp;#039;&amp;#039;released&amp;#039;&amp;#039;) of a check button can be switched by clicking the check button.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Bitmap Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|This bitmap will be used to display a button. This bitmap should be selected from the list of bitmaps registered in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window (by clicking the [[Image:_Ide_ListButton_Button.png]] button). Before a bitmap name will appear in the registered bitmap list, it should be registered in the project with the &amp;#039;&amp;#039;&amp;#039;File | Add&amp;#039;&amp;#039;&amp;#039; command (the &amp;#039;&amp;#039;&amp;#039;Resource Files&amp;#039;&amp;#039;&amp;#039; should be selected in the &amp;#039;&amp;#039;&amp;#039;Files of Type&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
In Visual Prolog v.7 we use a single bitmap for each button and automatically draw different state ornamentations for the &amp;#039;&amp;#039;released&amp;#039;&amp;#039; state, the &amp;#039;&amp;#039;pressed&amp;#039;&amp;#039; state, and the &amp;#039;&amp;#039;disabled&amp;#039;&amp;#039; state of the button.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|If the &amp;#039;&amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&amp;#039; button is pressed, then the {{ide|Resource Editor#Graphics Editor|&amp;#039;&amp;#039;&amp;#039;Graphics Editor&amp;#039;&amp;#039;&amp;#039;}} will come up with the given bitmap allowing you to view and edit the bitmap.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Text Control Attributes =====&lt;br /&gt;
&lt;br /&gt;
Double-clicking a Static Text or a Context Sensitive Text control calls the &amp;#039;&amp;#039;&amp;#039;Text Attributes&amp;#039;&amp;#039;&amp;#039; dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_Toolbar_TextControl.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Specifying properties of text controls in a toolbar&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The following information must be specified:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;30%&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| width=&amp;quot;70%&amp;quot;|A constant name to identify the Text control.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Initial Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The default text to display in the field.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Static&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;or&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;&amp;#039;Context Sensitive&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Select the appropriate text control type. The style can be changed at any time.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Font &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Select a font name, font style (Normal, Bold, Italic ...), and font size for the displayed text.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Text Width&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Determines a width in pixels of the Text control field. It can be entered manually or, by pushing the &amp;#039;&amp;#039;&amp;#039;&amp;quot;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;lt;---Text---&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;#039;&amp;#039;&amp;#039; button. In this case the width of the field will be optimized to display the &amp;#039;&amp;#039;&amp;#039;Initial Text&amp;#039;&amp;#039;&amp;#039; with the selected Font.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Foreground Color&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Select the Foreground Color for the displayed text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== List Button Attributes =====&lt;br /&gt;
&lt;br /&gt;
Double-clicking a List Button control calls the &amp;#039;&amp;#039;&amp;#039;List Button Attributes&amp;#039;&amp;#039;&amp;#039; dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_Toolbar_ListButtonAttributes.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;Specifying properties of list buttons in a toolbar&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only two parameters can be set for a list button in a toolbar:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;30%&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Constant &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| width=&amp;quot;70%&amp;quot;|A constant name to identify the List Button control.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Width &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Determines the width in pixels of the List Button control field.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Graphics_Editor&amp;diff=3607</id>
		<title>Ide/Resource Editor/Graphics Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Graphics_Editor&amp;diff=3607"/>
		<updated>2013-05-17T09:20:42Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
=== Graphics Editor Window ===&lt;br /&gt;
&lt;br /&gt;
When the Graphics Editor is started to edit an image, the Graphics Editor window will appear on the screen:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ProjectIcon.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Graphics Editor Window&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor window is divided into several areas. Each area is responsible for a definite function or combines a number of tools, which are associated by purpose.&lt;br /&gt;
&lt;br /&gt;
==== Areas of the Graphics Editor Window ====&lt;br /&gt;
&lt;br /&gt;
===== Graphics Editor Title Bar =====&lt;br /&gt;
&lt;br /&gt;
The title bar of the Graphics Editor window serves to display information about the type of the image (icon, cursor or bitmap), the image size in pixels, the number of colors which are available for use, and the name of the file which is opened for the current image.&lt;br /&gt;
&lt;br /&gt;
For example, the title bar &amp;#039;&amp;#039;&amp;#039;ProjectIcon.ico Size 32*32 Colors:16&amp;#039;&amp;#039;&amp;#039; says that:&lt;br /&gt;
* the type of current image is an icon;&lt;br /&gt;
* the size of the current image is 32*32 pixels;&lt;br /&gt;
* 16 colors may be used in the image;&lt;br /&gt;
* the name of the file, which is opened for current image, is &amp;lt;vp&amp;gt;ProjectIcon.ico&amp;lt;/vp&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== Graphic Field =====&lt;br /&gt;
&lt;br /&gt;
The Graphic Field is situated in the middle of the Graphics Editor window.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_GraphicField.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Typical contents of the Graphic Field&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The Graphic Field lets you see and edit the current image in expanded mode. The Graphic Field consists of small cells, where each cell corresponds to one pixel on the actual size image. The number of cells in each horizontal row and the number of cells in each vertical column give the image size, which is displayed in the title bar of the Graphics Editor window. It is possible to turn on and off a grid in the Graphic field.&lt;br /&gt;
&lt;br /&gt;
===== Image Screen =====&lt;br /&gt;
&lt;br /&gt;
To the right of the {{ide|Resource Editor#Graphic Field|Graphic Field}} in the Graphics Editor window you can see the Image Screen, painted in background color. In the middle of Image Screen you can see the current image in actual size on the selected background color. By changing the background color you can see how your current image will look in various surroundings.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ImageScreen.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Icon&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Under the {{ide|Resource Editor#Graphic Field|Graphic Field}}, you can see the Icon drop-down list:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_IconComboBox.png|center]]&lt;br /&gt;
&lt;br /&gt;
You can choose, which of the icon images in the current file to load into the editor.&lt;br /&gt;
&lt;br /&gt;
===== Move Toolbar =====&lt;br /&gt;
(Moving, Rotating and Flipping an Image)&lt;br /&gt;
To the right of the Graphic Field, under the {{ide|Resource Editor#Image Screen|Image Screen}}, you can see the Image Move toolbar:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_I06.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Image Move toolbar&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
By clicking the appropriate button you can move, rotate or flip the current image.&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Button&lt;br /&gt;
! Button Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I064.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Shift&amp;lt;br /&amp;gt; Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Moves the image one column to the left. The left edge column crosses the left borderline of the Graphic Field and returns to the Graphic Field as the right edge column&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I063.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Shift&amp;lt;br /&amp;gt; Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Moves the image one pixel column to the right. The right edge column crosses the right borderline of the Graphic Field and returns to the Graphic Field as the left edge column&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I061.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Shift&amp;lt;br /&amp;gt; Up&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Moves the image one pixel row up. The top row crosses the upper borderline of the Graphic Field and returns to the Graphic Field as the bottom row&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I062.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Shift&amp;lt;br /&amp;gt; Down&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Moves the image one pixel row down. The bottom row crosses the bottom borderline of the Graphic Field and returns to the Graphic Field as the top row&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I066.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Rotate&amp;lt;br /&amp;gt; Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Rotates the image 90 degrees counter-clockwise around its center&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I065.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Rotate&amp;lt;br /&amp;gt; Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Rotates the image 90 degrees clockwise around its center&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I068.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Flip&amp;lt;br /&amp;gt; Horizontal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Flips the image around the vertical axis&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I067.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Flip&amp;lt;br /&amp;gt; Vertical&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Flips the image around the horizontal axis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notice that the &amp;#039;&amp;#039;&amp;#039;Resource | Move&amp;#039;&amp;#039;&amp;#039; menu contains the same commands as the &amp;#039;&amp;#039;&amp;#039;Image Move&amp;#039;&amp;#039;&amp;#039; toolbar.&lt;br /&gt;
&lt;br /&gt;
===== Color Palette =====&lt;br /&gt;
&lt;br /&gt;
At the top of the Graphics Editor window you can see the Color Palette.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ColorPalette.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Color Palette&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The Color Palette lets you choose colors for the drawing operations:&lt;br /&gt;
&lt;br /&gt;
* {{ide|Resource Editor#Setting the Draw and Edit Colors|Setting the Draw and Edit Colors}}&lt;br /&gt;
* {{ide|Resource Editor#Setting the Background Color|Setting the Background Color}}&lt;br /&gt;
* {{ide|Resource Editor#Setting the Inverse (to Background) Color|Setting the Inverse (to Background) Color}}&lt;br /&gt;
&lt;br /&gt;
===== Color Modes Toolbar =====&lt;br /&gt;
&lt;br /&gt;
Under the {{ide|Resource Editor#Image Screen|Image Screen}} you can see the Color Modes tool box:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_I10.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The Color Modes toolbar&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Color Modes tool box is used to set:&lt;br /&gt;
&lt;br /&gt;
* {{ide|Resource Editor#Setting the Draw and Edit Colors|Draw and Edit colors}}&lt;br /&gt;
* {{ide|Resource Editor#Setting the Background Color|Background Color}}&lt;br /&gt;
* {{ide|Resource Editor#Setting the Inverse (to Background) Color|Inverse (to Background) Color}}&lt;br /&gt;
&lt;br /&gt;
===== Draw and Edit Toolbar =====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Using Draw and Edit Tools&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To the left of the Graphic Field of the Graphics Editor window you can see the Draw and Edit Toolbar. It contains the main tools for drawing and editing:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_DrawEditToolbox.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The Draw and Edit toolbar&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor provides a number of tools to make creating your image easy. The tools can be activated either from the &amp;#039;&amp;#039;&amp;#039;Resource | Tools&amp;#039;&amp;#039;&amp;#039; menu or from the Draw and Edit toolbar.&lt;br /&gt;
&lt;br /&gt;
===== Draw and Edit Tools =====&lt;br /&gt;
&lt;br /&gt;
By clicking any of the buttons in the Draw and Edit toolbar you can select the required draw or edit tool. Here are short descriptions of them:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Button&lt;br /&gt;
! Button Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I15.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Pen&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The Pen tool can be used to color an individual pixel on the Graphic Field or to make a free-hand drawing.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I16.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Brush&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The Brush tool works the same as Pen tool, except that the Brush tool leaves a larger mark than the Pen. The style of the Brush can be changed by selecting among the &amp;#039;&amp;#039;&amp;#039;Small&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Big&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Star&amp;#039;&amp;#039;&amp;#039; in the &amp;#039;&amp;#039;&amp;#039;Brush Style&amp;#039;&amp;#039;&amp;#039; list button (in the right bottom corner of the Graphics Editor window).&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I18.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Eraser&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| To erase a fragment of the image (the same as painting it with the Screen Color), you can use the Eraser Tool in the toolbar.&amp;lt;br /&amp;gt;The size of the Eraser can be changed by selecting among the &amp;#039;&amp;#039;&amp;#039;Small&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Big&amp;#039;&amp;#039;&amp;#039; in the &amp;#039;&amp;#039;&amp;#039;Eraser Style&amp;#039;&amp;#039;&amp;#039; list button (in the right bottom corner of the Graphics Editor window)&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I20.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Color Eraser&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The Erase Color tool will erase cells of the selected color without changing other colors.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I21.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Fill Contour&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The fastest way to color an area, which has an enclosed boundary, is to use the Fill Contour tool. Move the cursor into the area to be colored and click the mouse button. The interior of the bounded region will be colored.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I26.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Mirror&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| To create symmetrical images use the Mirror tool. The Mirror tool sets the points that are the reflections of the cursor trail point relative to the different axes of symmetry. To choose the appropriate axes of symmetry for the Mirror tool select the &amp;#039;&amp;#039;&amp;#039;Resource &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; {{ide|Resource Editor#Mirror Style Dialog|Set Mirror Style}}&amp;#039;&amp;#039;&amp;#039; menu command in the Task window menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I22.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Line&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Selecting this button enables you to draw a line between any two points in the image.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I23.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Draw Rectangle&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Click this button if you need a rectangle. Size the Rectangle by drawing it out with the left button held down, then release.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I24.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Draw Ellipse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Choose this tool if you need to draw a circle or an ellipse. Size the circle or ellipse by drawing it out with the left button held down, then release.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I25.png]]&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Enter Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Click this button to insert some text in your image. Move the cursor to the position on the Graphic Field where you want to start the text and click the mouse button. You will see a text cursor, which shows you the height of the letters and digits, and the starting point for the current line of text.&amp;lt;br /&amp;gt;When you type some text, it will be drawn in the currently selected color, with the currently selected font.&amp;lt;br /&amp;gt;To select the desired font settings press &amp;#039;&amp;#039;&amp;#039;Ctrl+F&amp;#039;&amp;#039;&amp;#039;.&amp;lt;br /&amp;gt;While the text is still selected, it is possible to move the starting point clicking in the new position.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I28.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Mark Area&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|To mark a rectangular fragment of the image on the Graphic Field to be cut, copied or moved, click the &amp;#039;&amp;#039;&amp;#039;Mark Area&amp;#039;&amp;#039;&amp;#039; tool. Then move the cursor to the Graphic Field cell, which you want to be one corner of a marked rectangular area, and press and hold the mouse button. Release the mouse when the rectangle is of the appropriate size and you will see a sub-region of the image marked accordingly.&amp;lt;br /&amp;gt;You can move the marked region to another part of the Graphic Field by means of &amp;quot;drag and drop&amp;quot;. Move the cursor into the marked region and press and hold the mouse button. Then, keeping the mouse button depressed, drag the marked fragment to the place of your choice and release the mouse button. Now the marked region is fixed in its new place.&amp;lt;br /&amp;gt;If you want to copy the marked region to another place, do as described under move, but hold down the &amp;#039;&amp;#039;&amp;#039;Ctrl&amp;#039;&amp;#039;&amp;#039; key, while pressing the mouse button in the marked region.&amp;lt;br /&amp;gt;When a region is marked:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Edit|Cut&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Edit|Copy&amp;#039;&amp;#039;&amp;#039; (from the main menu, or the main IDE toolbar &amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039; buttons, or the standard accelerator keys &amp;#039;&amp;#039;&amp;#039;Ctrl+X&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Ctrl+C&amp;#039;&amp;#039;&amp;#039;)can be used to place it to the clipboard;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Edit|Paste&amp;#039;&amp;#039;&amp;#039; (or the &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039; toolbar button or accelerator &amp;#039;&amp;#039;&amp;#039;Ctrl+V&amp;#039;&amp;#039;&amp;#039;)can be used to scale a image from the clipboard into the region.&lt;br /&gt;
* The &amp;#039;&amp;#039;&amp;#039;Paste &amp;amp; Scale&amp;#039;&amp;#039;&amp;#039; tool can be used.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; When you use &amp;#039;&amp;#039;&amp;#039;Edit|Paste&amp;#039;&amp;#039;&amp;#039; , the image fragment will appear in the left top corner of Graphic Field. The region may be moved to another place by the mouse.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I29.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Paste &amp;amp; Scale in Rectangle&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| When an image has been copied to the clipboard, this image can be pasted back into another marked area by pressing this button. This button will stay disabled until there are both an image on the clipboard, and a region has been selected.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I30.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Clear Graphic Field&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| To clear the Graphic Field, click the Clear button. The white color is used for bitmaps and transparent color is used for icons and cursors.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I31.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Change a Selected Color&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| With this button you can change all pixels that have a given color into another color. The two colors should first be set for the &amp;#039;&amp;#039;&amp;#039;Color&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Alt+Color&amp;#039;&amp;#039;&amp;#039; selections.&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; Any pixels, which were colored in background color or in &amp;quot;inverse&amp;quot; color by &amp;#039;&amp;#039;&amp;#039;Inverse&amp;#039;&amp;#039;&amp;#039; tool, will keep their original colors.&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Ide_I32.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Inverse Colors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This button can be used to invert all colors on the image. In this case, any pixels, which were colored in background color or in inverse to background color, will retain their existing colors.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I33.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Grid&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This button can be used to turn on and off a grid in the Graphic Field&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Mirror Style Dialog ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Mirror Style&amp;#039;&amp;#039;&amp;#039; dialog is activated by the &amp;#039;&amp;#039;&amp;#039;Resource | Set Mirror Style&amp;#039;&amp;#039;&amp;#039; menu command in the Task window menu:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_MirrorStyle.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The Mirror Style dialog&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Mirror Style&amp;#039;&amp;#039;&amp;#039; dialog is used to choose the appropriate axes of symmetry for the &amp;#039;&amp;#039;&amp;#039;Mirror&amp;#039;&amp;#039;&amp;#039; tool.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Mirror&amp;#039;&amp;#039;&amp;#039; tool [[Image:Ide_I26.png]] sets the points that are the reflections of the &amp;#039;&amp;#039;&amp;#039;cursor &amp;#039;&amp;#039;trail&amp;#039;&amp;#039; point&amp;#039;&amp;#039;&amp;#039; relative to the different axes of symmetry.&lt;br /&gt;
&lt;br /&gt;
When you place the mouse cursor onto some point inside an edited image and click the left mouse button, then we say that you set the &amp;#039;&amp;#039;&amp;#039;cursor &amp;#039;&amp;#039;trail&amp;#039;&amp;#039; point&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Using the &amp;#039;&amp;#039;&amp;#039;Mirror&amp;#039;&amp;#039;&amp;#039; tool, you can (by one click) set up to 8 reflections of the specified cursor &amp;#039;&amp;#039;trail&amp;#039;&amp;#039; point. A reflection point will be painted to each checked ON type of reflections. They are:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Main -&amp;gt; Trial&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the clicked &amp;#039;&amp;#039;&amp;#039;cursor &amp;#039;&amp;#039;trail&amp;#039;&amp;#039; point&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Main -&amp;gt; Reverse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point opposite to the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reflect -&amp;gt; Horizontal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is the horizontal reflection of the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reflect -&amp;gt; Vertical&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is the vertical reflection of the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Orthogonal -&amp;gt; Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is 90 degrees left rotation of the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Orthogonal -&amp;gt; Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is 90 degrees right rotation of the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reflect Diagonal -&amp;gt; Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is the reflection of the clicked cursor trail point relative to the diagonal line drawn from the &amp;#039;&amp;#039;&amp;#039;left&amp;#039;&amp;#039;&amp;#039; upper corner to the right lower corner of the image.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reflect Diagonal -&amp;gt; Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is the reflection of the clicked cursor trail point relative to the diagonal line drawn from the &amp;#039;&amp;#039;&amp;#039;right&amp;#039;&amp;#039;&amp;#039; upper corner to the left lower corner of the image.&lt;br /&gt;
&lt;br /&gt;
=== Using Tools and Colors ===&lt;br /&gt;
&lt;br /&gt;
==== Setting Colors ====&lt;br /&gt;
&lt;br /&gt;
===== Setting the Draw and Edit Colors =====&lt;br /&gt;
&lt;br /&gt;
To choose colors for the drawing and editing tools you can select one of the following four switches.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_Mode_DrawColor.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The Color Modes toolbar with selected &amp;quot;color&amp;quot; mode&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The color of selection will be used for the drawing. It is possible to choose a new color for the active selection by a click in the {{ide|Resource Editor#Color Palette|Color Palette}}.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;color&amp;#039;&amp;#039;&amp;#039; and the &amp;#039;&amp;#039;&amp;#039;alt-color&amp;#039;&amp;#039;&amp;#039; can be used in all drawing operations, the &amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039; (or transparent) and &amp;#039;&amp;#039;&amp;#039;inverse&amp;#039;&amp;#039;&amp;#039; selections have different purposes depending on the image type.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
There are 16 color fields on the {{ide|Resource Editor#Color Palette|Color Palette}}, and all of them are available for drawing and editing in the {{ide|Resource Editor#Graphic Field|Graphic Field}}.&lt;br /&gt;
&lt;br /&gt;
===== Setting the Background Color =====&lt;br /&gt;
&lt;br /&gt;
To see how your image looks on the different background colors or to color the image fragments in &amp;quot;transparent&amp;quot; (to let the background color show through) use the &amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039; color selection.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_Mode_BackgroundColor.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The &amp;quot;screen&amp;quot; mode should be used for Background color&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To change the background color, be sure that the &amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039; switch is selected, then you can choose the background color by clicking in the {{ide|Resource Editor#Color Palette|Color Palette}}. The background color on the {{ide|Resource Editor#Image Screen|Image Screen}}, any details of the image, which were colored in (transparent) background color, and the &amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039; indicator of &amp;#039;&amp;#039;&amp;#039;Color Modes&amp;#039;&amp;#039;&amp;#039; toolbar, all will change to the new color.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Usage of the &amp;quot;screen&amp;quot; Colors for Bitmaps, Cursors and Icons&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Image&lt;br /&gt;
! Screen Colors&lt;br /&gt;
|-&lt;br /&gt;
! Bitmaps&lt;br /&gt;
| Used to set the color of the surrounding area&lt;br /&gt;
|-&lt;br /&gt;
! Cursors and Icons&lt;br /&gt;
| Used to specify transparent pixels and to set the color of the surrounding area&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Setting the Inverse (to Background) Color =====&lt;br /&gt;
&lt;br /&gt;
Using the inverse color is a convenient way to mark the boundary of the image or to color the details, which should be always be in contrast to any background color.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_Mode_InverseBackground.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The &amp;quot;inverse&amp;quot; mode should be used for Inverse color&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Usage of the Inverse color for Bitmaps, Cursors and Icons&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Image&lt;br /&gt;
! Inverse Color&lt;br /&gt;
|-&lt;br /&gt;
! Bitmaps&lt;br /&gt;
| Cannot be used&lt;br /&gt;
|-&lt;br /&gt;
! Cursors and Icons&lt;br /&gt;
| Used to specify pixels that should get a color inverse of the actual background&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Understanding Colors ====&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Colors for Bitmaps&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Visual Prolog Graphics Editor can create bitmaps with either 2 or 16 colors. A pixel in a bitmap can not have the inverse and screen colors.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Colors for Cursors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Any pixel in a cursor can have one of four color control values:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Cursor&lt;br /&gt;
! Color Effect&lt;br /&gt;
|-&lt;br /&gt;
! Black&lt;br /&gt;
| Pixels will be black&lt;br /&gt;
|-&lt;br /&gt;
! White&lt;br /&gt;
| Pixels will be white&lt;br /&gt;
|-&lt;br /&gt;
! Inverse&lt;br /&gt;
| Pixels will be converted to the inverse of the original color&lt;br /&gt;
|-&lt;br /&gt;
! Screen&lt;br /&gt;
| Pixels will be transparent, they will just keep their old color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To understand how this works, you should create a little cursor having four areas, with these four color control values. Then select the &amp;#039;&amp;#039;&amp;#039;Resources | Tools | Test Cursor&amp;#039;&amp;#039;&amp;#039;, and study how the cursor looks.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_TestCursorColors.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;In this test cursor the left upper quoter of the cursor is painted with the &amp;quot;color&amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;and the left bottom quarter is painted with the &amp;quot;inverse&amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Place the cursor over the Grid and you will see effects of &amp;quot;inverse&amp;quot; color.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Colors for Icons&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Icons can either have 2 or 16 colors, and in addition to those, the pixels can also use the {{ide|Resource Editor#Setting the Background Color|&amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039;}} and &lt;br /&gt;
{{ide|Resource Editor#Setting the Inverse (to Background) Color|&amp;#039;&amp;#039;&amp;#039;inverse&amp;#039;&amp;#039;&amp;#039;}} colors.&lt;br /&gt;
&lt;br /&gt;
==== Cursor Handling Tools ====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setting Cursor Hot Spots&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
When working with a cursor, the menu command Resource | Set Cursor Hotspot activates a dialog box:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_CursorHotSpot.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;Defining the Hotspot for a cursor&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as this dialog is open you can point to the pixel, which is to be the cursor Hotspot. This pixel in the cursor will determine the screen pixel which will be acted upon and which will be reported during a mouse action.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Testing a Cursor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
When working with a cursor, the &amp;#039;&amp;#039;&amp;#039;Resource | Tools | Test Cursor&amp;#039;&amp;#039;&amp;#039; menu item allows you to see what your newly designed cursor will look like.&lt;br /&gt;
&lt;br /&gt;
==== Undo / Redo Buffer ====&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor supports &amp;#039;&amp;#039;&amp;#039;Edit|Undo&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Edit|Redo&amp;#039;&amp;#039;&amp;#039; operations, just as the other editors do.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Creating_new_Project_Items/Creating_a_Image&amp;diff=3606</id>
		<title>Ide/Creating new Project Items/Creating a Image</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Creating_new_Project_Items/Creating_a_Image&amp;diff=3606"/>
		<updated>2013-05-17T08:58:45Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
====  Creating a New Image (Bitmap, Cursor or Icon) ==== &lt;br /&gt;
&lt;br /&gt;
To create and register a new image (a bitmap, an icon or a cursor) in a project you need to use the &amp;#039;&amp;#039;&amp;#039;File | New&amp;#039;&amp;#039;&amp;#039; menu item. In the opened &amp;#039;&amp;#039;&amp;#039;New&amp;#039;&amp;#039;&amp;#039; dialog you should select the &amp;#039;&amp;#039;&amp;#039;Bitmap&amp;#039;&amp;#039;&amp;#039;, the &amp;#039;&amp;#039;&amp;#039;Icon&amp;#039;&amp;#039;&amp;#039; or the &amp;#039;&amp;#039;&amp;#039;Cursor&amp;#039;&amp;#039;&amp;#039; type of creating item. Then the following dialog (in case if you have selected the &amp;#039;&amp;#039;&amp;#039;Bitmap&amp;#039;&amp;#039;&amp;#039;) appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_MyBitmap.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Creating a new bitmap image&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
In this dialog you should specify the following items:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this dialog you should type in the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; which will be associated with this image in the code generated by default. This &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; should be a correct Visual Prolog name. It should be any sequence of letters, digits, and underscores, beginning with a letter. This is the name of the creating image. It appears as the names of image files in the project tree in the Project window.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Package&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:With the &amp;#039;&amp;#039;&amp;#039;Package&amp;#039;&amp;#039;&amp;#039; selection the programmer can determine into directory of which package will be placed the image file.&lt;br /&gt;
&lt;br /&gt;
==== Image Attributes Dialog ====&lt;br /&gt;
&lt;br /&gt;
After you press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button in the &amp;#039;&amp;#039;&amp;#039;New Bitmap&amp;#039;&amp;#039;&amp;#039; dialog, the &amp;#039;&amp;#039;&amp;#039;Bitmap Attributes&amp;#039;&amp;#039;&amp;#039; dialog appears. The similar dialogs appear in case if you will create a cursor or an icon.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_BitmapAttributes.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Bitmap Attributes dialog while creation of a new bitmap&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
After clicking the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button the new bitmap will be created and its name will be added to the existing bitmaps for the current project.&lt;br /&gt;
&lt;br /&gt;
The similar (but little simpler) dialogs appear when you create a new Icon:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_IconAttributes.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Icon Attributes dialog while creation of a new icon&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
and a new Cursor:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_CursorAttributes.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Cursor Attributes dialog while creation of a new cursor&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
In these dialogs you can change only the &amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039; attribute. The attributes &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; are generated automatically and cannot be changed by the programmer.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:This is the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; which was specified for the image in the previous &amp;#039;&amp;#039;&amp;#039;New&amp;#039;&amp;#039;&amp;#039; dialog. It cannot be changed here.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Here you will see the name of file, with the path relative to the project root directory, in which the image will be stored. This filename is generated automatically by the IDE and cannot be changed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:The constant is used to identify the image in your program. An image identifier must be unique throughout the project.&lt;br /&gt;
:&amp;lt;br /&amp;gt;You can either input it directly from the keyboard or allow the IDE to create a default value.&lt;br /&gt;
&lt;br /&gt;
:The default values for constants are:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}} width=&amp;quot;75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image Type&lt;br /&gt;
! Constant&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;Bitmap&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idb_bitmap_name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;Icon&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idi_icon_name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;#039;&amp;#039;Cursor&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idc_cursor_name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Constant must be either legal symbolic constant name (for example, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idb_mybitmap&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;) or an integer. The IDE automatically places the symbolic identifier into the &amp;#039;&amp;#039;&amp;#039;ResourceIdentifiers.i&amp;#039;&amp;#039;&amp;#039; file and generates an integer value for it. The Graphics Editor automatically concatenates a sequence number if the project already has an image with the same name.&lt;br /&gt;
&lt;br /&gt;
:In case of Icons and Cursors this is the only attribute which can be edited in this dialog.&lt;br /&gt;
&lt;br /&gt;
In case when you create a new bitmap, you can specify several additional attributes:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Width and Height&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Defines the Width and Height of the bitmap in pixels. The maximal possible values are 64.&lt;br /&gt;
&lt;br /&gt;
:You may specify the size of the image for bitmaps only. The Graphics Editor allows you to create and edit bitmaps ranging in size from 4x4 pixels to 64x64 pixels.&lt;br /&gt;
&lt;br /&gt;
:The size of icons and cursors is always 32x32.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Colors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this field you may specify using of either a 16-color palette or monochrome shadow palette for bitmaps and icons. Remember that for creating cursor images only 2 colors are available - the color black and transparent for background &amp;quot;color&amp;quot;.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Creating_new_Project_Items/Creating_a_Image&amp;diff=3605</id>
		<title>Ide/Creating new Project Items/Creating a Image</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Creating_new_Project_Items/Creating_a_Image&amp;diff=3605"/>
		<updated>2013-05-17T08:52:12Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
====  Creating a New Image (Bitmap, Cursor or Icon) ==== &lt;br /&gt;
&lt;br /&gt;
To create and register a new image (a bitmap, an icon or a cursor) in a project you need to use the &amp;#039;&amp;#039;&amp;#039;File | New&amp;#039;&amp;#039;&amp;#039; menu item. In the opened &amp;#039;&amp;#039;&amp;#039;New&amp;#039;&amp;#039;&amp;#039; dialog you should select the &amp;#039;&amp;#039;&amp;#039;Bitmap&amp;#039;&amp;#039;&amp;#039;, the &amp;#039;&amp;#039;&amp;#039;Icon&amp;#039;&amp;#039;&amp;#039; or the &amp;#039;&amp;#039;&amp;#039;Cursor&amp;#039;&amp;#039;&amp;#039; type of creating item. Then the following dialog (in case if you have selected the &amp;#039;&amp;#039;&amp;#039;Bitmap&amp;#039;&amp;#039;&amp;#039;) appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_MyBitmap.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Creating a new bitmap image&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
In this dialog you should specify the following items:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this dialog you should type in the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; which will be associated with this image in the code generated by default. This &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; should be a correct Visual Prolog name. It should be any sequence of letters, digits, and underscores, beginning with a letter. This is the name of the creating image. It appears as the names of image files in the project tree in the Project window.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Package&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:With the &amp;#039;&amp;#039;&amp;#039;Package&amp;#039;&amp;#039;&amp;#039; selection the programmer can determine into directory of which package will be placed the image file.&lt;br /&gt;
&lt;br /&gt;
==== Image Attributes Dialog ====&lt;br /&gt;
&lt;br /&gt;
After you press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button in the &amp;#039;&amp;#039;&amp;#039;New Bitmap&amp;#039;&amp;#039;&amp;#039; dialog, the &amp;#039;&amp;#039;&amp;#039;Bitmap Attributes&amp;#039;&amp;#039;&amp;#039; dialog appears. The similar dialogs appear in case if you will create a cursor or an icon.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_BitmapAttributes.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Bitmap Attributes dialog while creation of a new bitmap&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
After clicking the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button the new bitmap will be created and its name will be added to the existing bitmaps for the current project.&lt;br /&gt;
&lt;br /&gt;
The similar (but little simpler) dialogs appear when you create a new Icon:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_IconAttributes.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Icon Attributes dialog while creation of a new icon&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
and a new Cursor:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_CursorAttributes.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Cursor Attributes dialog while creation of a new cursor&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
In these dialogs you can change only the &amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039; attribute. The attributes &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; are generated automatically and cannot be changed by the programmer.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:This is the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; which was specified for the image in the previous &amp;#039;&amp;#039;&amp;#039;New&amp;#039;&amp;#039;&amp;#039; dialog. It cannot be changed here.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Here you will see the name of file, with the path relative to the project root directory, in which the image will be stored. This filename is generated automatically by the IDE and cannot be changed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:The constant is used to identify the image in your program. An image identifier must be unique throughout the project.&lt;br /&gt;
:&amp;lt;br /&amp;gt;You can either input it directly from the keyboard or allow the IDE to create a default value.&lt;br /&gt;
&lt;br /&gt;
:The default values for constants are:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}} width=&amp;quot;75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image Type&lt;br /&gt;
! Constant&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;Bitmap&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idb_bitmap_name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;Icon&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idi_icon_name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;#039;&amp;#039;Cursor&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idc_cursor_name&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Constant must be either legal symbolic constant name (for example, &amp;#039;&amp;#039;&amp;#039;idb_MyBitmap&amp;#039;&amp;#039;&amp;#039;) or an integer. The IDE automatically places the symbolic identifier into the &amp;#039;&amp;#039;&amp;#039;ResourceIdentifiers.i&amp;#039;&amp;#039;&amp;#039; file and generates an integer value for it. The Graphics Editor automatically concatenates a sequence number if the project already has an image with the same name.&lt;br /&gt;
&lt;br /&gt;
:In case of Icons and Cursors this is the only attribute which can be edited in this dialog.&lt;br /&gt;
&lt;br /&gt;
In case when you create a new bitmap, you can specify several additional attributes:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Width and Height&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Defines the Width and Height of the bitmap in pixels. The maximal possible values are 64.&lt;br /&gt;
&lt;br /&gt;
:You may specify the size of the image for bitmaps only. The Graphics Editor allows you to create and edit bitmaps ranging in size from 4x4 pixels to 64x64 pixels.&lt;br /&gt;
&lt;br /&gt;
:The size of icons and cursors is always 32x32.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Colors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this field you may specify using of either a 16-color palette or monochrome shadow palette for bitmaps and icons. Remember that for creating cursor images only 2 colors are available - the color black and transparent for background &amp;quot;color&amp;quot;.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Graphics_Editor&amp;diff=3604</id>
		<title>Ide/Resource Editor/Graphics Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Graphics_Editor&amp;diff=3604"/>
		<updated>2013-05-17T08:07:43Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
=== Graphics Editor Window ===&lt;br /&gt;
&lt;br /&gt;
When the Graphics Editor is started to edit an image, the Graphics Editor window will appear on the screen:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ProjectIcon.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Graphics Editor Window&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor window is divided into several areas. Each area is responsible for a definite function or combines a number of tools, which are associated by purpose.&lt;br /&gt;
&lt;br /&gt;
==== Areas of the Graphics Editor Window ====&lt;br /&gt;
&lt;br /&gt;
===== Graphics Editor Title Bar =====&lt;br /&gt;
&lt;br /&gt;
The title bar of the Graphics Editor window serves to display information about the type of the image (icon, cursor or bitmap), the image size in pixels, the number of colors which are available for use, and the name of the file which is opened for the current image.&lt;br /&gt;
&lt;br /&gt;
For example, the title bar &amp;#039;&amp;#039;&amp;#039;ProjectIcon.ico Size 32*32 Colors:16&amp;#039;&amp;#039;&amp;#039; says that:&lt;br /&gt;
* the type of current image is an icon;&lt;br /&gt;
* the size of the current image is 32*32 pixels;&lt;br /&gt;
* 16 colors may be used in the image;&lt;br /&gt;
* the name of the file, which is opened for current image, is &amp;lt;vp&amp;gt;ProjectIcon.ico&amp;lt;/vp&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== Graphic Field =====&lt;br /&gt;
&lt;br /&gt;
The Graphic Field is situated in the middle of the Graphics Editor window.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_GraphicField.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Typical contents of the Graphic Field&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The Graphic Field lets you see and edit the current image in expanded mode. The Graphic Field consists of small cells, where each cell corresponds to one pixel on the actual size image. The number of cells in each horizontal row and the number of cells in each vertical column give the image size, which is displayed in the title bar of the Graphics Editor window. It is possible to turn on and off a grid in the Graphic field.&lt;br /&gt;
&lt;br /&gt;
===== Image Screen =====&lt;br /&gt;
&lt;br /&gt;
To the right of the {{ide|Resource Editor#Graphic Field|Graphic Field}} in the Graphics Editor window you can see the Image Screen, painted in background color. In the middle of Image Screen you can see the current image in actual size on the selected background color. By changing the background color you can see how your current image will look in various surroundings.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ImageScreen.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Icon&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Under the {{ide|Resource Editor#Graphic Field|Graphic Field}}, you can see the Icon drop-down list:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_IconComboBox.png|center]]&lt;br /&gt;
&lt;br /&gt;
You can choose, which of the icon images in the current file to load into the editor.&lt;br /&gt;
&lt;br /&gt;
===== Move Toolbar =====&lt;br /&gt;
(Moving, Rotating and Flipping an Image)&lt;br /&gt;
To the right of the Graphic Field, under the {{ide|Resource Editor#Image Screen|Image Screen}}, you can see the Image Move toolbar:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_I06.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Image Move toolbar&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
By clicking the appropriate button you can move, rotate or flip the current image.&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Button&lt;br /&gt;
! Button Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I064.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Shift&amp;lt;br /&amp;gt; Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Moves the image one column to the left. The left edge column crosses the left borderline of the Graphic Field and returns to the Graphic Field as the right edge column&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I063.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Shift&amp;lt;br /&amp;gt; Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Moves the image one pixel column to the right. The right edge column crosses the right borderline of the Graphic Field and returns to the Graphic Field as the left edge column&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I061.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Shift&amp;lt;br /&amp;gt; Up&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Moves the image one pixel row up. The top row crosses the upper borderline of the Graphic Field and returns to the Graphic Field as the bottom row&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I062.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Shift&amp;lt;br /&amp;gt; Down&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Moves the image one pixel row down. The bottom row crosses the bottom borderline of the Graphic Field and returns to the Graphic Field as the top row&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I066.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Rotate&amp;lt;br /&amp;gt; Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Rotates the image 90 degrees counter-clockwise around its center&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I065.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Rotate&amp;lt;br /&amp;gt; Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Rotates the image 90 degrees clockwise around its center&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I068.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Flip&amp;lt;br /&amp;gt; Horizontal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Flips the image around the vertical axis&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I067.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Flip&amp;lt;br /&amp;gt; Vertical&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Flips the image around the horizontal axis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notice that the &amp;#039;&amp;#039;&amp;#039;Resource | Move&amp;#039;&amp;#039;&amp;#039; menu contains the same commands as the &amp;#039;&amp;#039;&amp;#039;Image Move&amp;#039;&amp;#039;&amp;#039; toolbar.&lt;br /&gt;
&lt;br /&gt;
===== Color Palette =====&lt;br /&gt;
&lt;br /&gt;
At the top of the Graphics Editor window you can see the Color Palette.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ColorPalette.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Color Palette&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The Color Palette lets you choose colors for the drawing operations:&lt;br /&gt;
&lt;br /&gt;
* {{ide|Resource Editor#Setting the Draw and Edit Colors|Setting the Draw and Edit Colors}}&lt;br /&gt;
* {{ide|Resource Editor#Setting the Background Colors|Setting the Background Color}}&lt;br /&gt;
* {{ide|Resource Editor#Setting the Inverse (to Background) Color|Setting the Inverse (to Background) Color}}&lt;br /&gt;
&lt;br /&gt;
===== Color Modes Toolbar =====&lt;br /&gt;
&lt;br /&gt;
Under the {{ide|Resource Editor#Image Screen|Image Screen}} you can see the Color Modes tool box:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_I10.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The Color Modes toolbar&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Color Modes tool box is used to set:&lt;br /&gt;
&lt;br /&gt;
* {{ide|Resource Editor#Setting the Draw and Edit Colors|Draw and Edit colors}}&lt;br /&gt;
* {{ide|Resource Editor#Setting the Background Colors|Background Color}}&lt;br /&gt;
* {{ide|Resource Editor#Setting the Inverse (to Background) Color|Inverse (to Background) Color}}&lt;br /&gt;
&lt;br /&gt;
===== Draw and Edit Toolbar =====&lt;br /&gt;
(Using Draw and Edit Tools)&lt;br /&gt;
To the left of the Graphic Field of the Graphics Editor window you can see the Draw and Edit Toolbar. It contains the main tools for drawing and editing:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_DrawEditToolbox.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The Draw and Edit toolbar&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor provides a number of tools to make creating your image easy. The tools can be activated either from the &amp;#039;&amp;#039;&amp;#039;Resource | Tools&amp;#039;&amp;#039;&amp;#039; menu or from the Draw and Edit toolbar.&lt;br /&gt;
&lt;br /&gt;
===== Draw and Edit Tools =====&lt;br /&gt;
&lt;br /&gt;
By clicking any of the buttons in the Draw and Edit toolbar you can select the required draw or edit tool. Here are short descriptions of them:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Button&lt;br /&gt;
! Button Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I15.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Pen&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The Pen tool can be used to color an individual pixel on the Graphic Field or to make a free-hand drawing.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I16.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Brush&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The Brush tool works the same as Pen tool, except that the Brush tool leaves a larger mark than the Pen. The style of the Brush can be changed by selecting among the &amp;#039;&amp;#039;&amp;#039;Small&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Big&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Star&amp;#039;&amp;#039;&amp;#039; in the &amp;#039;&amp;#039;&amp;#039;Brush Style&amp;#039;&amp;#039;&amp;#039; list button (in the right bottom corner of the Graphics Editor window).&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I18.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Eraser&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| To erase a fragment of the image (the same as painting it with the Screen Color), you can use the Eraser Tool in the toolbar.&amp;lt;br /&amp;gt;The size of the Eraser can be changed by selecting among the &amp;#039;&amp;#039;&amp;#039;Small&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Big&amp;#039;&amp;#039;&amp;#039; in the &amp;#039;&amp;#039;&amp;#039;Eraser Style&amp;#039;&amp;#039;&amp;#039; list button (in the right bottom corner of the Graphics Editor window)&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I20.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Color Eraser&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The Erase Color tool will erase cells of the selected color without changing other colors.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I21.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Fill Contour&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The fastest way to color an area, which has an enclosed boundary, is to use the Fill Contour tool. Move the cursor into the area to be colored and click the mouse button. The interior of the bounded region will be colored.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I26.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Mirror&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| To create symmetrical images use the Mirror tool. The Mirror tool sets the points that are the reflections of the cursor trail point relative to the different axes of symmetry. To choose the appropriate axes of symmetry for the Mirror tool select the &amp;#039;&amp;#039;&amp;#039;Resource &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; {{ide|Resource Editor#Mirror Style Dialog|Set Mirror Style}}&amp;#039;&amp;#039;&amp;#039; menu command in the Task window menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I22.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Line&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Selecting this button enables you to draw a line between any two points in the image.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I23.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Draw Rectangle&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Click this button if you need a rectangle. Size the Rectangle by drawing it out with the left button held down, then release.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I24.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Draw Ellipse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Choose this tool if you need to draw a circle or an ellipse. Size the circle or ellipse by drawing it out with the left button held down, then release.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I25.png]]&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Enter Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Click this button to insert some text in your image. Move the cursor to the position on the Graphic Field where you want to start the text and click the mouse button. You will see a text cursor, which shows you the height of the letters and digits, and the starting point for the current line of text.&amp;lt;br /&amp;gt;When you type some text, it will be drawn in the currently selected color, with the currently selected font.&amp;lt;br /&amp;gt;To select the desired font settings press &amp;#039;&amp;#039;&amp;#039;Ctrl+F&amp;#039;&amp;#039;&amp;#039;.&amp;lt;br /&amp;gt;While the text is still selected, it is possible to move the starting point clicking in the new position.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I28.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Mark Area&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|To mark a rectangular fragment of the image on the Graphic Field to be cut, copied or moved, click the &amp;#039;&amp;#039;&amp;#039;Mark Area&amp;#039;&amp;#039;&amp;#039; tool. Then move the cursor to the Graphic Field cell, which you want to be one corner of a marked rectangular area, and press and hold the mouse button. Release the mouse when the rectangle is of the appropriate size and you will see a sub-region of the image marked accordingly.&amp;lt;br /&amp;gt;You can move the marked region to another part of the Graphic Field by means of &amp;quot;drag and drop&amp;quot;. Move the cursor into the marked region and press and hold the mouse button. Then, keeping the mouse button depressed, drag the marked fragment to the place of your choice and release the mouse button. Now the marked region is fixed in its new place.&amp;lt;br /&amp;gt;If you want to copy the marked region to another place, do as described under move, but hold down the &amp;#039;&amp;#039;&amp;#039;Ctrl&amp;#039;&amp;#039;&amp;#039; key, while pressing the mouse button in the marked region.&amp;lt;br /&amp;gt;When a region is marked:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Edit|Cut&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Edit|Copy&amp;#039;&amp;#039;&amp;#039; (from the main menu, or the main IDE toolbar &amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039; buttons, or the standard accelerator keys &amp;#039;&amp;#039;&amp;#039;Ctrl+X&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Ctrl+C&amp;#039;&amp;#039;&amp;#039;)can be used to place it to the clipboard;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Edit|Paste&amp;#039;&amp;#039;&amp;#039; (or the &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039; toolbar button or accelerator &amp;#039;&amp;#039;&amp;#039;Ctrl+V&amp;#039;&amp;#039;&amp;#039;)can be used to scale a image from the clipboard into the region.&lt;br /&gt;
* The &amp;#039;&amp;#039;&amp;#039;Paste&amp;amp;Scale&amp;#039;&amp;#039;&amp;#039; tool can be used.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; When you use &amp;#039;&amp;#039;&amp;#039;Edit|Paste&amp;#039;&amp;#039;&amp;#039; , the image fragment will appear in the left top corner of Graphic Field. The region may be moved to another place by the mouse.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I29.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Paste &amp;amp; Scale in Rectangle&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| When an image has been copied to the clipboard, this image can be pasted back into another marked area by pressing this button. This button will stay disabled until there are both an image on the clipboard, and a region has been selected.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I30.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Clear Graphic Field&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| To clear the Graphic Field, click the Clear button. The white color is used for bitmaps and transparent color is used for icons and cursors.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I31.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Change a Selected Color&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| With this button you can change all pixels that have a given color into another color. The two colors should first be set for the &amp;#039;&amp;#039;&amp;#039;Color&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Alt-Color&amp;#039;&amp;#039;&amp;#039; selections.&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; Any pixels, which were colored in background color or in &amp;quot;inverse&amp;quot; color by &amp;#039;&amp;#039;&amp;#039;Inverse&amp;#039;&amp;#039;&amp;#039; tool, will keep their original colors.&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Ide_I32.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Inverse Colors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This button can be used to invert all colors on the image. In this case, any pixels, which were colored in background color or in inverse to background color, will retain their existing colors.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I33.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Grid&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This button can be used to turn on and off a grid in the Graphic Field&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Mirror Style Dialog ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Mirror Style&amp;#039;&amp;#039;&amp;#039; dialog is activated by the &amp;#039;&amp;#039;&amp;#039;Resource | Set Mirror Style&amp;#039;&amp;#039;&amp;#039; menu command in the Task window menu:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_MirrorStyle.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The Mirror Style dialog&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Mirror Style&amp;#039;&amp;#039;&amp;#039; dialog is used to choose the appropriate axes of symmetry for the &amp;#039;&amp;#039;&amp;#039;Mirror&amp;#039;&amp;#039;&amp;#039; tool.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Mirror&amp;#039;&amp;#039;&amp;#039; tool [[Image:Ide_I26.png]] sets the points that are the reflections of the &amp;#039;&amp;#039;&amp;#039;cursor &amp;#039;&amp;#039;trail&amp;#039;&amp;#039; point&amp;#039;&amp;#039;&amp;#039; relative to the different axes of symmetry.&lt;br /&gt;
&lt;br /&gt;
When you place the mouse cursor onto some point inside an edited image and click the left mouse button, then we say that you set the &amp;#039;&amp;#039;&amp;#039;cursor &amp;#039;&amp;#039;trail&amp;#039;&amp;#039; point&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Using the &amp;#039;&amp;#039;&amp;#039;Mirror&amp;#039;&amp;#039;&amp;#039; tool, you can (by one click) set up to 8 reflections of the specified cursor &amp;#039;&amp;#039;trail&amp;#039;&amp;#039; point. A reflection point will be painted to each checked ON type of reflections. They are:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Main -&amp;gt; Trial&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the clicked &amp;#039;&amp;#039;&amp;#039;cursor &amp;#039;&amp;#039;trail&amp;#039;&amp;#039; point&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Main -&amp;gt; Reverse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point opposite to the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reflect -&amp;gt; Horizontal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is the horizontal reflection of the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reflect -&amp;gt; Vertical&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is the vertical reflection of the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Orthogonal -&amp;gt; Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is 90 degrees left rotation of the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Orthogonal -&amp;gt; Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is 90 degrees right rotation of the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reflect Diagonal -&amp;gt; Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is the reflection of the clicked cursor trail point relative to the diagonal line drawn from the &amp;#039;&amp;#039;&amp;#039;left&amp;#039;&amp;#039;&amp;#039; upper corner to the right lower corner of the image.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reflect Diagonal -&amp;gt; Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is the reflection of the clicked cursor trail point relative to the diagonal line drawn from the &amp;#039;&amp;#039;&amp;#039;right&amp;#039;&amp;#039;&amp;#039; upper corner to the left lower corner of the image.&lt;br /&gt;
&lt;br /&gt;
=== Using Tools and Colors ===&lt;br /&gt;
&lt;br /&gt;
==== Setting Colors ====&lt;br /&gt;
&lt;br /&gt;
===== Setting the Draw and Edit Colors =====&lt;br /&gt;
&lt;br /&gt;
To choose colors for the drawing and editing tools you can select one of the following four switches.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_Mode_DrawColor.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The Color Modes toolbar with selected &amp;quot;color&amp;quot; mode&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The color of selection will be used for the drawing. It is possible to choose a new color for the active selection by a click in the {{ide|Resource Editor#Color Palette|Color Palette}}.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;color&amp;#039;&amp;#039;&amp;#039; and the &amp;#039;&amp;#039;&amp;#039;alt-color&amp;#039;&amp;#039;&amp;#039; can be used in all drawing operations, the &amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039; (or transparent) and &amp;#039;&amp;#039;&amp;#039;inverse&amp;#039;&amp;#039;&amp;#039; selections have different purposes depending on the image type.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
There are 16 color fields on the {{ide|Resource Editor#Color Palette|Color Palette}}, and all of them are available for drawing and editing in the {{ide|Resource Editor#Graphic Field|Graphic Field}}.&lt;br /&gt;
&lt;br /&gt;
===== Setting the Background Color =====&lt;br /&gt;
&lt;br /&gt;
To see how your image looks on the different background colors or to color the image fragments in &amp;quot;transparent&amp;quot; (to let the background color show through) use the &amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039; color selection.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_Mode_BackgroundColor.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The &amp;quot;screen&amp;quot; mode should be used for Background color&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To change the background color, be sure that the &amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039; switch is selected, then you can choose the background color by clicking in the {{ide|Resource Editor#Color Palette|Color Palette}}. The background color on the {{ide|Resource Editor#Image Screen|Image Screen}}, any details of the image, which were colored in (transparent) background color, and the &amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039; indicator of &amp;#039;&amp;#039;&amp;#039;Color Modes&amp;#039;&amp;#039;&amp;#039; toolbar, all will change to the new color.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Usage of the &amp;quot;screen&amp;quot; Colors for Bitmaps, Cursors and Icons&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Image&lt;br /&gt;
! Screen Colors&lt;br /&gt;
|-&lt;br /&gt;
! Bitmaps&lt;br /&gt;
| Used to set the color of the surrounding area&lt;br /&gt;
|-&lt;br /&gt;
! Cursors and Icons&lt;br /&gt;
| Used to specify transparent pixels and to set the color of the surrounding area&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Setting the Inverse (to Background) Color =====&lt;br /&gt;
&lt;br /&gt;
Using the inverse color is a convenient way to mark the boundary of the image or to color the details, which should be always be in contrast to any background color.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_Mode_InverseBackground.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The &amp;quot;inverse&amp;quot; mode should be used for Inverse color&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Usage of the Inverse color for Bitmaps, Cursors and Icons&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Image&lt;br /&gt;
! Inverse Color&lt;br /&gt;
|-&lt;br /&gt;
! Bitmaps&lt;br /&gt;
| Cannot be used&lt;br /&gt;
|-&lt;br /&gt;
! Cursors and Icons&lt;br /&gt;
| Used to specify pixels that should get a color inverse of the actual background&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Understanding Colors ====&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Colors for Bitmaps&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Visual Prolog Graphics Editor can create bitmaps with either 2 or 16 colors. A pixel in a bitmap can not have the inverse and screen colors.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Colors for Cursors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Any pixel in a cursor can have one of four color control values:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Cursor&lt;br /&gt;
! Color Effect&lt;br /&gt;
|-&lt;br /&gt;
! Black&lt;br /&gt;
| Pixels will be black&lt;br /&gt;
|-&lt;br /&gt;
! White&lt;br /&gt;
| Pixels will be white&lt;br /&gt;
|-&lt;br /&gt;
! Inverse&lt;br /&gt;
| Pixels will be converted to the inverse of the original color&lt;br /&gt;
|-&lt;br /&gt;
! Screen&lt;br /&gt;
| Pixels will be transparent, they will just keep their old color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To understand how this works, you should create a little cursor having four areas, with these four color control values. Then select the &amp;#039;&amp;#039;&amp;#039;Resources | Tools | Test Cursor&amp;#039;&amp;#039;&amp;#039;, and study how the cursor looks.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_TestCursorColors.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;In this test cursor the left upper quoter of the cursor is painted with the &amp;quot;color&amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;and the left bottom quarter is painted with the &amp;quot;inverse&amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Place the cursor over the Grid and you will see effects of &amp;quot;inverse&amp;quot; color.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Colors for Icons&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Icons can either have 2 or 16 colors, and in addition to those, the pixels can also use the {{ide|Resource Editor#Setting the Background Color|&amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039;}} and &lt;br /&gt;
{{ide|Resource Editor#Setting the Inverse (to Background) Color|&amp;#039;&amp;#039;&amp;#039;inverse&amp;#039;&amp;#039;&amp;#039;}} colors.&lt;br /&gt;
&lt;br /&gt;
==== Cursor Handling Tools ====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setting Cursor Hot Spots&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
When working with a cursor, the menu command Resource | Set Cursor Hotspot activates a dialog box:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_CursorHotSpot.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;Defining the Hotspot for a cursor&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as this dialog is open you can point to the pixel, which is to be the cursor Hotspot. This pixel in the cursor will determine the screen pixel which will be acted upon and which will be reported during a mouse action.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Testing a Cursor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
When working with a cursor, the &amp;#039;&amp;#039;&amp;#039;Resource | Tools | Test Cursor&amp;#039;&amp;#039;&amp;#039; menu item allows you to see what your newly designed cursor will look like.&lt;br /&gt;
&lt;br /&gt;
==== Undo / Redo Buffer ====&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor supports &amp;#039;&amp;#039;&amp;#039;Edit|Undo&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Edit|Redo&amp;#039;&amp;#039;&amp;#039; operations, just as the other editors do.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Graphics_Editor&amp;diff=3581</id>
		<title>Ide/Resource Editor/Graphics Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Graphics_Editor&amp;diff=3581"/>
		<updated>2013-04-26T13:42:54Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
=== Graphics Editor Window ===&lt;br /&gt;
&lt;br /&gt;
When the Graphics Editor is started to edit an image, the Graphics Editor window will appear on the screen:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ProjectIcon.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Graphics Editor Window&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor window is divided into several areas. Each area is responsible for a definite function or combines a number of tools, which are associated by purpose.&lt;br /&gt;
&lt;br /&gt;
==== Areas of the Graphics Editor Window ====&lt;br /&gt;
&lt;br /&gt;
===== Graphics Editor Title Bar =====&lt;br /&gt;
&lt;br /&gt;
The title bar of the Graphics Editor window serves to display information about the type of the image (icon, cursor or bitmap), the image size in pixels, the number of colors which are available for use, and the name of the file which is opened for the current image.&lt;br /&gt;
&lt;br /&gt;
For example, the title bar &amp;#039;&amp;#039;&amp;#039;ProjectIcon.ico Size 32*32 Colors:16&amp;#039;&amp;#039;&amp;#039; says that:&lt;br /&gt;
* the type of current image is an icon;&lt;br /&gt;
* the size of the current image is 32*32 pixels;&lt;br /&gt;
* 16 colors may be used in the image;&lt;br /&gt;
* the name of the file, which is opened for current image, is &amp;lt;vp&amp;gt;ProjectIcon.ico&amp;lt;/vp&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== Graphic Field =====&lt;br /&gt;
&lt;br /&gt;
The Graphic Field is situated in the middle of the Graphics Editor window.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_GraphicField.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Typical contents of the Graphic Field&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The Graphic Field lets you see and edit the current image in expanded mode. The Graphic Field consists of small cells, where each cell corresponds to one pixel on the actual size image. The number of cells in each horizontal row and the number of cells in each vertical column give the image size, which is displayed in the title bar of the Graphics Editor window. It is possible to turn on and off a grid in the Graphic field.&lt;br /&gt;
&lt;br /&gt;
===== Image Screen =====&lt;br /&gt;
&lt;br /&gt;
To the right of the {{ide|Resource Editor#Graphic Field|Graphic Field}} in the Graphics Editor window you can see the Image Screen, painted in background color. In the middle of Image Screen you can see the current image in actual size on the selected background color. By changing the background color you can see how your current image will look in various surroundings.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ImageScreen.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Icon&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Under the {{ide|Resource Editor#Graphic Field|Graphic Field}}, you can see the Icon drop-down list:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_IconComboBox.png|center]]&lt;br /&gt;
&lt;br /&gt;
You can choose, which of the icon images in the current file to load into the editor.&lt;br /&gt;
&lt;br /&gt;
===== Move Toolbar =====&lt;br /&gt;
(Moving, Rotating and Flipping an Image)&lt;br /&gt;
To the right of the Graphic Field, under the {{ide|Resource Editor#Image Screen|Image Screen}}, you can see the Image Move toolbar:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_I06.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Image Move toolbar&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
By clicking the appropriate button you can move, rotate or flip the current image.&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Button&lt;br /&gt;
! Button Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I064.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Shift&amp;lt;br /&amp;gt; Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Moves the image one column to the left. The left edge column crosses the left borderline of the Graphic Field and returns to the Graphic Field as the right edge column&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I063.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Shift&amp;lt;br /&amp;gt; Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Moves the image one pixel column to the right. The right edge column crosses the right borderline of the Graphic Field and returns to the Graphic Field as the left edge column&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I061.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Shift&amp;lt;br /&amp;gt; Up&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Moves the image one pixel row up. The top row crosses the upper borderline of the Graphic Field and returns to the Graphic Field as the bottom row&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I062.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Shift&amp;lt;br /&amp;gt; Down&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Moves the image one pixel row down. The bottom row crosses the bottom borderline of the Graphic Field and returns to the Graphic Field as the top row&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I066.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Rotate&amp;lt;br /&amp;gt; Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Rotates the image 90 degrees counter-clockwise around its center&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I065.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Rotate&amp;lt;br /&amp;gt; Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Rotates the image 90 degrees clockwise around its center&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I068.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Flip&amp;lt;br /&amp;gt; Horizontal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Flips the image around the vertical axis&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I067.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Flip&amp;lt;br /&amp;gt; Vertical&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Flips the image around the horizontal axis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notice that the &amp;#039;&amp;#039;&amp;#039;Resource | Move&amp;#039;&amp;#039;&amp;#039; menu contains the same commands as the &amp;#039;&amp;#039;&amp;#039;Image Move&amp;#039;&amp;#039;&amp;#039; toolbar.&lt;br /&gt;
&lt;br /&gt;
===== Color Palette =====&lt;br /&gt;
&lt;br /&gt;
At the top of the Graphics Editor window you can see the Color Palette.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ColorPalette.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Color Palette&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The Color Palette lets you choose colors for the drawing operations:&lt;br /&gt;
&lt;br /&gt;
* {{ide|Resource Editor#Setting the Draw and Edit Colors|Setting the Draw and Edit Colors}}&lt;br /&gt;
* {{ide|Resource Editor#Setting the Background Colors|Setting the Background Color}}&lt;br /&gt;
* {{ide|Resource Editor#Setting the Inverse (to Background) Color|Setting the Inverse (to Background) Color}}&lt;br /&gt;
&lt;br /&gt;
===== Color Modes Toolbar =====&lt;br /&gt;
&lt;br /&gt;
Under the {{ide|Resource Editor#Image Screen|Image Screen}} you can see the Color Modes tool box:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_I10.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The Color Modes toolbar&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Color Modes tool box is used to set:&lt;br /&gt;
&lt;br /&gt;
* {{ide|Resource Editor#Setting the Draw and Edit Colors|Draw and Edit colors}}&lt;br /&gt;
* {{ide|Resource Editor#Setting the Background Colors|Background Color}}&lt;br /&gt;
* {{ide|Resource Editor#Setting the Inverse (to Background) Color|Inverse (to Background) Color}}&lt;br /&gt;
&lt;br /&gt;
===== Draw and Edit Toolbar =====&lt;br /&gt;
(Using Draw and Edit Tools)&lt;br /&gt;
To the left of the Graphic Field of the Graphics Editor window you can see the Draw and Edit Toolbar. It contains the main tools for drawing and editing:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_DrawEditToolbox.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The Draw and Edit toolbar&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor provides a number of tools to make creating your image easy. The tools can be activated either from the &amp;#039;&amp;#039;&amp;#039;Resource | Tools&amp;#039;&amp;#039;&amp;#039; menu or from the Draw and Edit toolbar.&lt;br /&gt;
&lt;br /&gt;
===== Draw and Edit Tools =====&lt;br /&gt;
&lt;br /&gt;
By clicking any of the buttons in the Draw and Edit toolbar you can select the required draw or edit tool. Here are short descriptions of them:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Button&lt;br /&gt;
! Button Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I15.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Pen&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The Pen tool can be used to color an individual pixel on the Graphic Field or to make a free-hand drawing.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I16.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Brush&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The Brush tool works the same as Pen tool, except that the Brush tool leaves a larger mark than the Pen. The style of the Brush can be changed by selecting among the &amp;#039;&amp;#039;&amp;#039;Small&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Big&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Star&amp;#039;&amp;#039;&amp;#039; in the &amp;#039;&amp;#039;&amp;#039;Brush Style&amp;#039;&amp;#039;&amp;#039; list button (in the right bottom corner of the Graphics Editor window).&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I18.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Eraser&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| To erase a fragment of the image (the same as painting it with the Screen Color), you can use the Eraser Tool in the toolbar.&amp;lt;br /&amp;gt;The size of the Eraser can be changed by selecting among the &amp;#039;&amp;#039;&amp;#039;Small&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Big&amp;#039;&amp;#039;&amp;#039; in the &amp;#039;&amp;#039;&amp;#039;Eraser Style&amp;#039;&amp;#039;&amp;#039; list button (in the right bottom corner of the Graphics Editor window)&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I20.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Color Eraser&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The Erase Color tool will erase cells of the selected color without changing other colors.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I21.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Fill Contour&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The fastest way to color an area, which has an enclosed boundary, is to use the Fill Contour tool. Move the cursor into the area to be colored and click the mouse button. The interior of the bounded region will be colored.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I26.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Mirror&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| To create symmetrical images use the Mirror tool. The Mirror tool sets the points that are the reflections of the cursor trail point relative to the different axes of symmetry. To choose the appropriate axes of symmetry for the Mirror tool select the &amp;#039;&amp;#039;&amp;#039;Resource &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; {{ide|Resource Editor#Mirror Style Dialog|Set Mirror Style}}&amp;#039;&amp;#039;&amp;#039; menu command in the Task window menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I22.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Line&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Selecting this button enables you to draw a line between any two points in the image.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I23.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Draw Rectangle&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Click this button if you need a rectangle. Size the Rectangle by drawing it out with the left button held down, then release.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I24.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Draw Ellipse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Choose this tool if you need to draw a circle or an ellipse. Size the circle or ellipse by drawing it out with the left button held down, then release.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I25.png]]&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Enter Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Click this button to insert some text in your image. Move the cursor to the position on the Graphic Field where you want to start the text and click the mouse button. You will see a text cursor, which shows you the height of the letters and digits, and the starting point for the current line of text.&amp;lt;br /&amp;gt;When you type some text, it will be drawn in the currently selected color, with the currently selected font.&amp;lt;br /&amp;gt;To select the desired font settings press &amp;#039;&amp;#039;&amp;#039;Ctrl+F&amp;#039;&amp;#039;&amp;#039;.&amp;lt;br /&amp;gt;While the text is still selected, it is possible to move the starting point clicking in the new position.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I28.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Mark Area&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|To mark a rectangular fragment of the image on the Graphic Field to be cut, copied or moved, click the &amp;#039;&amp;#039;&amp;#039;Mark Area&amp;#039;&amp;#039;&amp;#039; tool. Then move the cursor to the Graphic Field cell, which you want to be one corner of a marked rectangular area, and press and hold the mouse button. Release the mouse when the rectangle is of the appropriate size and you will see a sub-region of the image marked accordingly.&amp;lt;br /&amp;gt;You can move the marked region to another part of the Graphic Field by means of &amp;quot;drag and drop&amp;quot;. Move the cursor into the marked region and press and hold the mouse button. Then, keeping the mouse button depressed, drag the marked fragment to the place of your choice and release the mouse button. Now the marked region is fixed in its new place.&amp;lt;br /&amp;gt;If you want to copy the marked region to another place, do as described under move, but hold down the &amp;#039;&amp;#039;&amp;#039;Ctrl&amp;#039;&amp;#039;&amp;#039; key, while pressing the mouse button in the marked region.&amp;lt;br /&amp;gt;When a region is marked:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Edit|Cut&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Edit|Copy&amp;#039;&amp;#039;&amp;#039; (from the main menu, or the main IDE toolbar &amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039; buttons, or the standard accelerator keys &amp;#039;&amp;#039;&amp;#039;Ctrl+X&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Ctrl+C&amp;#039;&amp;#039;&amp;#039;)can be used to place it to the clipboard;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Edit|Paste&amp;#039;&amp;#039;&amp;#039; (or the &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039; toolbar button or accelerator &amp;#039;&amp;#039;&amp;#039;Ctrl+V&amp;#039;&amp;#039;&amp;#039;)can be used to scale a image from the clipboard into the region.&lt;br /&gt;
* The &amp;#039;&amp;#039;&amp;#039;Paste&amp;amp;Scale&amp;#039;&amp;#039;&amp;#039; tool can be used.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; When you use &amp;#039;&amp;#039;&amp;#039;Edit|Paste&amp;#039;&amp;#039;&amp;#039; , the image fragment will appear in the left top corner of Graphic Field. The region may be moved to another place by the mouse.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I29.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Paste &amp;amp; Scale in Rectangle&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| When an image has been copied to the clipboard, this image can be pasted back into another marked area by pressing this button. This button will stay disabled until there are both an image on the clipboard, and a region has been selected.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I30.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Clear Graphic Field&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| To clear the Graphic Field, click the Clear button. The white color is used for bitmaps and transparent color is used for icons and cursors.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I31.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Change a Selected Color&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| With this button you can change all pixels that have a given color into another color. The two colors should first be set for the &amp;#039;&amp;#039;&amp;#039;Color&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Alt-Color&amp;#039;&amp;#039;&amp;#039; selections.&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; Any pixels, which were colored in background color or in &amp;quot;inverse&amp;quot; color by &amp;#039;&amp;#039;&amp;#039;Inverse&amp;#039;&amp;#039;&amp;#039; tool, will keep their original colors.&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Ide_I32.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Inverse Colors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This button can be used to invert all colors on the image. In this case, any pixels, which were colored in background color or in inverse to background color, will retain their existing colors.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I33.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Grid&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This button can be used to turn on and off a grid in the Graphic Field&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Mirror Style Dialog ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Mirror Style&amp;#039;&amp;#039;&amp;#039; dialog is activated by the &amp;#039;&amp;#039;&amp;#039;Resource | Set Mirror Style&amp;#039;&amp;#039;&amp;#039; menu command in the Task window menu:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_MirrorStyle.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The Mirror Style dialog&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Mirror Style&amp;#039;&amp;#039;&amp;#039; dialog is used to choose the appropriate axes of symmetry for the &amp;#039;&amp;#039;&amp;#039;Mirror&amp;#039;&amp;#039;&amp;#039; tool.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Mirror&amp;#039;&amp;#039;&amp;#039; tool [[Image:Ide_I26.png]] sets the points that are the reflections of the &amp;#039;&amp;#039;&amp;#039;cursor &amp;#039;&amp;#039;trail&amp;#039;&amp;#039; point&amp;#039;&amp;#039;&amp;#039; relative to the different axes of symmetry.&lt;br /&gt;
&lt;br /&gt;
When you place the mouse cursor onto some point inside an edited image and click the left mouse button, then we say that you set the &amp;#039;&amp;#039;&amp;#039;cursor &amp;#039;&amp;#039;trail&amp;#039;&amp;#039; point&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Using the &amp;#039;&amp;#039;&amp;#039;Mirror&amp;#039;&amp;#039;&amp;#039; tool, you can (by one click) set up to 8 reflections of the specified cursor &amp;#039;&amp;#039;trail&amp;#039;&amp;#039; point. A reflection point will be painted to each checked ON type of reflections. They are:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Main -&amp;gt; Trial&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the clicked &amp;#039;&amp;#039;&amp;#039;cursor &amp;#039;&amp;#039;trail&amp;#039;&amp;#039; point&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Main -&amp;gt; Reverse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point opposite to the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reflect -&amp;gt; Horizontal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is the horizontal reflection of the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reflect -&amp;gt; Vertical&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is the vertical reflection of the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Orthogonal -&amp;gt; Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is 90 degrees left rotation of the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Orthogonal -&amp;gt; Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is 90 degrees right rotation of the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reflect Diagonal -&amp;gt; Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is the reflection of the clicked cursor trail point relative to the diagonal line drawn from the &amp;#039;&amp;#039;&amp;#039;left&amp;#039;&amp;#039;&amp;#039; upper corner to the right lower corner of the image.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reflect Diagonal -&amp;gt; Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is the reflection of the clicked cursor trail point relative to the diagonal line drawn from the &amp;#039;&amp;#039;&amp;#039;right&amp;#039;&amp;#039;&amp;#039; upper corner to the left lower corner of the image.&lt;br /&gt;
&lt;br /&gt;
=== Using Tools and Colors ===&lt;br /&gt;
&lt;br /&gt;
==== Setting Colors ====&lt;br /&gt;
&lt;br /&gt;
===== Setting the Draw and Edit Colors =====&lt;br /&gt;
&lt;br /&gt;
To choose colors for the drawing and editing tools you can select one of the following four switches.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_Mode_DrawColor.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The Color Modes toolbar with selected &amp;quot;color&amp;quot; mode&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The color of selection will be used for the drawing. It is possible to choose a new color for the active selection by a click in the {{ide|Resource Editor#Color Palette|Color Palette}}.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;color&amp;#039;&amp;#039;&amp;#039; and the &amp;#039;&amp;#039;&amp;#039;alt-color&amp;#039;&amp;#039;&amp;#039; can be used in all drawing operations, the &amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039; (or transparent) and &amp;#039;&amp;#039;&amp;#039;inverse&amp;#039;&amp;#039;&amp;#039; selections have different purposes depending on the image type.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
There are 16 color fields on the {{ide|Resource Editor#Color Palette|Color Palette}}, and all of them are available for drawing and editing in the {{ide|Resource Editor#Graphic Field|Graphic Field}}.&lt;br /&gt;
&lt;br /&gt;
===== Setting the Background Color =====&lt;br /&gt;
&lt;br /&gt;
To see how your image looks on the different background colors or to color the image fragments in &amp;quot;transparent&amp;quot; (to let the background color show through) use the &amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039; color selection.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_Mode_BackgroundColor.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The &amp;quot;screen&amp;quot; mode should be used for Background color&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To change the background color, be sure that the &amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039; switch is selected, then you can choose the background color by clicking in the {{ide|Resource Editor#Color Palette|Color Palette}}. The background color on the {{ide|Resource Editor#Image Screen|Image Screen}}, any details of the image, which were colored in (transparent) background color, and the &amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039; indicator of &amp;#039;&amp;#039;&amp;#039;Color Modes&amp;#039;&amp;#039;&amp;#039; toolbar, all will change to the new color.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Usage of the &amp;quot;screen&amp;quot; Colors for Bitmaps, Cursors and Icons&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Image&lt;br /&gt;
! Screen Colors&lt;br /&gt;
|-&lt;br /&gt;
! Bitmaps&lt;br /&gt;
| Used to set the color of the surrounding area&lt;br /&gt;
|-&lt;br /&gt;
! Cursors and Icons&lt;br /&gt;
| Used to specify transparent pixels and to set the color of the surrounding area&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Setting the Inverse (to Background) Color =====&lt;br /&gt;
&lt;br /&gt;
Using the inverse color is a convenient way to mark the boundary of the image or to color the details, which should be always be in contrast to any background color.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_Mode_InverseBackground.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The &amp;quot;inverse&amp;quot; mode should be used for Inverse color&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Usage of the Inverse color for Bitmaps, Cursors and Icons&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Image&lt;br /&gt;
! Inverse Color&lt;br /&gt;
|-&lt;br /&gt;
! Bitmaps&lt;br /&gt;
| Cannot be used&lt;br /&gt;
|-&lt;br /&gt;
! Cursors and Icons&lt;br /&gt;
| Used to specify pixels that should get a color inverse of the actual background&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Understanding Colors ====&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Colors for Bitmaps&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Visual Prolog Graphics Editor can create bitmaps with either 2 or 16 colors. A pixel in a bitmap can not have the inverse and screen colors.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Colors for Cursors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Any pixel in a cursor can have one of four color control values:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Cursor&lt;br /&gt;
! Color Effect&lt;br /&gt;
|-&lt;br /&gt;
! Black&lt;br /&gt;
| Pixels will be black&lt;br /&gt;
|-&lt;br /&gt;
! White&lt;br /&gt;
| Pixels will be white&lt;br /&gt;
|-&lt;br /&gt;
! Inverse&lt;br /&gt;
| Pixels will be converted to the inverse of the original color&lt;br /&gt;
|-&lt;br /&gt;
! Screen&lt;br /&gt;
| Pixels will be transparent, they will just keep their old color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To understand how this works, you should create a little cursor having four areas, with these four color control values. Then select the &amp;#039;&amp;#039;&amp;#039;Resources | Tools | Test Cursor&amp;#039;&amp;#039;&amp;#039;, and study how the cursor looks.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_TestCursorColors.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;In this test cursor the left upper quoter of the cursor is painted with the &amp;quot;color&amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;and the left bottom quarter is painted with the &amp;quot;inverse&amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Place the cursor over the Grid and you will see effects of &amp;quot;inverse&amp;quot; color.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Colors for Icons&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Icons can either have 2 or 16 colors, and in addition to those, the pixels can also use the {{ide|Resource Editor#Setting the Background Color|&amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039;}} and &lt;br /&gt;
{{ide|Resource Editor#Setting the Inverse (to Background) Color|&amp;#039;&amp;#039;&amp;#039;colors&amp;#039;&amp;#039;&amp;#039;}}.&lt;br /&gt;
&lt;br /&gt;
==== Cursor Handling Tools ====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setting Cursor Hot Spots&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
When working with a cursor, the menu command Resource | Set Cursor Hotspot activates a dialog box:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_CursorHotSpot.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;Defining the Hotspot for a cursor&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as this dialog is open you can point to the pixel, which is to be the cursor Hotspot. This pixel in the cursor will determine the screen pixel which will be acted upon and which will be reported during a mouse action.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Testing a Cursor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
When working with a cursor, the &amp;#039;&amp;#039;&amp;#039;Resource | Tools | Test Cursor&amp;#039;&amp;#039;&amp;#039; menu item allows you to see what your newly designed cursor will look like.&lt;br /&gt;
&lt;br /&gt;
==== Undo / Redo Buffer ====&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor supports &amp;#039;&amp;#039;&amp;#039;Edit|Undo&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Edit|Redo&amp;#039;&amp;#039;&amp;#039; operations, just as the other editors do.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor&amp;diff=3580</id>
		<title>Ide/Resource Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor&amp;diff=3580"/>
		<updated>2013-04-26T13:27:32Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|Resource Editor}}&lt;br /&gt;
&lt;br /&gt;
The term &amp;#039;&amp;#039;resource&amp;#039;&amp;#039; is applied to the things like dialogs, forms, icons, cursors, pens, brushes, etc. Resources can be created by one of the IDE resource editors, or just added to a project. The correspondent resource files are referenced from a project file.&lt;br /&gt;
&lt;br /&gt;
During project building IDE generates binary &amp;#039;&amp;#039;&amp;#039;ProjectName.res&amp;#039;&amp;#039;&amp;#039; file which is provided to a linker. IDE also generates &amp;lt;vp&amp;gt;resourceIdentifiers.i&amp;lt;/vp&amp;gt; file which specifies numeric constants for resource identifiers. Resource identifierd can be refered from sources codes to provide the proper resource handling. The names and values for resource identifiers can be set or changed with the help of IDE resource editors.&lt;br /&gt;
&lt;br /&gt;
== GUI and VPI Style Resources ==&lt;br /&gt;
&lt;br /&gt;
Historically windowing programs - that is, programs with the graphical user interface - were developed in Visual Prolog using the VPI (Visual Programming Interface) package supplied as one of packages in Prolog Foundation Classes (PFC).&lt;br /&gt;
&lt;br /&gt;
The Visual Programming Interface (VPI) is a high-level Application Programming Interface (API) and it is designed to make it easy for Prolog applications to provide sophisticated user interfaces utilizing the graphical capabilities of today&amp;#039;s operating systems and display hardware. The resources and tools needed by such applications - windows, menus, dialogs, controls, pens, brushes, cursors, carets, pictures, etc. all appear as simple Prolog structures.&lt;br /&gt;
&lt;br /&gt;
However, the VPI layer (PFC\vpi) provides an old style of handling the graphical user interface. This was the reason why the PDC has developed the modern GUI package (pfc\gui), which provides really object-oriented implementation of API handling of the main windowing system features. The GUI package presents the object-oriented windows, dialogs, forms, controls, etc., handling. This package is built on top of the VPI package and delivers a new level of abstraction and ease of use while retaining compatibility with VPI programs since both the GUI and VPI programming styles can be applied in the same program.&lt;br /&gt;
&lt;br /&gt;
Currently for new GUI applications the IDE generates the default program code which use the GUI package features (but it still possible to edit old VPI style dialogs, etc.).&lt;br /&gt;
&lt;br /&gt;
Notice that in VPI style programs, except for &amp;#039;&amp;#039;VPI style dialogs&amp;#039;&amp;#039; and &amp;#039;&amp;#039;VPI style windows&amp;#039;&amp;#039; you can also create &amp;#039;&amp;#039;GUI style forms&amp;#039;&amp;#039;, which, of course, are handled by GUI package predicates. From the other side, since each GUI program includes the VPI package, so some VPI features can be embedded into GUI style programs.&lt;br /&gt;
&lt;br /&gt;
To understand difference of GUI and VPI style programs and difference of GUI and VPI style dialogs, windows, forms, controls, etc., we recommend to read carefully VPI and GUI programming tutorials on WEB.&lt;br /&gt;
&lt;br /&gt;
== IDE Designer ==&lt;br /&gt;
&lt;br /&gt;
Editing of dialogs, windows, form, and IDE Controls on the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039; are very closely related. The only real difference is that definitions of the VPI package dialogs are (normally) put into resource files, whereas GUI package dialogs, windows, and forms are always created dynamically by code.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Dialog ===&lt;br /&gt;
----&lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Dialog}}&lt;br /&gt;
&lt;br /&gt;
=== Editing a Dialog ===&lt;br /&gt;
----&lt;br /&gt;
{{:ide/Resource Editor/Editing a Dialog}}&lt;br /&gt;
&lt;br /&gt;
=== Creating and Editing a Window ===&lt;br /&gt;
----&lt;br /&gt;
The IDE does not support the creation or editing of the old-style VPI windows. You should use &lt;br /&gt;
{{ide|Resource Editor#Creating and Editing a Form|&amp;#039;&amp;#039;&amp;#039;Forms&amp;#039;&amp;#039;&amp;#039;}} instead of windows (see description of forms in the GUI package overview in the PFC part of Help for more details).&lt;br /&gt;
&lt;br /&gt;
However, the IDE automatically creates for GUI applications the special resource file &amp;#039;&amp;#039;&amp;#039;TaskWindow.win&amp;#039;&amp;#039;&amp;#039; which is placed if the TaskWindow sub-directory of the project root directory. This resource file can be later changed by the IDE resource editor.&lt;br /&gt;
&lt;br /&gt;
=== Creating and Editing a Form ===&lt;br /&gt;
---- &lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Form}}&lt;br /&gt;
&lt;br /&gt;
== Toolbar Editor ==&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Toolbar&amp;#039;&amp;#039;&amp;#039; editor allows you interactively create various kinds of toolbars.&lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Toolbar}}&lt;br /&gt;
&lt;br /&gt;
=== Editing a Toolbar ===&lt;br /&gt;
&lt;br /&gt;
{{:ide/Resource Editor/Editing a Toolbar}}&lt;br /&gt;
&lt;br /&gt;
== Menu Editor ==&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; can be used to create both pull-down menus (for windows), and pop-up menus (useful for object oriented user interfaces).&lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Menu}}&lt;br /&gt;
&lt;br /&gt;
==== Editing a Menu ====&lt;br /&gt;
&lt;br /&gt;
To edit a menu, double-click (or press &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039;) the name of a file with a menu description in the project tree in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window. For example &amp;#039;&amp;#039;&amp;#039;TaskMenu.mnu&amp;#039;&amp;#039;&amp;#039;. The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; dialog appears and you can create (or modify) whatever kind of a menu you wish.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_MenuTask.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; dialog allows you to modify or delete existing menu items or add new ones. The main pane in this dialog contains the tree of menu items of the edited (it is &amp;#039;&amp;#039;&amp;#039;TaskMenu&amp;#039;&amp;#039;&amp;#039; in the picture) menu.&lt;br /&gt;
&lt;br /&gt;
By pressing the &amp;#039;&amp;#039;&amp;#039;New&amp;#039;&amp;#039;&amp;#039; toolbar buttons it is possible to create new menu items and sub-items. You can use: [[Image:Ide_MenuEdit_First.png]] - the &amp;#039;&amp;#039;&amp;#039;New First Item&amp;#039;&amp;#039;&amp;#039;, [[Image:Ide_MenuEdit_New.png]] - the next &amp;#039;&amp;#039;&amp;#039;New Item&amp;#039;&amp;#039;&amp;#039; , and [[Image:Ide_MenuEdit_Subitem.png]] - the menu &amp;#039;&amp;#039;&amp;#039;New SubItem&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Menu items can optionally be grouped by inserting separators. To insert a separator just click the &amp;#039;&amp;#039;&amp;#039;New Separator&amp;#039;&amp;#039;&amp;#039; toolbar button [[Image:Ide_MenuEdit_Separator.png]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039; operations for selected menu items (with all their submenu items) can be executed with &amp;#039;&amp;#039;&amp;#039;Ctrl+X&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Ctrl+C&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Ctrl+V&amp;#039;&amp;#039;&amp;#039; keyboard accelerators.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; can create nested menus of any level. To enter/create a submenu for the selected menu item click the &amp;#039;&amp;#039;&amp;#039;Submenu&amp;#039;&amp;#039;&amp;#039; button [[Image:Ide_MenuEdit_Subitem.png]].&lt;br /&gt;
&lt;br /&gt;
By pressing the &amp;#039;&amp;#039;&amp;#039;Test&amp;#039;&amp;#039;&amp;#039; toolbar button [[Image:Ide_MenuEdit_Test.png]] you activate the test mode in which the edited menu will be displayed instead of the main IDE menu. You can open it submenus, etc. To exit the test mode, you can click somewhere in the IDE window out of the tested menu.&lt;br /&gt;
&lt;br /&gt;
===== Customizing Menu Item Attributes =====&lt;br /&gt;
&lt;br /&gt;
In the bottom of the menu editor dialog you see the big pane (the &amp;#039;&amp;#039;&amp;#039;Menu Tree&amp;#039;&amp;#039;&amp;#039; pane) in which you can see the edited menu tree. Menu items prefixed with the plus [[Image:Ide_Plus_Icon.png]] icon have submenus. Click the plus [[Image:Ide_Plus_Icon.png]] icon or press the right arrow on the keypad to expand one level of such submenu. Notice that the plus [[Image:Ide_Plus_Icon.png]] icon before expanded menu items is changed for the minus [[Image:Ide_Minus_Icon.png]] icon.&lt;br /&gt;
&lt;br /&gt;
When you select any menu item in the menu tree, the menu editor controls display attributes of this menu item. For each menu item the programmer can specify the following attributes:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Item Title&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Select a menu item in the &amp;#039;&amp;#039;&amp;#039;Menu Tree&amp;#039;&amp;#039;&amp;#039; pane and click the menu item title. The menu item title becomes surrounded by the frame like:&lt;br /&gt;
*:[[Image:Ide_MenuEdit_Title.png]]&lt;br /&gt;
*:Here you can specify/edit the menu item title (name).&lt;br /&gt;
*:* The menu item title may contain up to 255 characters. It may include the &amp;#039;&amp;#039;&amp;#039;\t&amp;#039;&amp;#039;&amp;#039; (tab) escape sequence.&lt;br /&gt;
*:* In the menu item title the ampersand symbol &amp;#039;&amp;#039;&amp;#039;&amp;amp;&amp;#039;&amp;#039;&amp;#039; can be used for indicating that the following character is to be underlined. For example, if you type in the string &amp;#039;&amp;#039;&amp;#039;&amp;amp;Contents&amp;#039;&amp;#039;&amp;#039;, then at runtime this menu item will be displayed as &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039;ontents&amp;#039;&amp;#039;&amp;#039;. I.e. the character &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt; will be displayed underlined (thus visually indicating that the &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt; is an accelerator key). The underlined character should be unique on each level of a menu. If you need to display the &amp;#039;&amp;#039;&amp;#039;&amp;amp;&amp;#039;&amp;#039;&amp;#039; character, use two &amp;#039;&amp;#039;&amp;#039;&amp;amp;&amp;amp;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Item Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The &amp;#039;&amp;#039;&amp;#039;Item Constant&amp;#039;&amp;#039;&amp;#039; input box is where you can select or type in the symbolic (or integer) constant that will be used as the menu item identifier. It can be typed-in directly from the keyboard or selected from the list of available constants (by clicking the [[Image:Ide_ListButton_Button.png]] button). It must be either a legal symbolic constant (for example, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;id_help_contents&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;) or an integer value.&lt;br /&gt;
*:&amp;lt;br /&amp;gt;If you enter a symbolic constant name, then the IDE automatically places this symbolic constant into the &amp;#039;&amp;#039;&amp;#039;resourceidentifiers.i&amp;#039;&amp;#039;&amp;#039; file and generates an appropriate integer value for it. The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; automatically generates the default symbolic constant name (for example, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;id_file_exit&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;) from the &amp;#039;&amp;#039;&amp;#039;Constant Prefix&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;id_file&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; and names of menu items (&amp;#039;&amp;#039;&amp;#039;Exit&amp;#039;&amp;#039;&amp;#039; on the picture).&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Constant Prefix&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The &amp;#039;&amp;#039;&amp;#039;Constant Prefix&amp;#039;&amp;#039;&amp;#039; edit control is where you can input a common prefix for all &amp;#039;&amp;#039;item constants&amp;#039;&amp;#039; of menu items on the current level of submenu.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Checked&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Set the initial state of the menu item to Checked.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Disabled&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Specifies that initially the menu item will be Disabled.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Accelerator&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:In the &amp;#039;&amp;#039;&amp;#039;Accelerator&amp;#039;&amp;#039;&amp;#039; group box you can set an accelerator key (hot key), which will be used to activate this menu item. The accelerator key can be defined as a combination of a basic accelerator key and of the &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Ctrl&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Alt&amp;#039;&amp;#039;&amp;#039; keys. The basic accelerator key can be typed in or chosen from the list in the list edit control. To specify the desired &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Ctrl&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Alt&amp;#039;&amp;#039;&amp;#039; keys check on the corresponding check box. To assign more than one accelerator key to a menu item, use the &amp;lt;vp&amp;gt;vpi::setAccelerators/1&amp;lt;/vp&amp;gt; predicate.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Help Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:In this list button control you can select one of constants of the existing first-level menu items. The &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; (system handling) menu item (in MDI mode) will be placed just before the first-level menu item with this constant.&lt;br /&gt;
*:&amp;lt;br /&amp;gt;Notice that this possibility can be used only for MDI applications. (It is ignored for non-MDI applications since they do not have the &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; (system handling) menu item.&lt;br /&gt;
&lt;br /&gt;
===== Editing the Window Submenu =====&lt;br /&gt;
&lt;br /&gt;
In MDI applications Windows automatically add the &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; first-level menu item, which, by default, is placed after (the most right) all other user-created first-level menu items in each application menu. By default, it contains the &amp;#039;&amp;#039;&amp;#039;Tile&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Cascade&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Arrange Icons&amp;#039;&amp;#039;&amp;#039; menu commands and in the bottom of this menu are listed titles of all opened MDI document windows.&lt;br /&gt;
&lt;br /&gt;
To customize items of the &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; submenu, the programmer should create a new menu with the Item Constant equal to &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;mdiwindow_menu&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;. This menu should include only one level of menu items. Notice that since this user-designed submenu will be used instead of the default system &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; submenu, so handling of ALL its menu commands should be explicitly programmed. For instance, handling of the &amp;#039;&amp;#039;&amp;#039;Tile&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Cascade&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Arrange Icons&amp;#039;&amp;#039;&amp;#039; menu commands should be programmed if they are included into the designed menu.&lt;br /&gt;
&lt;br /&gt;
== Graphics Editor ==&lt;br /&gt;
&lt;br /&gt;
=== About the Graphics Editor ===&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor is a convenient tool for creating, viewing and editing icons, cursors and small bitmaps. The images can be passed to the Windows Clipboard or saved in files.&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor allows you to create and edit images ranging in size from 4x4 pixels to 64x64 pixels, by using either a 16-color palette or monochrome shadow palette.&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor is invoked from the Project window for Icons, Cursors and Bitmaps. However, when you register large bitmaps in your project, Visual Prolog will call to edit the bitmap an external editor associated in Windows for editing files with .BMP extension.&lt;br /&gt;
&lt;br /&gt;
After the Graphics Editor is started, the Graphics Editor window will appear on the screen.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ProjectIcon.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Graphics editor window&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
When you create a new image in a project, you need to specify the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; of the image, the Constant (resource ID) which will be identify the image in the project, the name of the &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039;, in which the image will be saved, its size, and how many colors it will have.&lt;br /&gt;
&lt;br /&gt;
=== Graphics Editor Menus ===&lt;br /&gt;
&lt;br /&gt;
When the Graphics Editor window is active, the Integrated Development Environment&amp;#039;s menu bar displays the Graphics Editor sub-menus of the &amp;#039;&amp;#039;&amp;#039;Resource&amp;#039;&amp;#039;&amp;#039; menu and looks as follows:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_Menu.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Visual Prolog menu bar when the Graphics Editor is active&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
Note that there are 2 menu items: &amp;#039;&amp;#039;&amp;#039;Set Mirror Style&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Set Cursor Hotspot&amp;#039;&amp;#039;&amp;#039; and 2 sub-menus: &amp;#039;&amp;#039;&amp;#039;Tools&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Move&amp;#039;&amp;#039;&amp;#039;. Also some menu items under the &amp;#039;&amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&amp;#039; menu (like the &amp;#039;&amp;#039;&amp;#039;Undo&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Redo&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039;) are specially tailored for the Graphics Editor, and the &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; menu operations refer now to the image files.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Image ===&lt;br /&gt;
&lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Image}}&lt;br /&gt;
&lt;br /&gt;
=== Editing Image Attributes ===&lt;br /&gt;
&lt;br /&gt;
You can always wake up (with the &amp;#039;&amp;#039;&amp;#039;Resource | Attribute&amp;#039;&amp;#039;&amp;#039; task menu item or with the &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; item from pop up menu) the &amp;#039;&amp;#039;&amp;#039;Bitmap/Cursor/Icon Attributes&amp;#039;&amp;#039;&amp;#039; dialog for the created bitmap, cursor or icon to view and change some image attributes.&lt;br /&gt;
&lt;br /&gt;
Notice that the appeared &amp;#039;&amp;#039;&amp;#039;Bitmap Attributes&amp;#039;&amp;#039;&amp;#039; dialog for an existing bitmap will display less bitmap attributes then it has for created bitmaps:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ExistingBitmapAttributes.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Bitmap Attributes dialog for an existing bitmap&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
You see that for existing bitmap the dialog does not contain the &amp;#039;&amp;#039;&amp;#039;Width&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Height&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Color&amp;#039;&amp;#039;&amp;#039; attributes.&lt;br /&gt;
&lt;br /&gt;
The only image attribute that you can edit is the &amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039;.:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039; list edit the programmer can change the default resource constant for the image (at the picture it is &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idb_mybitmap&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
{{:ide/Resource Editor/Graphics Editor}}&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Editing_a_Dialog&amp;diff=3579</id>
		<title>Ide/Resource Editor/Editing a Dialog</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Editing_a_Dialog&amp;diff=3579"/>
		<updated>2013-04-26T12:35:54Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To edit a dialog, in the project tree (in the Project window) double click (or press &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039;) the name of a file with a dialog description (the &amp;#039;&amp;#039;&amp;#039;.dlg&amp;#039;&amp;#039;&amp;#039; filename extension). The &lt;br /&gt;
{{ide|Resource Editor#IDE Designer|&amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;}} appears and you can edit whatever form of a dialog you wish.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_MyDialog_Editor.png|center]]&lt;br /&gt;
&lt;br /&gt;
The IDE Designer After Creation of a New Dialog&lt;br /&gt;
&lt;br /&gt;
When a new dialog is created, it will by default have three push button controls: &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Help&amp;#039;&amp;#039;&amp;#039;. These can freely be rearranged or deleted.&lt;br /&gt;
&lt;br /&gt;
==== Controls ====&lt;br /&gt;
&lt;br /&gt;
Each control in a dialog must have an identifying name (constant in VPI style dialogs), which is unique within that dialog. While two controls within one dialog may not have the same name (or constant value), it is actually a good idea if controls in different dialogs, which perform the same action have the same names (or constants).&lt;br /&gt;
&lt;br /&gt;
===== Types of Controls =====&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PushButton.png]]&lt;br /&gt;
| A &amp;#039;&amp;#039;&amp;#039;Push Button&amp;#039;&amp;#039;&amp;#039; control serves to initiate a specialized action in an application.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_CheckBox.png]]&lt;br /&gt;
| A &amp;#039;&amp;#039;&amp;#039;Check Box&amp;#039;&amp;#039;&amp;#039; control lets you indicate a choice among two alternatives. For example some facility may be switched ON or switched OFF.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_RadioButton.png]]&lt;br /&gt;
| A group of &amp;#039;&amp;#039;&amp;#039;Radio Button&amp;#039;&amp;#039;&amp;#039; controls serves to indicate one choice from among a list of alternatives.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_StaticText.png]]&lt;br /&gt;
| A &amp;#039;&amp;#039;&amp;#039;Static Text&amp;#039;&amp;#039;&amp;#039; control reserves an area for the text in the dialog. Although called static, in fact the application can change the text during execution. This is often used for prompts or field names relating to other controls.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_EditControl.png]]&lt;br /&gt;
| An &amp;#039;&amp;#039;&amp;#039;Edit Control&amp;#039;&amp;#039;&amp;#039; reserves an area for text editing (e.g. names, numbers, text constants etc.). Editing text strings with multiple lines is possible.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_ListBox.png]]&lt;br /&gt;
| A &amp;#039;&amp;#039;&amp;#039;List Box&amp;#039;&amp;#039;&amp;#039; allows you to view a list of elements and to select one - or several - elements from this list.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_ListButton.png]]&lt;br /&gt;
| A &amp;#039;&amp;#039;&amp;#039;List Button&amp;#039;&amp;#039;&amp;#039; control serves for choosing one from the pop-out set of the alternatives revealed by pressing the button. Pressing the button again pops the list back in again.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_ListEdit.png]]&lt;br /&gt;
| A &amp;#039;&amp;#039;&amp;#039;List Edit&amp;#039;&amp;#039;&amp;#039; control allows single line text editing like an &amp;#039;&amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&amp;#039; control, or selection from a list of elements.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_VerticalScrollBar.png]]  [[Image:Ide_HorizontalScrollBar.png]]&lt;br /&gt;
| The &amp;#039;&amp;#039;&amp;#039;Vertical Scroll Bar&amp;#039;&amp;#039;&amp;#039; and the &amp;#039;&amp;#039;&amp;#039;Horizontal Scroll Bar&amp;#039;&amp;#039;&amp;#039; controls serve to select a value within a scale of values.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_GroupBox.png]]&lt;br /&gt;
| A &amp;#039;&amp;#039;&amp;#039;Group Box&amp;#039;&amp;#039;&amp;#039; control serves for assembling together a number of controls in a functional group with a Group Name. Its only function is a visual one.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Icon.png]]&lt;br /&gt;
| An &amp;#039;&amp;#039;&amp;#039;Icon&amp;#039;&amp;#039;&amp;#039; control reserves an area for an icon image.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_CustomControl.png]]&lt;br /&gt;
| A &amp;#039;&amp;#039;&amp;#039;Custom Control&amp;#039;&amp;#039;&amp;#039; can be either IDE Controls created in the project, it can be VPI user-defined control with a window class defined by &amp;lt;vp&amp;gt;vpi::classCreate&amp;lt;/vp&amp;gt;, or it can be controls imported as {{ide|Creating new Project Items#Creating a COM Package|COM packages}} from DLLs, VBXs or OCXs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Inserting Controls =====&lt;br /&gt;
&lt;br /&gt;
To insert a new control in a dialog, click the icon of the desired control type in the &amp;#039;&amp;#039;&amp;#039;Controls toolbar&amp;#039;&amp;#039;&amp;#039;. (You can also select the desired control type in the &amp;#039;&amp;#039;&amp;#039;Controls&amp;#039;&amp;#039;&amp;#039; sub-menu of the main IDE menu or in the pop-up menu in the {{ide|Resource Editor#IDE Designer|&amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;}}.)&lt;br /&gt;
&lt;br /&gt;
===== Controls Toolbar =====&lt;br /&gt;
&lt;br /&gt;
Originally the &amp;#039;&amp;#039;&amp;#039;Controls toolbar&amp;#039;&amp;#039;&amp;#039; is displayed below the {{ide|Resource Editor#IDE Designer|&amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;}} window. You see it in the following picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_Controls.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Controls Toolbar&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
Clicking icons in the &amp;#039;&amp;#039;&amp;#039;Controls toolbar&amp;#039;&amp;#039;&amp;#039; you select a type of a control to be placed into the edited dialog/window/form/IDE control (sometimes we will use the term &amp;#039;&amp;#039;container&amp;#039;&amp;#039; instead of dialog/window/form/IDE control). When you click a control type icon, then the current cursor is replaced with the cursor correspondent to the control type to be inserted. Move the cursor to some position in the container client area and click the mouse button. The control with the default size will be inserted at the specified position.&lt;br /&gt;
&lt;br /&gt;
Instead of dropping a control into a container with a click, it is possible to drag out the rectangle (in the container client area) where a control should be placed; so you can specify not only the control position but also the control size.&lt;br /&gt;
&lt;br /&gt;
After a VPI control is placed with the mouse into a {{ide|Resource_Editor#GUI and VPI Style Resources|VPI style container}}, the correspondent VPI control Attributes dialog appears. In this dialog you can change some control attributes, when you close the dialog, the control appears at the specified location in the container.&lt;br /&gt;
&lt;br /&gt;
After a GUI control is placed with the mouse into a {{ide|Resource_Editor#GUI and VPI Style Resources|GUI style container}}, it immediately appears at the specified location in the container. To change properties of the GUI control, one should select it then the list of GUI control properties appears in the {{ide|Resource Editor#GUI Control Properties Table|GUI control Properties table}}.&lt;br /&gt;
&lt;br /&gt;
There are the following icons in the &amp;#039;&amp;#039;&amp;#039;Controls toolbar:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Icon&lt;br /&gt;
! Insert a new:&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_PushBtn.png]]&lt;br /&gt;
| Push Button&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_PushBtn.png]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_CheckBx.png]]&lt;br /&gt;
| Check Box&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_Check.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_RadioBtn.png]]&lt;br /&gt;
| Radio Button&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_RB.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_StaText.png]]&lt;br /&gt;
| Static Text Control&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_Text.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_EditCtrl.png]]&lt;br /&gt;
| Edit Control&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_Edit.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_ListBox.png]]&lt;br /&gt;
| List Box&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_ListBox.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_ListBtn.png]]&lt;br /&gt;
| List Button&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_ListBtn.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_ListEdit.png]]&lt;br /&gt;
| List Edit&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_ListEdit.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_HScroll.png]]&lt;br /&gt;
| Horizontal Scroll Bar&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_HScroll.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_VScroll.png]]&lt;br /&gt;
| Vertical Scroll Bar&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_VScroll.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_GroupBox.png]]&lt;br /&gt;
| Group Box&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_Group.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_Icon.png]]&lt;br /&gt;
| Icon Control&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_Icon.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_Custom.png]]&lt;br /&gt;
| Custom Control&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_Custom.png]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Selecting and Deselecting Controls =====&lt;br /&gt;
&lt;br /&gt;
Click inside a control to select one control. A frame appears around the selected control.&lt;br /&gt;
&lt;br /&gt;
To select a group of controls move the mouse pointer to the point in the dialog you want to be one corner of the selected area and press and hold the left mouse button. While holding the left mouse button move the mouse until all the desired controls in the dialog are inside the selected area. Then release the mouse button. All controls inside the specified rectangle will be selected.&lt;br /&gt;
&lt;br /&gt;
Also after one or more controls are already selected, you can include one extra control in the selection by holding down the &amp;#039;&amp;#039;&amp;#039;Ctrl&amp;#039;&amp;#039;&amp;#039; key and click the control.&lt;br /&gt;
&lt;br /&gt;
To deselect the control or group of controls click outside the selecting frame. Deselected controls lose their frame.&lt;br /&gt;
&lt;br /&gt;
===== Resizing Controls =====&lt;br /&gt;
&lt;br /&gt;
Once a control has been inserted in the dialog, it has a default size. To re-size a control, first click inside the control area to select it. Then move the cursor to the sizing handles on the selection frame. A new shape of cursor indicates the direction in which you can re-size the control. Press and hold the mouse button, drag until the selected control has the size you want, then release the mouse button.&lt;br /&gt;
&lt;br /&gt;
You can also change the size of a control by double-clicking it to activate the dialog for control attributes setting. Select the position you want to change and after specifying a new position or size, press enter to return to the dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Remark:&amp;#039;&amp;#039;&amp;#039; You cannot change the size of icons. You can only change their location.&lt;br /&gt;
&lt;br /&gt;
===== Moving Controls =====&lt;br /&gt;
&lt;br /&gt;
To move a control or a group of controls first select them. Then move the cursor inside the selection frame, press and hold the mouse button, drag the mouse pointer to a new location and release the mouse. Also, when one or more controls are selected, it is possible to use the cursor keys to move the selection in small steps (corresponding to the &amp;#039;&amp;#039;&amp;#039;Grid&amp;#039;&amp;#039;&amp;#039; settings).&lt;br /&gt;
&lt;br /&gt;
===== Arranging Controls =====&lt;br /&gt;
&lt;br /&gt;
To arrange a group of controls first select the group. Then click an appropriate button in the &amp;#039;&amp;#039;&amp;#039;Layout&amp;#039;&amp;#039;&amp;#039; toolbar or a menu item in the &amp;#039;&amp;#039;&amp;#039;Layout&amp;#039;&amp;#039;&amp;#039; menu of the IDE menu (or in the pop-up menu).&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_Layout.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Layout Toolbar&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Layout&amp;#039;&amp;#039;&amp;#039; commands for justifying and resizing controls:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_AllignLeft.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Align Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Align the selected controls along their left sides.&lt;br /&gt;
|- &lt;br /&gt;
| [[Image:Ide_Layout_CenterVertically.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Align Center&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Center the selected controls vertically.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_AllignRight.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Align Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Align the selected controls along their right sides.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_AllignTops.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Align Top&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Align the selected controls along their tops.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_CenterHorizontally.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Align Middle&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Center the selected controls horizontally.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_AllignBottom.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Align Bottom&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Align the selected controls along their bottoms.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_SpacingHorizontally.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Even Horizontal Spacing&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Spacing the selected controls evenly between the leftmost and the rightmost controls.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_GridButton.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Grid&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Toggle the Grid (see below).&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_SpacingVertically.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Even Vertical Spacing&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Spacing the selected controls evenly between the topmost and the bottom-most controls.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_SameSize.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Make Same Size&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Make the selected controls the same size as a model control.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_SameHorizontal.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Make Same Horizontal Size&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Make the selected controls the same width as a model control.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_SameVertical.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Make Same Vertical Size&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Make the selected controls the same height as a model control.&lt;br /&gt;
|-&lt;br /&gt;
|   &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Size To Contents&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Resize the selected controls to optimally display its titles (caption texts).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Editing Properties of GUI Controls ====&lt;br /&gt;
&lt;br /&gt;
When you open a GUI dialog or a Form (GUI window) in the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;, then near from the opened dialog (form) the {{ide|Resource Editor#GUI Control Properties Table|&amp;#039;&amp;#039;&amp;#039;Control Properties table&amp;#039;&amp;#039;&amp;#039;}} appears.&lt;br /&gt;
&lt;br /&gt;
To change &amp;#039;&amp;#039;properties&amp;#039;&amp;#039; of a GUI package control first select this control (by clicking in it) in the dialog (form). The current set of the control properties appears in the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table. Now you can edit the displayed GUI control properties.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Click here to view {{ide|Resource Editor#GUI Control Properties Table|GUI Control Properties table}}&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The displayed set of properties depends on the control type. The {{ide|Resource Editor#GUI Control Properties Table|&amp;#039;&amp;#039;&amp;#039;Control Properties table&amp;#039;&amp;#039;&amp;#039;}} contains two types of properties. General properties are common to all types of controls and some properties, which are individual to different kinds of controls.&lt;br /&gt;
&lt;br /&gt;
Initially this &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table is empty. However, as soon as one of controls in the edited dialog (form) is selected this table starts to display properties of the selected control.&lt;br /&gt;
&lt;br /&gt;
If the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table is closed, then double-click a control - the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table appears. Also the &amp;#039;&amp;#039;&amp;#039;Control Attributes&amp;#039;&amp;#039;&amp;#039; command, from the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039; {{ide|Resource Editor#Speed Menu|speed menu}}, can be used to open the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table.&lt;br /&gt;
{{:ide/Resource Editor/GUI Control Properties Table}}&lt;br /&gt;
&lt;br /&gt;
==== Editing Attributes of VPI Controls ====&lt;br /&gt;
&lt;br /&gt;
To change attributes of a VPI package control double-click it or select the control and activates the &amp;#039;&amp;#039;&amp;#039;Control Attributes&amp;#039;&amp;#039;&amp;#039; command from the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039; {{ide|Resource Editor#Speed Menu|speed menu}}. Then the &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;ControlType&amp;gt;&amp;#039;&amp;#039; Attributes&amp;#039;&amp;#039;&amp;#039; dialog appears.&lt;br /&gt;
&lt;br /&gt;
These dialogs contains two levels of attributes. The general group contains attributes, which are common to all types of controls: the &amp;#039;&amp;#039;&amp;#039;Text&amp;#039;&amp;#039;&amp;#039; determines the control title, the &amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039; (name) is used as the control identifier, and the &amp;#039;&amp;#039;&amp;#039;Control Size&amp;#039;&amp;#039;&amp;#039; group determines position and size of the control.&lt;br /&gt;
&lt;br /&gt;
Notice that the &amp;#039;&amp;#039;&amp;#039;Text&amp;#039;&amp;#039;&amp;#039; property/attribute is not used for some controls, for instance, it is not used for scroll bars.&lt;br /&gt;
&lt;br /&gt;
Notice that in the &amp;#039;&amp;#039;&amp;#039;Text&amp;#039;&amp;#039;&amp;#039; fields the ampersand symbol &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; is reserved for indicating that the next to it character is to be underlined. For example, if you use the text string &amp;#039;&amp;#039;&amp;#039;E&amp;amp;xit&amp;#039;&amp;#039;&amp;#039; as a control name, then this control will be displayed with the title &amp;#039;&amp;#039;&amp;#039;E&amp;lt;u&amp;gt;x&amp;lt;/u&amp;gt;it&amp;#039;&amp;#039;&amp;#039; at runtime. I.e. the char &amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;x&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039; will be displayed underlined (thus visually indicating that the &amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;x&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039; is an accelerator key). If you need to display the ampersand &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; symbol in the &amp;#039;&amp;#039;&amp;#039;Text&amp;#039;&amp;#039;&amp;#039; of a control, then use two of them &amp;lt;vp&amp;gt;&amp;amp;&amp;amp;&amp;lt;/vp&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other attributes are individual to different kinds of controls.&lt;br /&gt;
&lt;br /&gt;
===== Attributes of VPI Controls =====&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Push_Button_Flags.htm Push Button Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Check_Box_Flags.htm Check Box Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Custom_Control_Attributes.htm Custom Control Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Radio_Button_Flags.htm Radio Button Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Static_Text_Flags.htm Static Text Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Edit_Control_Flags.htm Edit Control Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\List_Box_Attributes.htm List Box Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\List_Button_Attributes.htm List Button Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\List_Edit_Attributes.htm List Edit Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Scroll_Bar_Attributes.htm Scroll Bar Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Group_Box_Attributes.htm Group Box Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Icon_Control_Attributes.htm Icon Attributes]&lt;br /&gt;
&lt;br /&gt;
==== Using Anchors for Positioning GUI Controls while Dialog Resizing ====&lt;br /&gt;
&lt;br /&gt;
VPI controls remember in their attributes ({{ide|Resource Editor#Attributes of VPI Controls|&amp;#039;&amp;#039;&amp;#039;Attributes of VPI Controls&amp;#039;&amp;#039;&amp;#039;}}) only their absolute positions and sizes. Therefore, when a VPI dialog or a VPI window containing such VPI controls are resized, these VPI controls do not change their positions and sizes!&lt;br /&gt;
&lt;br /&gt;
In difference to them GUI controls have additional &amp;#039;&amp;#039;Anchor&amp;#039;&amp;#039; properties, which help to reposition (and may be resize) GUI controls when containing them GUI dialog (or form) is resized.&lt;br /&gt;
&lt;br /&gt;
Each GUI control has four anchor properties: &amp;#039;&amp;#039;&amp;#039;Left Anchor&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Top Anchor&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Right Anchor&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Bottom Anchor&amp;#039;&amp;#039;&amp;#039; (see {{ide|Resource Editor#GUI Control Properties Table|&amp;#039;&amp;#039;&amp;#039;Anchor Properties of GUI Controls&amp;#039;&amp;#039;&amp;#039;}}).&lt;br /&gt;
&lt;br /&gt;
Each anchor determines that the specified (&amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Top&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Bottom&amp;#039;&amp;#039;&amp;#039;) control boundary should be &amp;#039;&amp;#039;&amp;#039;always&amp;#039;&amp;#039;&amp;#039; positioned on the stated distance from the nearest (correspondent) border of the dialog (frame).&lt;br /&gt;
&lt;br /&gt;
Each of anchors can have the &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; values. When the anchor value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then this anchor is active (used to position the correspondent control).&lt;br /&gt;
&lt;br /&gt;
For example, when the &amp;#039;&amp;#039;&amp;#039;Left Anchor&amp;#039;&amp;#039;&amp;#039; is active (has the &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; value), then the &amp;#039;&amp;#039;left&amp;#039;&amp;#039; control boundary should be positioned on the stated distance from the nearest (&amp;#039;&amp;#039;left&amp;#039;&amp;#039;) border of the dialog (frame).&lt;br /&gt;
&lt;br /&gt;
The simplest way to see which anchors are active for a control, is to select this control. Then some red arrows between control boundaries and correspondent boundaries of the dialog can bee seen. Each arrow specifies, that the correspondent anchor is active. For example, the arrow from the control top to the dialog top identifies, that the &amp;#039;&amp;#039;&amp;#039;Top Anchor&amp;#039;&amp;#039;&amp;#039; is active. In the picture below, you see three arrows, which specify that the &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Top&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039; anchors are active to the &amp;#039;&amp;#039;&amp;#039;Push Button&amp;#039;&amp;#039;&amp;#039; control.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_de_Anchors.png|center]]&lt;br /&gt;
&lt;br /&gt;
Numbers near such arrows show distances (in Dialog Base Units) between the correspondent boundaries of the control and the dialog.&lt;br /&gt;
&lt;br /&gt;
Normally each control has one active horizontal and one active vertical anchors. When the dialog is resized, then such control is always positioned on the specified distances from the specified boundaries of the dialog. The size of the control is not changed!&lt;br /&gt;
&lt;br /&gt;
When a control has both horizontal (or/and both vertical) anchors active, then both horizontal (or/and both vertical) boundaries of the control should be placed on some specified distances from the correspondent horizontal (vertical) boundaries of the dialog. Therefore, when the dialog is resized, then such control is also resized accordingly to keep the specified distances.&lt;br /&gt;
&lt;br /&gt;
When no one of horizontal (or vertical) anchors of a control are active, then no one of horizontal (or vertical) boundaries of the control are bounded to the correspondent horizontal (vertical) boundaries of the dialog. Coordinates of such controls are handles on the &amp;quot;proportional basis&amp;quot;. For example, when the dialog width is increased onto &amp;lt;vp&amp;gt;Delta&amp;lt;/vp&amp;gt; dialog base units, then the &amp;lt;vp&amp;gt;X&amp;lt;/vp&amp;gt; coordinate of the control is also increased, but it is increased two times smaller. That is the &amp;lt;vp&amp;gt;X&amp;lt;/vp&amp;gt; coordinate of the control is increased only onto &amp;lt;vp&amp;gt;Delta/2&amp;lt;/vp&amp;gt; dialog base units.&lt;br /&gt;
&lt;br /&gt;
==== Cut, Copy and Paste, Undo and Redo ====&lt;br /&gt;
&lt;br /&gt;
You can &amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039; a group of selected controls onto the Windows clipboard, and &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039; controls from the clipboard back into a dialog. The &amp;#039;&amp;#039;&amp;#039;Undo&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Redo&amp;#039;&amp;#039;&amp;#039; commands serve to delete or restore the last editing operations of your dialog.&lt;br /&gt;
&lt;br /&gt;
==== Grid ====&lt;br /&gt;
&lt;br /&gt;
When the menu (or the pop-up menu) entry &amp;#039;&amp;#039;&amp;#039;Resource | Grid&amp;#039;&amp;#039;&amp;#039; is activated, or when the [[Image:Ide_GridButton.png]] button from the &amp;#039;&amp;#039;&amp;#039;Layout&amp;#039;&amp;#039;&amp;#039; toolbar is pressed, the following dialog appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GridSpecification.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Dialog to Specify the Grid Properties&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
With a grid in place, arranging the controls inside a dialog is easier. Also it is possible to tell the {{ide|Resource Editor#IDE Designer|&amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;}} by the &amp;#039;&amp;#039;&amp;#039;Snap to Grid&amp;#039;&amp;#039;&amp;#039; that it should place controls at the grid intersections to give a satisfactory result.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_MyDialog_withGrid.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Using a grid in the Dialog/Window/Form Editor&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Test Mode ====&lt;br /&gt;
&lt;br /&gt;
The {{ide|Resource Editor#IDE Designer|&amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;}} has the &amp;#039;&amp;#039;&amp;#039;Test Mode&amp;#039;&amp;#039;&amp;#039;, so it is possible to see how the dialog with the created controls behaves. To illustrate the &amp;#039;&amp;#039;&amp;#039;Test Mode&amp;#039;&amp;#039;&amp;#039; we will assign some default values to the controls. The test mode is activated and deactivated from the &amp;#039;&amp;#039;&amp;#039;Resource&amp;#039;&amp;#039;&amp;#039; menu (or from the pop-up menu).&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_MyDialog_TestMode.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Test Mode for a Dialog&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Tab Stops ====&lt;br /&gt;
&lt;br /&gt;
When activating the menu (or the pop-up menu) entry &amp;#039;&amp;#039;&amp;#039;Resource | Tabstops&amp;#039;&amp;#039;&amp;#039;, it is possible to specify to which controls you can Tab to in the dialog. When this command is activated a small button with the &amp;lt;vp&amp;gt;+&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;-&amp;lt;/vp&amp;gt; appears on controls depending upon whether the control has a tab stop or not. By clicking the small buttons, it is possible to toggle the setting.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_MyDialog_TabStops.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Specifying Tab Stops for a Dialog&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
To exit the tab stop mode, just click in the dialog but outside of any controls.&lt;br /&gt;
&lt;br /&gt;
==== Visit Order ====&lt;br /&gt;
&lt;br /&gt;
When the tab stops have been specified for a dialog, then it is possible to specify the order in which controls will receive focus when tabbing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_MyDialog_VisitOrder.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Displaying the Visit Order&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
To change the visit order, click a small rectangle displaying the visit order number for a control that has an incorrect sequence number and this will bring up another dialog to change this sequence:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_MyDialog_ChangeVisitOrder.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Changing the Visit Order&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
To stop the visit order mode, just click in the dialog outside any controls.&lt;br /&gt;
&lt;br /&gt;
==== Speed Menu ====&lt;br /&gt;
&lt;br /&gt;
When you are in the {{ide|Resource Editor#IDE Designer|&amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;}} you can click the right mouse button to activate the Speed Menu. From this menu you can easily call any {{ide|Resource Editor#IDE Designer|&amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;}} command:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_We_SpeedMenu.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The IDE Designer Speed Menu&amp;#039;&amp;#039;&amp;#039;]]&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor&amp;diff=3578</id>
		<title>Ide/Resource Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor&amp;diff=3578"/>
		<updated>2013-04-26T10:30:26Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|Resource Editor}}&lt;br /&gt;
&lt;br /&gt;
The term &amp;#039;&amp;#039;resource&amp;#039;&amp;#039; is applied to the things like dialogs, forms, icons, cursors, pens, brushes, etc. Resources can be created by one of the IDE resource editors, or just added to a project. The correspondent resource files are referenced from a project file.&lt;br /&gt;
&lt;br /&gt;
During project building IDE generates binary &amp;#039;&amp;#039;&amp;#039;ProjectName.res&amp;#039;&amp;#039;&amp;#039; file which is provided to a linker. IDE also generates &amp;lt;vp&amp;gt;resourceIdentifiers.i&amp;lt;/vp&amp;gt; file which specifies numeric constants for resource identifiers. Resource identifierd can be refered from sources codes to provide the proper resource handling. The names and values for resource identifiers can be set or changed with the help of IDE resource editors.&lt;br /&gt;
&lt;br /&gt;
== GUI and VPI Style Resources ==&lt;br /&gt;
&lt;br /&gt;
Historically windowing programs - that is, programs with the graphical user interface - were developed in Visual Prolog using the VPI (Visual Programming Interface) package supplied as one of packages in Prolog Foundation Classes (PFC).&lt;br /&gt;
&lt;br /&gt;
The Visual Programming Interface (VPI) is a high-level Application Programming Interface (API) and it is designed to make it easy for Prolog applications to provide sophisticated user interfaces utilizing the graphical capabilities of today&amp;#039;s operating systems and display hardware. The resources and tools needed by such applications - windows, menus, dialogs, controls, pens, brushes, cursors, carets, pictures, etc. all appear as simple Prolog structures.&lt;br /&gt;
&lt;br /&gt;
However, the VPI layer (PFC\vpi) provides an old style of handling the graphical user interface. This was the reason why the PDC has developed the modern GUI package (pfc\gui), which provides really object-oriented implementation of API handling of the main windowing system features. The GUI package presents the object-oriented windows, dialogs, forms, controls, etc., handling. This package is built on top of the VPI package and delivers a new level of abstraction and ease of use while retaining compatibility with VPI programs since both the GUI and VPI programming styles can be applied in the same program.&lt;br /&gt;
&lt;br /&gt;
Currently for new GUI applications the IDE generates the default program code which use the GUI package features (but it still possible to edit old VPI style dialogs, etc.).&lt;br /&gt;
&lt;br /&gt;
Notice that in VPI style programs, except for &amp;#039;&amp;#039;VPI style dialogs&amp;#039;&amp;#039; and &amp;#039;&amp;#039;VPI style windows&amp;#039;&amp;#039; you can also create &amp;#039;&amp;#039;GUI style forms&amp;#039;&amp;#039;, which, of course, are handled by GUI package predicates. From the other side, since each GUI program includes the VPI package, so some VPI features can be embedded into GUI style programs.&lt;br /&gt;
&lt;br /&gt;
To understand difference of GUI and VPI style programs and difference of GUI and VPI style dialogs, windows, forms, controls, etc., we recommend to read carefully VPI and GUI programming tutorials on WEB.&lt;br /&gt;
&lt;br /&gt;
== IDE Designer ==&lt;br /&gt;
&lt;br /&gt;
Editing of dialogs, windows, form, and IDE Controls on the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039; are very closely related. The only real difference is that definitions of the VPI package dialogs are (normally) put into resource files, whereas GUI package dialogs, windows, and forms are always created dynamically by code.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Dialog ===&lt;br /&gt;
----&lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Dialog}}&lt;br /&gt;
&lt;br /&gt;
=== Editing a Dialog ===&lt;br /&gt;
----&lt;br /&gt;
{{:ide/Resource Editor/Editing a Dialog}}&lt;br /&gt;
&lt;br /&gt;
=== Creating and Editing a Window ===&lt;br /&gt;
----&lt;br /&gt;
The IDE does not support the creation or editing of the old-style VPI windows. You should use &lt;br /&gt;
{{ide|Resource Editor#Creating and Editing a Form|&amp;#039;&amp;#039;&amp;#039;Forms&amp;#039;&amp;#039;&amp;#039;}} instead of windows (see description of forms in the GUI package overview in the PFC part of Help for more details).&lt;br /&gt;
&lt;br /&gt;
However, the IDE automatically creates for GUI applications the special resource file &amp;#039;&amp;#039;&amp;#039;TaskWindow.win&amp;#039;&amp;#039;&amp;#039; which is placed if the TaskWindow sub-directory of the project root directory. This resource file can be later changed by the IDE resource editor.&lt;br /&gt;
&lt;br /&gt;
=== Creating and Editing a Form ===&lt;br /&gt;
---- &lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Form}}&lt;br /&gt;
&lt;br /&gt;
== Toolbar Editor ==&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Toolbar&amp;#039;&amp;#039;&amp;#039; editor allows you interactively create various kinds of toolbars.&lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Toolbar}}&lt;br /&gt;
&lt;br /&gt;
=== Editing a Toolbar ===&lt;br /&gt;
&lt;br /&gt;
{{:ide/Resource Editor/Editing a Toolbar}}&lt;br /&gt;
&lt;br /&gt;
== Menu Editor ==&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; can be used to create both pull-down menus (for windows), and pop-up menus (useful for object oriented user interfaces).&lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Menu}}&lt;br /&gt;
&lt;br /&gt;
==== Editing a Menu ====&lt;br /&gt;
&lt;br /&gt;
To edit a menu, double-click (or press &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039;) the name of a file with a menu description in the project tree in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window. For example &amp;#039;&amp;#039;&amp;#039;TaskMenu.mnu&amp;#039;&amp;#039;&amp;#039;. The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; dialog appears and you can create (or modify) whatever kind of a menu you wish.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_MenuTask.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; dialog allows you to modify or delete existing menu items or add new ones. The main pane in this dialog contains the tree of menu items of the edited (it is &amp;#039;&amp;#039;&amp;#039;TaskMenu&amp;#039;&amp;#039;&amp;#039; in the picture) menu.&lt;br /&gt;
&lt;br /&gt;
By pressing the &amp;#039;&amp;#039;&amp;#039;New&amp;#039;&amp;#039;&amp;#039; toolbar buttons it is possible to create new menu items and sub-items. You can use: [[Image:Ide_MenuEdit_First.png]] - the &amp;#039;&amp;#039;&amp;#039;New First Item&amp;#039;&amp;#039;&amp;#039;, [[Image:Ide_MenuEdit_New.png]] - the next &amp;#039;&amp;#039;&amp;#039;New Item&amp;#039;&amp;#039;&amp;#039; , and [[Image:Ide_MenuEdit_Subitem.png]] - the menu &amp;#039;&amp;#039;&amp;#039;New SubItem&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Menu items can optionally be grouped by inserting separators. To insert a separator just click the &amp;#039;&amp;#039;&amp;#039;New Separator&amp;#039;&amp;#039;&amp;#039; toolbar button [[Image:Ide_MenuEdit_Separator.png]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039; operations for selected menu items (with all their submenu items) can be executed with &amp;#039;&amp;#039;&amp;#039;Ctrl+X&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Ctrl+C&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Ctrl+V&amp;#039;&amp;#039;&amp;#039; keyboard accelerators.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; can create nested menus of any level. To enter/create a submenu for the selected menu item click the &amp;#039;&amp;#039;&amp;#039;Submenu&amp;#039;&amp;#039;&amp;#039; button [[Image:Ide_MenuEdit_Subitem.png]].&lt;br /&gt;
&lt;br /&gt;
By pressing the &amp;#039;&amp;#039;&amp;#039;Test&amp;#039;&amp;#039;&amp;#039; toolbar button [[Image:Ide_MenuEdit_Test.png]] you activate the test mode in which the edited menu will be displayed instead of the main IDE menu. You can open it submenus, etc. To exit the test mode, you can click somewhere in the IDE window out of the tested menu.&lt;br /&gt;
&lt;br /&gt;
===== Customizing Menu Item Attributes =====&lt;br /&gt;
&lt;br /&gt;
In the bottom of the menu editor dialog you see the big pane (the &amp;#039;&amp;#039;&amp;#039;Menu Tree&amp;#039;&amp;#039;&amp;#039; pane) in which you can see the edited menu tree. Menu items prefixed with the plus [[Image:Ide_Plus_Icon.png]] icon have submenus. Click the plus [[Image:Ide_Plus_Icon.png]] icon or press the right arrow on the keypad to expand one level of such submenu. Notice that the plus [[Image:Ide_Plus_Icon.png]] icon before expanded menu items is changed for the minus [[Image:Ide_Minus_Icon.png]] icon.&lt;br /&gt;
&lt;br /&gt;
When you select any menu item in the menu tree, the menu editor controls display attributes of this menu item. For each menu item the programmer can specify the following attributes:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Item Title&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Select a menu item in the &amp;#039;&amp;#039;&amp;#039;Menu Tree&amp;#039;&amp;#039;&amp;#039; pane and click the menu item title. The menu item title becomes surrounded by the frame like:&lt;br /&gt;
*:[[Image:Ide_MenuEdit_Title.png]]&lt;br /&gt;
*:Here you can specify/edit the menu item title (name).&lt;br /&gt;
*:* The menu item title may contain up to 255 characters. It may include the &amp;#039;&amp;#039;&amp;#039;\t&amp;#039;&amp;#039;&amp;#039; (tab) escape sequence.&lt;br /&gt;
*:* In the menu item title the ampersand symbol &amp;#039;&amp;#039;&amp;#039;&amp;amp;&amp;#039;&amp;#039;&amp;#039; can be used for indicating that the following character is to be underlined. For example, if you type in the string &amp;#039;&amp;#039;&amp;#039;&amp;amp;Contents&amp;#039;&amp;#039;&amp;#039;, then at runtime this menu item will be displayed as &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039;ontents&amp;#039;&amp;#039;&amp;#039;. I.e. the character &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt; will be displayed underlined (thus visually indicating that the &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt; is an accelerator key). The underlined character should be unique on each level of a menu. If you need to display the &amp;#039;&amp;#039;&amp;#039;&amp;amp;&amp;#039;&amp;#039;&amp;#039; character, use two &amp;#039;&amp;#039;&amp;#039;&amp;amp;&amp;amp;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Item Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The &amp;#039;&amp;#039;&amp;#039;Item Constant&amp;#039;&amp;#039;&amp;#039; input box is where you can select or type in the symbolic (or integer) constant that will be used as the menu item identifier. It can be typed-in directly from the keyboard or selected from the list of available constants (by clicking the [[Image:Ide_ListButton_Button.png]] button). It must be either a legal symbolic constant (for example, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;id_help_contents&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;) or an integer value.&lt;br /&gt;
*:&amp;lt;br /&amp;gt;If you enter a symbolic constant name, then the IDE automatically places this symbolic constant into the &amp;#039;&amp;#039;&amp;#039;resourceidentifiers.i&amp;#039;&amp;#039;&amp;#039; file and generates an appropriate integer value for it. The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; automatically generates the default symbolic constant name (for example, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;id_file_exit&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;) from the &amp;#039;&amp;#039;&amp;#039;Constant Prefix&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;id_file&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; and names of menu items (&amp;#039;&amp;#039;&amp;#039;Exit&amp;#039;&amp;#039;&amp;#039; on the picture).&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Constant Prefix&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The &amp;#039;&amp;#039;&amp;#039;Constant Prefix&amp;#039;&amp;#039;&amp;#039; edit control is where you can input a common prefix for all &amp;#039;&amp;#039;item constants&amp;#039;&amp;#039; of menu items on the current level of submenu.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Checked&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Set the initial state of the menu item to Checked.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Disabled&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Specifies that initially the menu item will be Disabled.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Accelerator&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:In the &amp;#039;&amp;#039;&amp;#039;Accelerator&amp;#039;&amp;#039;&amp;#039; group box you can set an accelerator key (hot key), which will be used to activate this menu item. The accelerator key can be defined as a combination of a basic accelerator key and of the &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Ctrl&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Alt&amp;#039;&amp;#039;&amp;#039; keys. The basic accelerator key can be typed in or chosen from the list in the list edit control. To specify the desired &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Ctrl&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Alt&amp;#039;&amp;#039;&amp;#039; keys check on the corresponding check box. To assign more than one accelerator key to a menu item, use the &amp;lt;vp&amp;gt;vpi::setAccelerators/1&amp;lt;/vp&amp;gt; predicate.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Help Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:In this list button control you can select one of constants of the existing first-level menu items. The &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; (system handling) menu item (in MDI mode) will be placed just before the first-level menu item with this constant.&lt;br /&gt;
*:&amp;lt;br /&amp;gt;Notice that this possibility can be used only for MDI applications. (It is ignored for non-MDI applications since they do not have the &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; (system handling) menu item.&lt;br /&gt;
&lt;br /&gt;
===== Editing the Window Submenu =====&lt;br /&gt;
&lt;br /&gt;
In MDI applications Windows automatically add the &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; first-level menu item, which, by default, is placed after (the most right) all other user-created first-level menu items in each application menu. By default, it contains the &amp;#039;&amp;#039;&amp;#039;Tile&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Cascade&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Arrange Icons&amp;#039;&amp;#039;&amp;#039; menu commands and in the bottom of this menu are listed titles of all opened MDI document windows.&lt;br /&gt;
&lt;br /&gt;
To customize items of the &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; submenu, the programmer should create a new menu with the Item Constant equal to &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;mdiwindow_menu&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;. This menu should include only one level of menu items. Notice that since this user-designed submenu will be used instead of the default system &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; submenu, so handling of ALL its menu commands should be explicitly programmed. For instance, handling of the &amp;#039;&amp;#039;&amp;#039;Tile&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Cascade&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Arrange Icons&amp;#039;&amp;#039;&amp;#039; menu commands should be programmed if they are included into the designed menu.&lt;br /&gt;
&lt;br /&gt;
== Graphics Editor ==&lt;br /&gt;
&lt;br /&gt;
=== About the Graphics Editor ===&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor is a convenient tool for creating, viewing and editing icons, cursors and small bitmaps. The images can be passed to the Windows Clipboard or saved in files.&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor allows you to create and edit images ranging in size from 4x4 pixels to 64x64 pixels, by using either a 16-color palette or monochrome shadow palette.&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor is invoked from the Project window for Icons, Cursors and Bitmaps. However, when you register large bitmaps in your project, Visual Prolog will call to edit the bitmap an external editor associated in Windows for editing files with .BMP extension.&lt;br /&gt;
&lt;br /&gt;
After the Graphics Editor is started, the Graphics Editor window will appear on the screen.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ProjectIcon.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Graphics editor window&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
When you create a new image in a project, you need to specify the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; of the image, the Constant (resource ID) which will be identify the image in the project, the name of the &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039;, in which the image will be saved, its size, and how many colors it will have.&lt;br /&gt;
&lt;br /&gt;
=== Graphics Editor Menus ===&lt;br /&gt;
&lt;br /&gt;
When the Graphics Editor window is active, the Integrated Development Environment&amp;#039;s menu bar displays the Graphics Editor sub-menus of the &amp;#039;&amp;#039;&amp;#039;Resource&amp;#039;&amp;#039;&amp;#039; menu and looks as follows:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_Menu.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Visual Prolog menu bar when the Graphics Editor is active&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
Note that there are 2 menu items: &amp;#039;&amp;#039;&amp;#039;Set Mirror Style&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Set Cursor Hotspot&amp;#039;&amp;#039;&amp;#039; and 2 sub-menus: &amp;#039;&amp;#039;&amp;#039;Tools&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Move&amp;#039;&amp;#039;&amp;#039;. Also some menu items under the &amp;#039;&amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&amp;#039; menu (like the &amp;#039;&amp;#039;&amp;#039;Undo&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Redo&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039;) are specially tailored for the Graphics Editor, and the &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; menu operations refer now to the image files.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Image ===&lt;br /&gt;
&lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Image}}&lt;br /&gt;
&lt;br /&gt;
=== Editing Image Attributes ===&lt;br /&gt;
&lt;br /&gt;
You can always wake up (with the &amp;#039;&amp;#039;&amp;#039;Resource | Attribute&amp;#039;&amp;#039;&amp;#039; task menu item or with the &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; item from pop up menu) the &amp;#039;&amp;#039;&amp;#039;Bitmap/Cursor/Icon Attributes&amp;#039;&amp;#039;&amp;#039; dialog for the created bitmap, cursor or icon to view and change some image attributes.&lt;br /&gt;
&lt;br /&gt;
Notice that the appeared &amp;#039;&amp;#039;&amp;#039;Bitmap Attributes&amp;#039;&amp;#039;&amp;#039; dialog for an existing bitmap will display less bitmap attributes then it has for created bitmaps:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ExistingBitmapAttributes.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Bitmap Attributes dialog for an existing bitmap&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
You see that for existing bitmap the dialog does not contain the &amp;#039;&amp;#039;&amp;#039;Width&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Height&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Color&amp;#039;&amp;#039;&amp;#039; attributes.&lt;br /&gt;
&lt;br /&gt;
The only image attribute that you can edit is the &amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039;.:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039; list edit the programmer can change the default resource constant for the image (at the picture it is &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idb_mybitmap&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
{{:ide/Resource Editor/Graphics Editor}}&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Graphics_Editor&amp;diff=3577</id>
		<title>Ide/Resource Editor/Graphics Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Graphics_Editor&amp;diff=3577"/>
		<updated>2013-04-26T10:25:55Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
=== Graphics Editor Window ===&lt;br /&gt;
&lt;br /&gt;
When the Graphics Editor is started to edit an image, the Graphics Editor window will appear on the screen:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ProjectIcon.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Graphics Editor Window&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor window is divided into several areas. Each area is responsible for a definite function or combines a number of tools, which are associated by purpose.&lt;br /&gt;
&lt;br /&gt;
==== Areas of the Graphics Editor Window ====&lt;br /&gt;
&lt;br /&gt;
===== Graphics Editor Title Bar =====&lt;br /&gt;
&lt;br /&gt;
The title bar of the Graphics Editor window serves to display information about the type of the image (icon, cursor or bitmap), the image size in pixels, the number of colors which are available for use, and the name of the file which is opened for the current image.&lt;br /&gt;
&lt;br /&gt;
For example, the title bar &amp;#039;&amp;#039;&amp;#039;ProjectIcon.ico Size 32*32 Colors:16&amp;#039;&amp;#039;&amp;#039; says that:&lt;br /&gt;
* the type of current image is an icon;&lt;br /&gt;
* the size of the current image is 32*32 pixels;&lt;br /&gt;
* 16 colors may be used in the image;&lt;br /&gt;
* the name of the file, which is opened for current image, is &amp;lt;vp&amp;gt;ProjectIcon.ico&amp;lt;/vp&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== Graphic Field =====&lt;br /&gt;
&lt;br /&gt;
The Graphic Field is situated in the middle of the Graphics Editor window.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_GraphicField.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Typical contents of the Graphic Field&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The Graphic Field lets you see and edit the current image in expanded mode. The Graphic Field consists of small cells, where each cell corresponds to one pixel on the actual size image. The number of cells in each horizontal row and the number of cells in each vertical column give the image size, which is displayed in the title bar of the Graphics Editor window. It is possible to turn on and off a grid in the Graphic field.&lt;br /&gt;
&lt;br /&gt;
===== Image Screen =====&lt;br /&gt;
&lt;br /&gt;
To the right of the {{ide|Resource Editor#Graphic Field|Graphic Field}} in the Graphics Editor window you can see the Image Screen, painted in background color. In the middle of Image Screen you can see the current image in actual size on the selected background color. By changing the background color you can see how your current image will look in various surroundings.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ImageScreen.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Icon&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Under the {{ide|Resource Editor#Graphic Field|Graphic Field}}, you can see the Icon drop-down list:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_IconComboBox.png|center]]&lt;br /&gt;
&lt;br /&gt;
You can choose, which of the icon images in the current file to load into the editor.&lt;br /&gt;
&lt;br /&gt;
===== Move Toolbar =====&lt;br /&gt;
(Moving, Rotating and Flipping an Image)&lt;br /&gt;
To the right of the Graphic Field, under the {{ide|Resource Editor#Image Screen|Image Screen}}, you can see the Image Move toolbar:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_I06.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Image Move toolbar&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
By clicking the appropriate button you can move, rotate or flip the current image.&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Button&lt;br /&gt;
! Button Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I064.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Shift&amp;lt;br /&amp;gt; Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Moves the image one column to the left. The left edge column crosses the left borderline of the Graphic Field and returns to the Graphic Field as the right edge column&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I063.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Shift&amp;lt;br /&amp;gt; Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Moves the image one pixel column to the right. The right edge column crosses the right borderline of the Graphic Field and returns to the Graphic Field as the left edge column&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I061.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Shift&amp;lt;br /&amp;gt; Up&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Moves the image one pixel row up. The top row crosses the upper borderline of the Graphic Field and returns to the Graphic Field as the bottom row&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I062.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Shift&amp;lt;br /&amp;gt; Down&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Moves the image one pixel row down. The bottom row crosses the bottom borderline of the Graphic Field and returns to the Graphic Field as the top row&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I066.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Rotate&amp;lt;br /&amp;gt; Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Rotates the image 90 degrees counter-clockwise around its center&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I065.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Rotate&amp;lt;br /&amp;gt; Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Rotates the image 90 degrees clockwise around its center&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I068.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Flip&amp;lt;br /&amp;gt; Horizontal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Flips the image around the vertical axis&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I067.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Flip&amp;lt;br /&amp;gt; Vertical&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Flips the image around the horizontal axis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notice that the &amp;#039;&amp;#039;&amp;#039;Resource | Move&amp;#039;&amp;#039;&amp;#039; menu contains the same commands as the &amp;#039;&amp;#039;&amp;#039;Image Move&amp;#039;&amp;#039;&amp;#039; toolbar.&lt;br /&gt;
&lt;br /&gt;
===== Color Palette =====&lt;br /&gt;
&lt;br /&gt;
At the top of the Graphics Editor window you can see the Color Palette.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ColorPalette.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Color Palette&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The Color Palette lets you choose colors for the drawing operations:&lt;br /&gt;
&lt;br /&gt;
* [GE_Using_Tools_and_Colors.htm#Setting_the_Draw_and_Edit_Colors Setting the Draw and Edit Colors]&lt;br /&gt;
* [GE_Using_Tools_and_Colors.htm#Setting_the_Background_Color Setting the Background Color]&lt;br /&gt;
* [GE_Using_Tools_and_Colors.htm#Setting_the_Inverse__to_Background__Color Setting the Inverse (to Background) Color]&lt;br /&gt;
&lt;br /&gt;
===== Color Modes Toolbar =====&lt;br /&gt;
&lt;br /&gt;
Under the {{ide|Resource Editor#Image Screen|Image Screen}} you can see the Color Modes tool box:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_I10.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The Color Modes toolbar&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Color Modes tool box is used to set:&lt;br /&gt;
&lt;br /&gt;
* [GE_Using_Tools_and_Colors.htm#Setting_the_Draw_and_Edit_Colors Draw and Edit colors]&lt;br /&gt;
* [GE_Using_Tools_and_Colors.htm#Setting_the_Background_Color Background color]&lt;br /&gt;
* [GE_Using_Tools_and_Colors.htm#Setting_the_Inverse__to_Background__Color Inverse (to Background) color]&lt;br /&gt;
&lt;br /&gt;
===== Draw and Edit Toolbar =====&lt;br /&gt;
(Using Draw and Edit Tools)&lt;br /&gt;
To the left of the Graphic Field of the Graphics Editor window you can see the Draw and Edit Toolbar. It contains the main tools for drawing and editing:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_DrawEditToolbox.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The Draw and Edit toolbar&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor provides a number of tools to make creating your image easy. The tools can be activated either from the &amp;#039;&amp;#039;&amp;#039;Resource | Tools&amp;#039;&amp;#039;&amp;#039; menu or from the Draw and Edit toolbar.&lt;br /&gt;
&lt;br /&gt;
===== Draw and Edit Tools =====&lt;br /&gt;
&lt;br /&gt;
By clicking any of the buttons in the Draw and Edit toolbar you can select the required draw or edit tool. Here are short descriptions of them:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Button&lt;br /&gt;
! Button Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I15.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Pen&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The Pen tool can be used to color an individual pixel on the Graphic Field or to make a free-hand drawing.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I16.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Brush&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The Brush tool works the same as Pen tool, except that the Brush tool leaves a larger mark than the Pen. The style of the Brush can be changed by selecting among the &amp;#039;&amp;#039;&amp;#039;Small&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Big&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Star&amp;#039;&amp;#039;&amp;#039; in the &amp;#039;&amp;#039;&amp;#039;Brush Style&amp;#039;&amp;#039;&amp;#039; list button (in the right bottom corner of the Graphics Editor window).&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I18.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Eraser&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| To erase a fragment of the image (the same as painting it with the Screen Color), you can use the Eraser Tool in the toolbar.&amp;lt;br /&amp;gt;The size of the Eraser can be changed by selecting among the &amp;#039;&amp;#039;&amp;#039;Small&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Big&amp;#039;&amp;#039;&amp;#039; in the &amp;#039;&amp;#039;&amp;#039;Eraser Style&amp;#039;&amp;#039;&amp;#039; list button (in the right bottom corner of the Graphics Editor window)&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I20.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Color Eraser&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The Erase Color tool will erase cells of the selected color without changing other colors.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I21.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Fill Contour&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The fastest way to color an area, which has an enclosed boundary, is to use the Fill Contour tool. Move the cursor into the area to be colored and click the mouse button. The interior of the bounded region will be colored.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I26.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Mirror&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| To create symmetrical images use the Mirror tool. The Mirror tool sets the points that are the reflections of the cursor trail point relative to the different axes of symmetry. To choose the appropriate axes of symmetry for the Mirror tool select the &amp;#039;&amp;#039;&amp;#039;Resource &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; {{ide|Resource Editor#Mirror Style Dialog|Set Mirror Style}}&amp;#039;&amp;#039;&amp;#039; menu command in the Task window menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I22.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Line&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Selecting this button enables you to draw a line between any two points in the image.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I23.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Draw Rectangle&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Click this button if you need a rectangle. Size the Rectangle by drawing it out with the left button held down, then release.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I24.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Draw Ellipse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Choose this tool if you need to draw a circle or an ellipse. Size the circle or ellipse by drawing it out with the left button held down, then release.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I25.png]]&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Enter Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Click this button to insert some text in your image. Move the cursor to the position on the Graphic Field where you want to start the text and click the mouse button. You will see a text cursor, which shows you the height of the letters and digits, and the starting point for the current line of text.&amp;lt;br /&amp;gt;When you type some text, it will be drawn in the currently selected color, with the currently selected font.&amp;lt;br /&amp;gt;To select the desired font settings press &amp;#039;&amp;#039;&amp;#039;Ctrl+F&amp;#039;&amp;#039;&amp;#039;.&amp;lt;br /&amp;gt;While the text is still selected, it is possible to move the starting point clicking in the new position.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I28.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Mark Area&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|To mark a rectangular fragment of the image on the Graphic Field to be cut, copied or moved, click the &amp;#039;&amp;#039;&amp;#039;Mark Area&amp;#039;&amp;#039;&amp;#039; tool. Then move the cursor to the Graphic Field cell, which you want to be one corner of a marked rectangular area, and press and hold the mouse button. Release the mouse when the rectangle is of the appropriate size and you will see a sub-region of the image marked accordingly.&amp;lt;br /&amp;gt;You can move the marked region to another part of the Graphic Field by means of &amp;quot;drag and drop&amp;quot;. Move the cursor into the marked region and press and hold the mouse button. Then, keeping the mouse button depressed, drag the marked fragment to the place of your choice and release the mouse button. Now the marked region is fixed in its new place.&amp;lt;br /&amp;gt;If you want to copy the marked region to another place, do as described under move, but hold down the &amp;#039;&amp;#039;&amp;#039;Ctrl&amp;#039;&amp;#039;&amp;#039; key, while pressing the mouse button in the marked region.&amp;lt;br /&amp;gt;When a region is marked:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Edit|Cut&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Edit|Copy&amp;#039;&amp;#039;&amp;#039; (from the main menu, or the main IDE toolbar &amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039; buttons, or the standard accelerator keys &amp;#039;&amp;#039;&amp;#039;Ctrl+X&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Ctrl+C&amp;#039;&amp;#039;&amp;#039;)can be used to place it to the clipboard;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Edit|Paste&amp;#039;&amp;#039;&amp;#039; (or the &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039; toolbar button or accelerator &amp;#039;&amp;#039;&amp;#039;Ctrl+V&amp;#039;&amp;#039;&amp;#039;)can be used to scale a image from the clipboard into the region.&lt;br /&gt;
* The &amp;#039;&amp;#039;&amp;#039;Paste&amp;amp;Scale&amp;#039;&amp;#039;&amp;#039; tool can be used.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; When you use &amp;#039;&amp;#039;&amp;#039;Edit|Paste&amp;#039;&amp;#039;&amp;#039; , the image fragment will appear in the left top corner of Graphic Field. The region may be moved to another place by the mouse.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I29.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Paste &amp;amp; Scale in Rectangle&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| When an image has been copied to the clipboard, this image can be pasted back into another marked area by pressing this button. This button will stay disabled until there are both an image on the clipboard, and a region has been selected.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I30.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Clear Graphic Field&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| To clear the Graphic Field, click the Clear button. The white color is used for bitmaps and transparent color is used for icons and cursors.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I31.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Change a Selected Color&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| With this button you can change all pixels that have a given color into another color. The two colors should first be set for the &amp;#039;&amp;#039;&amp;#039;Color&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Alt-Color&amp;#039;&amp;#039;&amp;#039; selections.&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; Any pixels, which were colored in background color or in &amp;quot;inverse&amp;quot; color by &amp;#039;&amp;#039;&amp;#039;Inverse&amp;#039;&amp;#039;&amp;#039; tool, will keep their original colors.&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Ide_I32.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Inverse Colors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This button can be used to invert all colors on the image. In this case, any pixels, which were colored in background color or in inverse to background color, will retain their existing colors.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_I33.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Grid&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This button can be used to turn on and off a grid in the Graphic Field&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Mirror Style Dialog ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Mirror Style&amp;#039;&amp;#039;&amp;#039; dialog is activated by the &amp;#039;&amp;#039;&amp;#039;Resource | Set Mirror Style&amp;#039;&amp;#039;&amp;#039; menu command in the Task window menu:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_MirrorStyle.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The Mirror Style dialog&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Mirror Style&amp;#039;&amp;#039;&amp;#039; dialog is used to choose the appropriate axes of symmetry for the &amp;#039;&amp;#039;&amp;#039;Mirror&amp;#039;&amp;#039;&amp;#039; tool.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Mirror&amp;#039;&amp;#039;&amp;#039; tool [[Image:Ide_I26.png]] sets the points that are the reflections of the &amp;#039;&amp;#039;&amp;#039;cursor &amp;#039;&amp;#039;trail&amp;#039;&amp;#039; point&amp;#039;&amp;#039;&amp;#039; relative to the different axes of symmetry.&lt;br /&gt;
&lt;br /&gt;
When you place the mouse cursor onto some point inside an edited image and click the left mouse button, then we say that you set the &amp;#039;&amp;#039;&amp;#039;cursor &amp;#039;&amp;#039;trail&amp;#039;&amp;#039; point&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Using the &amp;#039;&amp;#039;&amp;#039;Mirror&amp;#039;&amp;#039;&amp;#039; tool, you can (by one click) set up to 8 reflections of the specified cursor &amp;#039;&amp;#039;trail&amp;#039;&amp;#039; point. A reflection point will be painted to each checked ON type of reflections. They are:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Main -&amp;gt; Trial&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the clicked &amp;#039;&amp;#039;&amp;#039;cursor &amp;#039;&amp;#039;trail&amp;#039;&amp;#039; point&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Main -&amp;gt; Reverse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point opposite to the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reflect -&amp;gt; Horizontal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is the horizontal reflection of the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reflect -&amp;gt; Vertical&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is the vertical reflection of the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Orthogonal -&amp;gt; Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is 90 degrees left rotation of the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Orthogonal -&amp;gt; Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is 90 degrees right rotation of the clicked cursor trail point.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reflect Diagonal -&amp;gt; Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is the reflection of the clicked cursor trail point relative to the diagonal line drawn from the &amp;#039;&amp;#039;&amp;#039;left&amp;#039;&amp;#039;&amp;#039; upper corner to the right lower corner of the image.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reflect Diagonal -&amp;gt; Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:When checked ON, then paints the point, which is the reflection of the clicked cursor trail point relative to the diagonal line drawn from the &amp;#039;&amp;#039;&amp;#039;right&amp;#039;&amp;#039;&amp;#039; upper corner to the left lower corner of the image.&lt;br /&gt;
&lt;br /&gt;
=== Using Tools and Colors ===&lt;br /&gt;
&lt;br /&gt;
==== Setting Colors ====&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Setting the Draw and Edit Colors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To choose colors for the drawing and editing tools you can select one of the following four switches.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_Mode_DrawColor.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The Color Modes toolbar with selected &amp;quot;color&amp;quot; mode&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The color of selection will be used for the drawing. It is possible to choose a new color for the active selection by a click in the {{ide|Resource Editor#Color Palette|Color Palette}}.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;color&amp;#039;&amp;#039;&amp;#039; and the &amp;#039;&amp;#039;&amp;#039;alt-color&amp;#039;&amp;#039;&amp;#039; can be used in all drawing operations, the &amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039; (or transparent) and &amp;#039;&amp;#039;&amp;#039;inverse&amp;#039;&amp;#039;&amp;#039; selections have different purposes depending on the image type.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
There are 16 color fields on the {{ide|Resource Editor#Color Palette|Color Palette}}, and all of them are available for drawing and editing in the {{ide|Resource Editor#Graphic Field|Graphic Field}}.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Setting the Background Color&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To see how your image looks on the different background colors or to color the image fragments in &amp;quot;transparent&amp;quot; (to let the background color show through) use the &amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039; color selection.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_Mode_BackgroundColor.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The &amp;quot;screen&amp;quot; mode should be used for Background color&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To change the background color, be sure that the &amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039; switch is selected, then you can choose the background color by clicking in the {{ide|Resource Editor#Color Palette|Color Palette}}. The background color on the {{ide|Resource Editor#Image Screen|Image Screen}}, any details of the image, which were colored in (transparent) background color, and the &amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039; indicator of &amp;#039;&amp;#039;&amp;#039;Color Modes&amp;#039;&amp;#039;&amp;#039; toolbar, all will change to the new color.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Usage of the &amp;quot;screen&amp;quot; Colors for Bitmaps, Cursors and Icons&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Image&lt;br /&gt;
! Screen Colors&lt;br /&gt;
|-&lt;br /&gt;
! Bitmaps&lt;br /&gt;
| Used to set the color of the surrounding area&lt;br /&gt;
|-&lt;br /&gt;
! Cursors and Icons&lt;br /&gt;
| Used to specify transparent pixels and to set the color of the surrounding area&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Setting the Inverse (to Background) Color&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Using the inverse color is a convenient way to mark the boundary of the image or to color the details, which should be always be in contrast to any background color.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_Mode_InverseBackground.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;The &amp;quot;inverse&amp;quot; mode should be used for Inverse color&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Usage of the Inverse color for Bitmaps, Cursors and Icons&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Image&lt;br /&gt;
! Inverse Color&lt;br /&gt;
|-&lt;br /&gt;
! Bitmaps&lt;br /&gt;
| Cannot be used&lt;br /&gt;
|-&lt;br /&gt;
! Cursors and Icons&lt;br /&gt;
| Used to specify pixels that should get a color inverse of the actual background&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Understanding Colors ====&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Colors for Bitmaps&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Visual Prolog Graphics Editor can create bitmaps with either 2 or 16 colors. A pixel in a bitmap can not have the inverse and screen colors.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Colors for Cursors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Any pixel in a cursor can have one of four color control values:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Cursor&lt;br /&gt;
! Color Effect&lt;br /&gt;
|-&lt;br /&gt;
! Black&lt;br /&gt;
| Pixels will be black&lt;br /&gt;
|-&lt;br /&gt;
! White&lt;br /&gt;
| Pixels will be white&lt;br /&gt;
|-&lt;br /&gt;
! Inverse&lt;br /&gt;
| Pixels will be converted to the inverse of the original color&lt;br /&gt;
|-&lt;br /&gt;
! Screen&lt;br /&gt;
| Pixels will be transparent, they will just keep their old color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To understand how this works, you should create a little cursor having four areas, with these four color control values. Then select the &amp;#039;&amp;#039;&amp;#039;Resources | Tools | Test Cursor&amp;#039;&amp;#039;&amp;#039;, and study how the cursor looks.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_TestCursorColors.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;In this test cursor the left upper quoter of the cursor is painted with the &amp;quot;color&amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;and the left bottom quarter is painted with the &amp;quot;inverse&amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Place the cursor over the Grid and you will see effects of &amp;quot;inverse&amp;quot; color.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Colors for Icons&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Icons can either have 2 or 16 colors, and in addition to those, the pixels can also use the {{ide|Resource Editor#Setting the Background Color|&amp;#039;&amp;#039;&amp;#039;screen&amp;#039;&amp;#039;&amp;#039;}} and &lt;br /&gt;
{{ide|Resource Editor#Setting the Inverse (to Background) Color|&amp;#039;&amp;#039;&amp;#039;colors&amp;#039;&amp;#039;&amp;#039;}}.&lt;br /&gt;
&lt;br /&gt;
==== Cursor Handling Tools ====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setting Cursor Hot Spots&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
When working with a cursor, the menu command Resource | Set Cursor Hotspot activates a dialog box:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_CursorHotSpot.png|center]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;Defining the Hotspot for a cursor&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as this dialog is open you can point to the pixel, which is to be the cursor Hotspot. This pixel in the cursor will determine the screen pixel which will be acted upon and which will be reported during a mouse action.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Testing a Cursor&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
When working with a cursor, the &amp;#039;&amp;#039;&amp;#039;Resource | Tools | Test Cursor&amp;#039;&amp;#039;&amp;#039; menu item allows you to see what your newly designed cursor will look like.&lt;br /&gt;
&lt;br /&gt;
==== Undo / Redo Buffer ====&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor supports &amp;#039;&amp;#039;&amp;#039;Edit|Undo&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Edit|Redo&amp;#039;&amp;#039;&amp;#039; operations, just as the other editors do.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=File:Ide_TB_NewRow.png&amp;diff=3576</id>
		<title>File:Ide TB NewRow.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=File:Ide_TB_NewRow.png&amp;diff=3576"/>
		<updated>2013-04-26T10:15:16Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=File:Ide_TB_Separator.png&amp;diff=3575</id>
		<title>File:Ide TB Separator.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=File:Ide_TB_Separator.png&amp;diff=3575"/>
		<updated>2013-04-26T10:14:41Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=File:Ide_TB_ContextText.png&amp;diff=3574</id>
		<title>File:Ide TB ContextText.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=File:Ide_TB_ContextText.png&amp;diff=3574"/>
		<updated>2013-04-26T10:14:11Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Editing_a_Toolbar&amp;diff=3573</id>
		<title>Ide/Resource Editor/Editing a Toolbar</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Editing_a_Toolbar&amp;diff=3573"/>
		<updated>2013-04-26T10:12:35Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: New page: &amp;lt;noinclude&amp;gt;Category:Ide&amp;lt;/noinclude&amp;gt; To edit a toolbar, double-click (or press &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039;) the name of a file with a toolbar description in the project tree in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
To edit a toolbar, double-click (or press &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039;) the name of a file with a toolbar description in the project tree in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window&amp;#039;s list of project files. The &amp;#039;&amp;#039;&amp;#039;Toolbar Editor&amp;#039;&amp;#039;&amp;#039; window appears and you can create whatever form of a toolbar you wish.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_ToolbarEditor.png|center|frame|The &amp;#039;&amp;#039;&amp;#039;Toolbar Editor&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
In the top of the picture you see edited toolbar (&amp;#039;&amp;#039;&amp;#039;ProjectToolbar&amp;#039;&amp;#039;&amp;#039; in the picture).&lt;br /&gt;
&lt;br /&gt;
==== Controls Toolbar ====&lt;br /&gt;
&lt;br /&gt;
In the bottom of the previous picture you see the &amp;#039;&amp;#039;&amp;#039;Controls&amp;#039;&amp;#039;&amp;#039; toolbar. Using the &amp;#039;&amp;#039;&amp;#039;Controls&amp;#039;&amp;#039;&amp;#039; toolbar you can easily add desired controls into the edited toolbar.&lt;br /&gt;
&lt;br /&gt;
There are the Controls toolbar commands inserting the following kinds of controls into toolbars:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_PushBtn.png]]&lt;br /&gt;
! Push Button&lt;br /&gt;
| Enables inserting of the &amp;#039;&amp;#039;&amp;#039;push button&amp;#039;&amp;#039;&amp;#039; control into the edited toolbar. Click inside the toolbar to specify the place where the control should be inserted, press on the button [[Image:Ide_Ctrl_PushBtn.png]], the {{ide|Resource Editor#Push and Check Button Attributes|Button Attributes}} dialog appears. In this dialog you must specify a bitmap that will be used to display the button. Press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button to create the control.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_CheckBx.png]]&lt;br /&gt;
! Check Button&lt;br /&gt;
| Enables inserting of the &amp;#039;&amp;#039;&amp;#039;check button&amp;#039;&amp;#039;&amp;#039; control into the edited toolbar. Click inside the toolbar to specify the place where the control should be inserted, press on the button [[Image:Ide_Ctrl_CheckBx.png]], the {{ide|Resource Editor#Push and Check Button Attributes|Button Attributes}} dialog appears. In this dialog you must specify a bitmap that will be used to display the button. Press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button to create the control.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_StaText.png]]&lt;br /&gt;
! Static Text&lt;br /&gt;
| Enables inserting of the &amp;#039;&amp;#039;&amp;#039;static text&amp;#039;&amp;#039;&amp;#039; control into the edited toolbar. Click inside the toolbar to specify the place where the control should be inserted, press on the button [[Image:Ide_Ctrl_StaText.png]], the {{ide|Resource Editor#Text Control Attributes|Text Attributes}} dialog appears. In this dialog you can specify the &amp;#039;&amp;#039;&amp;#039;Initial Text&amp;#039;&amp;#039;&amp;#039; that will be displayed in the control. Press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button to create the control.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_TB_ContextText.png]]&lt;br /&gt;
! Context Sensitive Text&lt;br /&gt;
| Enables inserting of the &amp;#039;&amp;#039;&amp;#039;context sensitive text&amp;#039;&amp;#039;&amp;#039; control into the edited toolbar. Click inside the toolbar to specify the place where the control should be inserted, press on the button [[Image:Ide_TB_ContextText.png]], the {{ide|Resource Editor#Text Control Attributes|Text Attributes}} dialog appears. Press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button to create the control.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_ListBtn.png]]&lt;br /&gt;
! List Button&lt;br /&gt;
| Enables inserting of the &amp;#039;&amp;#039;&amp;#039;list button&amp;#039;&amp;#039;&amp;#039; control into the edited toolbar. Click inside the toolbar to specify the place where the control should be inserted, press on the button [[Image:Ide_Ctrl_ListBtn.png]], the {{ide|Resource Editor#Text Control Attributes|List Button Attributes}} dialog appears. Press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button to create the control. List buttons can be used to select one item from a list of possible values.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_TB_Separator.png]]&lt;br /&gt;
! Separator&lt;br /&gt;
| Enables inserting of a &amp;#039;&amp;#039;&amp;#039;separator&amp;#039;&amp;#039;&amp;#039; into the edited toolbar. Click inside the toolbar to specify the place where the &amp;#039;&amp;#039;&amp;#039;separator&amp;#039;&amp;#039;&amp;#039; should be inserted, press on the button [[Image:Ide_TB_Separator.png]], the &amp;#039;&amp;#039;&amp;#039;separator&amp;#039;&amp;#039;&amp;#039; will be inserted. The separator is like a space; it is used to make some space and a vertical bar between other controls, usually to divide them into functional groups.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_TB_NewRow.png]]&lt;br /&gt;
! New Row&lt;br /&gt;
| Enables inserting of a &amp;#039;&amp;#039;&amp;#039;new row&amp;#039;&amp;#039;&amp;#039; into the edited toolbar. Click inside the toolbar to specify the place where the &amp;#039;&amp;#039;&amp;#039;new row&amp;#039;&amp;#039;&amp;#039; should start, press on the button [[Image:Ide_TB_NewRow.png]], the &amp;#039;&amp;#039;&amp;#039;new row&amp;#039;&amp;#039;&amp;#039; will be created. Notice that the &amp;#039;&amp;#039;&amp;#039;new rows&amp;#039;&amp;#039;&amp;#039; are relevant only for toolbars with the styles &amp;#039;&amp;#039;Inside&amp;#039;&amp;#039; and &amp;#039;&amp;#039;Movable&amp;#039;&amp;#039;. A &amp;#039;&amp;#039;&amp;#039;new row&amp;#039;&amp;#039;&amp;#039; control will cause breaking of the current line, the following controls appear on the next line.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Control Types Used in Toolbars ====&lt;br /&gt;
&lt;br /&gt;
In the lower part of the previous picture we see the &amp;#039;&amp;#039;&amp;#039;[Controls_Toolbar_in_the_Toolbar_Editor.htm Controls]&amp;#039;&amp;#039;&amp;#039; toolbar, which contains all kinds of controls that can be used in toolbars.&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;30%&amp;quot;|Control&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Push Button&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This is a standard push button. When pressed it sends an &amp;lt;vp&amp;gt;vpiDomains::e_Menu&amp;lt;/vp&amp;gt; event to the parent window. The bitmap must be registered for the button.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Check Button&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| This is used to indicate the state of a property that can have two states; either checked or unchecked. When pressed it sends an &amp;lt;vp&amp;gt;vpiDomains::e_Control(_, vpiDomains::wc_CheckBox,_,_)&amp;lt;/vp&amp;gt; event to the parent window. You must register a bitmap for a check button.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;List Button&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| A list button can be used to select one item from a number of values. When pressed it sends an &amp;lt;vp&amp;gt;vpiDomains::e_Control(_, vpiDomains::wc_LBoxButton,_,_)&amp;lt;/vp&amp;gt; event to the parent window.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Static Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Text may be placed in this control initially and also dynamically. A &amp;#039;&amp;#039;&amp;#039;Static Text&amp;#039;&amp;#039;&amp;#039; is often used for titles.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Context Sensitive Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| If a Context Sensitive Text field is put into the toolbar, this field will display help information about the control the mouse is currently located over.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Separator&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| A separator is like a space; it is used to make some space and a vertical bar between other controls, usually to divide them into functional groups.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;New Row&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| New row is relevant only for toolbars with the styles &amp;#039;&amp;#039;&amp;#039;Inside&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Movable&amp;#039;&amp;#039;&amp;#039;. A New Row control will cause the current line to break, and the following controls to appear on the next line of the toolbar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Toolbar Layout Editing ====&lt;br /&gt;
&lt;br /&gt;
The layout of the toolbar can be done both with the keyboard, and with the mouse. There is an insertion point that is marked with a colored bar. This insertion point can be moved with the arrow keys, or by clicking the mouse on the new location. When the insertion bar is at a given location, the control to the right of the bar can be deleted by pressing the &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039; key, the control to the left can be deleted by pressing the &amp;#039;&amp;#039;&amp;#039;Backspace&amp;#039;&amp;#039;&amp;#039; key.&lt;br /&gt;
&lt;br /&gt;
To place a new control at the insertion point:&lt;br /&gt;
&lt;br /&gt;
* select an item from the &amp;#039;&amp;#039;&amp;#039;Controls&amp;#039;&amp;#039;&amp;#039; menu or&lt;br /&gt;
* choose a control from the ones shown in the &amp;#039;&amp;#039;&amp;#039;Controls&amp;#039;&amp;#039;&amp;#039; floating dialog or&lt;br /&gt;
* click the right mouse button anywhere in the Toolbars Editor window area outside the toolbar to display a pop up from which a desired control can be selected.&lt;br /&gt;
&lt;br /&gt;
==== Attributes of Toolbar Controls ====&lt;br /&gt;
&lt;br /&gt;
After a control is inserted, it is possible to change the control attributes. Just double-click the control.&lt;br /&gt;
&lt;br /&gt;
===== Push and Check Button Attributes =====&lt;br /&gt;
&lt;br /&gt;
Double-click a Push button or a Check button calls the &amp;#039;&amp;#039;&amp;#039;Button Attributes&amp;#039;&amp;#039;&amp;#039; dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_Toolbar_ButtonAttributes.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Specifying properties of push buttons and check buttons&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The following information must be specified:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;30%&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| width=&amp;quot;70%&amp;quot;|A constant name to identify the button control. This is the constant that will be used in the &amp;lt;vp&amp;gt;vpiDomains::e_Menu&amp;lt;/vp&amp;gt; events. Therefore, it is recommended to use the same constant as is used for the menu item correspondent to the same command.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039; input box is where you can select or type in the symbolic constant that will be used as the control identifier. It can be input directly from the keyboard or selected from the list of available constants (by clicking the [[Image:Ide_ListButton_Button.png]] button). It must be either a legal symbolic constant (for example, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idt_file_open&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; ) or an integer value.&lt;br /&gt;
&lt;br /&gt;
If you enter a symbolic constant, then the IDE automatically places this symbolic constant into the &amp;#039;&amp;#039;&amp;#039;resourceidentifiers.i&amp;#039;&amp;#039;&amp;#039; file and generates an appropriate integer value for it. The &amp;#039;&amp;#039;&amp;#039;Toolbar Editor&amp;#039;&amp;#039;&amp;#039; automatically generates the default symbolic constants (for example, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idt_7&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; from the &amp;#039;&amp;#039;toolbar constant prefix&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idt_&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; and the number of this control in the toolbar.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Status Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|The string entered into this field can consist from 2 sub-strings separated by a semicolon. The sub-string specified before the semicolon (if specified) is used as the button Tool Tip text. The sub-string specified after the semicolon (or if the semicolon is not specified) will be displayed in the &amp;#039;&amp;#039;&amp;#039;Context Sensitive Text&amp;#039;&amp;#039;&amp;#039; field (when the mouse cursor is positioned over this button).&lt;br /&gt;
&lt;br /&gt;
For example, the text &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;New;New file&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; will cause &amp;#039;&amp;#039;&amp;#039;New&amp;#039;&amp;#039;&amp;#039; to be shown in the yellow tool tip while &amp;#039;&amp;#039;&amp;#039;New file&amp;#039;&amp;#039;&amp;#039; will be shown in a context sensitive field when the mouse is over the button.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Checked&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|If this check box is checked than the button initial state is &amp;quot;pressed&amp;quot; and the icon shaped as &amp;#039;&amp;#039;pressed&amp;#039;&amp;#039; is initially displayed. Otherwise the button initial state is &amp;quot;released&amp;quot; and the icon shaped as &amp;#039;&amp;#039;released&amp;#039;&amp;#039; is displayed.&lt;br /&gt;
|- &lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Disabled&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|If this check box is checked then the button initially does not accept a user input and is grayed. Otherwise the button is initially enabled (accepts a user input) and has initial state specified by the &amp;#039;&amp;#039;&amp;#039;Checked&amp;#039;&amp;#039;&amp;#039; check box.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Push Button&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; or&amp;lt;br /&amp;gt; &amp;#039;&amp;#039;&amp;#039;Check Button&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Select the appropriate button style (&amp;#039;&amp;#039;&amp;#039;Push Button&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Check Button&amp;#039;&amp;#039;&amp;#039;). The style can be changed at any time. At runtime the state (&amp;#039;&amp;#039;pressed&amp;#039;&amp;#039; or &amp;#039;&amp;#039;released&amp;#039;&amp;#039;) of a check button can be switched by clicking the check button.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Bitmap Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|This bitmap will be used to display a button. This bitmap should be selected from the list of bitmaps registered in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window (by clicking the [[Image:_Ide_ListButton_Button.png]] button). Before a bitmap name will appear in the registered bitmap list, it should be registered in the project with the &amp;#039;&amp;#039;&amp;#039;File | Add&amp;#039;&amp;#039;&amp;#039; command (the &amp;#039;&amp;#039;&amp;#039;Resource Files&amp;#039;&amp;#039;&amp;#039; should be selected in the &amp;#039;&amp;#039;&amp;#039;Files of Type&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
In Visual Prolog v.7 we use a single bitmap for each button and automatically draw different state ornamentations for the &amp;#039;&amp;#039;released&amp;#039;&amp;#039; state, the &amp;#039;&amp;#039;pressed&amp;#039;&amp;#039; state, and the &amp;#039;&amp;#039;disabled&amp;#039;&amp;#039; state of the button.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|If the &amp;#039;&amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&amp;#039; button is pressed, then the {{ide|Resource Editor#Graphics Editor|&amp;#039;&amp;#039;&amp;#039;Graphics Editor&amp;#039;&amp;#039;&amp;#039;}} will come up with the given bitmap allowing you to view and edit the bitmap.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Text Control Attributes =====&lt;br /&gt;
&lt;br /&gt;
Double-clicking a Static Text or a Context Sensitive Text control calls the &amp;#039;&amp;#039;&amp;#039;Text Attributes&amp;#039;&amp;#039;&amp;#039; dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_Toolbar_TextControl.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Specifying properties of text controls in a toolbar&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The following information must be specified:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;30%&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| width=&amp;quot;70%&amp;quot;|A constant name to identify the Text control.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Initial Text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The default text to display in the field.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Static&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;or&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;&amp;#039;Context Sensitive&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Select the appropriate text control type. The style can be changed at any time.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Font &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Select a font name, font style (Normal, Bold, Italic ...), and font size for the displayed text.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Text Width&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Determines a width in pixels of the Text control field. It can be entered manually or, by pushing the &amp;#039;&amp;#039;&amp;#039;&amp;quot;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;lt;---Text---&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;#039;&amp;#039;&amp;#039; button. In this case the width of the field will be optimized to display the &amp;#039;&amp;#039;&amp;#039;Initial Text&amp;#039;&amp;#039;&amp;#039; with the selected Font.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Foreground Color&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Select the Foreground Color for the displayed text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== List Button Attributes =====&lt;br /&gt;
&lt;br /&gt;
Double-clicking a List Button control calls the &amp;#039;&amp;#039;&amp;#039;List Button Attributes&amp;#039;&amp;#039;&amp;#039; dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_Toolbar_ListButtonAttributes.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Specifying properties of list buttons in a toolbar&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
Only two parameters can be set for a list button in a toolbar:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;30%&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Constant &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| width=&amp;quot;70%&amp;quot;|A constant name to identify the List Button control.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Width &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Determines the width in pixels of the List Button control field.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor&amp;diff=3572</id>
		<title>Ide/Resource Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor&amp;diff=3572"/>
		<updated>2013-04-26T09:41:31Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|Resource Editor}}&lt;br /&gt;
&lt;br /&gt;
The term &amp;#039;&amp;#039;resource&amp;#039;&amp;#039; is applied to the things like dialogs, forms, icons, cursors, pens, brushes, etc. Resources can be created by one of the IDE resource editors, or just added to a project. The correspondent resource files are referenced from a project file.&lt;br /&gt;
&lt;br /&gt;
During project building IDE generates binary &amp;#039;&amp;#039;&amp;#039;ProjectName.res&amp;#039;&amp;#039;&amp;#039; file which is provided to a linker. IDE also generates &amp;lt;vp&amp;gt;resourceIdentifiers.i&amp;lt;/vp&amp;gt; file which specifies numeric constants for resource identifiers. Resource identifierd can be refered from sources codes to provide the proper resource handling. The names and values for resource identifiers can be set or changed with the help of IDE resource editors.&lt;br /&gt;
&lt;br /&gt;
== GUI and VPI Style Resources ==&lt;br /&gt;
&lt;br /&gt;
Historically windowing programs - that is, programs with the graphical user interface - were developed in Visual Prolog using the VPI (Visual Programming Interface) package supplied as one of packages in Prolog Foundation Classes (PFC).&lt;br /&gt;
&lt;br /&gt;
The Visual Programming Interface (VPI) is a high-level Application Programming Interface (API) and it is designed to make it easy for Prolog applications to provide sophisticated user interfaces utilizing the graphical capabilities of today&amp;#039;s operating systems and display hardware. The resources and tools needed by such applications - windows, menus, dialogs, controls, pens, brushes, cursors, carets, pictures, etc. all appear as simple Prolog structures.&lt;br /&gt;
&lt;br /&gt;
However, the VPI layer (PFC\vpi) provides an old style of handling the graphical user interface. This was the reason why the PDC has developed the modern GUI package (pfc\gui), which provides really object-oriented implementation of API handling of the main windowing system features. The GUI package presents the object-oriented windows, dialogs, forms, controls, etc., handling. This package is built on top of the VPI package and delivers a new level of abstraction and ease of use while retaining compatibility with VPI programs since both the GUI and VPI programming styles can be applied in the same program.&lt;br /&gt;
&lt;br /&gt;
Currently for new GUI applications the IDE generates the default program code which use the GUI package features (but it still possible to edit old VPI style dialogs, etc.).&lt;br /&gt;
&lt;br /&gt;
Notice that in VPI style programs, except for &amp;#039;&amp;#039;VPI style dialogs&amp;#039;&amp;#039; and &amp;#039;&amp;#039;VPI style windows&amp;#039;&amp;#039; you can also create &amp;#039;&amp;#039;GUI style forms&amp;#039;&amp;#039;, which, of course, are handled by GUI package predicates. From the other side, since each GUI program includes the VPI package, so some VPI features can be embedded into GUI style programs.&lt;br /&gt;
&lt;br /&gt;
To understand difference of GUI and VPI style programs and difference of GUI and VPI style dialogs, windows, forms, controls, etc., we recommend to read carefully VPI and GUI programming tutorials on WEB.&lt;br /&gt;
&lt;br /&gt;
== IDE Designer ==&lt;br /&gt;
&lt;br /&gt;
Editing of dialogs, windows, form, and IDE Controls on the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039; are very closely related. The only real difference is that definitions of the VPI package dialogs are (normally) put into resource files, whereas GUI package dialogs, windows, and forms are always created dynamically by code.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Dialog ===&lt;br /&gt;
----&lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Dialog}}&lt;br /&gt;
&lt;br /&gt;
=== Editing a Dialog ===&lt;br /&gt;
----&lt;br /&gt;
{{:ide/Resource Editor/Editing a Dialog}}&lt;br /&gt;
&lt;br /&gt;
=== Creating and Editing a Window ===&lt;br /&gt;
----&lt;br /&gt;
The IDE does not support the creation or editing of the old-style VPI windows. You should use &lt;br /&gt;
{{ide|Resource Editor#Creating and Editing a Form|&amp;#039;&amp;#039;&amp;#039;Forms&amp;#039;&amp;#039;&amp;#039;}} instead of windows (see description of forms in the GUI package overview in the PFC part of Help for more details).&lt;br /&gt;
&lt;br /&gt;
However, the IDE automatically creates for GUI applications the special resource file &amp;#039;&amp;#039;&amp;#039;TaskWindow.win&amp;#039;&amp;#039;&amp;#039; which is placed if the TaskWindow sub-directory of the project root directory. This resource file can be later changed by the IDE resource editor.&lt;br /&gt;
&lt;br /&gt;
=== Creating and Editing a Form ===&lt;br /&gt;
---- &lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Form}}&lt;br /&gt;
&lt;br /&gt;
== Toolbar Editor ==&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Toolbar&amp;#039;&amp;#039;&amp;#039; editor allows you interactively create various kinds of toolbars.&lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Toolbar}}&lt;br /&gt;
&lt;br /&gt;
=== Editing a Toolbar ===&lt;br /&gt;
&lt;br /&gt;
{{:ide/Resource Editor/Editing a Toolbar}}&lt;br /&gt;
&lt;br /&gt;
== Menu Editor ==&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; can be used to create both pull-down menus (for windows), and pop-up menus (useful for object oriented user interfaces).&lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Menu}}&lt;br /&gt;
&lt;br /&gt;
==== Editing a Menu ====&lt;br /&gt;
&lt;br /&gt;
To edit a menu, double-click (or press &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039;) the name of a file with a menu description in the project tree in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window. For example &amp;#039;&amp;#039;&amp;#039;TaskMenu.mnu&amp;#039;&amp;#039;&amp;#039;. The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; dialog appears and you can create (or modify) whatever kind of a menu you wish.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_MenuTask.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; dialog allows you to modify or delete existing menu items or add new ones. The main pane in this dialog contains the tree of menu items of the edited (it is &amp;#039;&amp;#039;&amp;#039;TaskMenu&amp;#039;&amp;#039;&amp;#039; in the picture) menu.&lt;br /&gt;
&lt;br /&gt;
By pressing the &amp;#039;&amp;#039;&amp;#039;New&amp;#039;&amp;#039;&amp;#039; toolbar buttons it is possible to create new menu items and sub-items. You can use: [[Image:Ide_MenuEdit_First.png]] - the &amp;#039;&amp;#039;&amp;#039;New First Item&amp;#039;&amp;#039;&amp;#039;, [[Image:Ide_MenuEdit_New.png]] - the next &amp;#039;&amp;#039;&amp;#039;New Item&amp;#039;&amp;#039;&amp;#039; , and [[Image:Ide_MenuEdit_Subitem.png]] - the menu &amp;#039;&amp;#039;&amp;#039;New SubItem&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Menu items can optionally be grouped by inserting separators. To insert a separator just click the &amp;#039;&amp;#039;&amp;#039;New Separator&amp;#039;&amp;#039;&amp;#039; toolbar button [[Image:Ide_MenuEdit_Separator.png]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039; operations for selected menu items (with all their submenu items) can be executed with &amp;#039;&amp;#039;&amp;#039;Ctrl+X&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Ctrl+C&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Ctrl+V&amp;#039;&amp;#039;&amp;#039; keyboard accelerators.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; can create nested menus of any level. To enter/create a submenu for the selected menu item click the &amp;#039;&amp;#039;&amp;#039;Submenu&amp;#039;&amp;#039;&amp;#039; button [[Image:Ide_MenuEdit_Subitem.png]].&lt;br /&gt;
&lt;br /&gt;
By pressing the &amp;#039;&amp;#039;&amp;#039;Test&amp;#039;&amp;#039;&amp;#039; toolbar button [[Image:Ide_MenuEdit_Test.png]] you activate the test mode in which the edited menu will be displayed instead of the main IDE menu. You can open it submenus, etc. To exit the test mode, you can click somewhere in the IDE window out of the tested menu.&lt;br /&gt;
&lt;br /&gt;
===== Customizing Menu Item Attributes =====&lt;br /&gt;
&lt;br /&gt;
In the bottom of the menu editor dialog you see the big pane (the &amp;#039;&amp;#039;&amp;#039;Menu Tree&amp;#039;&amp;#039;&amp;#039; pane) in which you can see the edited menu tree. Menu items prefixed with the plus [[Image:Ide_Plus_Icon.png]] icon have submenus. Click the plus [[Image:Ide_Plus_Icon.png]] icon or press the right arrow on the keypad to expand one level of such submenu. Notice that the plus [[Image:Ide_Plus_Icon.png]] icon before expanded menu items is changed for the minus [[Image:Ide_Minus_Icon.png]] icon.&lt;br /&gt;
&lt;br /&gt;
When you select any menu item in the menu tree, the menu editor controls display attributes of this menu item. For each menu item the programmer can specify the following attributes:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Item Title&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Select a menu item in the &amp;#039;&amp;#039;&amp;#039;Menu Tree&amp;#039;&amp;#039;&amp;#039; pane and click the menu item title. The menu item title becomes surrounded by the frame like:&lt;br /&gt;
*:[[Image:Ide_MenuEdit_Title.png]]&lt;br /&gt;
*:Here you can specify/edit the menu item title (name).&lt;br /&gt;
*:* The menu item title may contain up to 255 characters. It may include the &amp;#039;&amp;#039;&amp;#039;\t&amp;#039;&amp;#039;&amp;#039; (tab) escape sequence.&lt;br /&gt;
*:* In the menu item title the ampersand symbol &amp;#039;&amp;#039;&amp;#039;&amp;amp;&amp;#039;&amp;#039;&amp;#039; can be used for indicating that the following character is to be underlined. For example, if you type in the string &amp;#039;&amp;#039;&amp;#039;&amp;amp;Contents&amp;#039;&amp;#039;&amp;#039;, then at runtime this menu item will be displayed as &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039;ontents&amp;#039;&amp;#039;&amp;#039;. I.e. the character &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt; will be displayed underlined (thus visually indicating that the &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt; is an accelerator key). The underlined character should be unique on each level of a menu. If you need to display the &amp;#039;&amp;#039;&amp;#039;&amp;amp;&amp;#039;&amp;#039;&amp;#039; character, use two &amp;#039;&amp;#039;&amp;#039;&amp;amp;&amp;amp;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Item Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The &amp;#039;&amp;#039;&amp;#039;Item Constant&amp;#039;&amp;#039;&amp;#039; input box is where you can select or type in the symbolic (or integer) constant that will be used as the menu item identifier. It can be typed-in directly from the keyboard or selected from the list of available constants (by clicking the [[Image:Ide_ListButton_Button.png]] button). It must be either a legal symbolic constant (for example, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;id_help_contents&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;) or an integer value.&lt;br /&gt;
*:&amp;lt;br /&amp;gt;If you enter a symbolic constant name, then the IDE automatically places this symbolic constant into the &amp;#039;&amp;#039;&amp;#039;resourceidentifiers.i&amp;#039;&amp;#039;&amp;#039; file and generates an appropriate integer value for it. The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; automatically generates the default symbolic constant name (for example, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;id_file_exit&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;) from the &amp;#039;&amp;#039;&amp;#039;Constant Prefix&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;id_file&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; and names of menu items (&amp;#039;&amp;#039;&amp;#039;Exit&amp;#039;&amp;#039;&amp;#039; on the picture).&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Constant Prefix&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The &amp;#039;&amp;#039;&amp;#039;Constant Prefix&amp;#039;&amp;#039;&amp;#039; edit control is where you can input a common prefix for all &amp;#039;&amp;#039;item constants&amp;#039;&amp;#039; of menu items on the current level of submenu.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Checked&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Set the initial state of the menu item to Checked.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Disabled&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Specifies that initially the menu item will be Disabled.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Accelerator&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:In the &amp;#039;&amp;#039;&amp;#039;Accelerator&amp;#039;&amp;#039;&amp;#039; group box you can set an accelerator key (hot key), which will be used to activate this menu item. The accelerator key can be defined as a combination of a basic accelerator key and of the &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Ctrl&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Alt&amp;#039;&amp;#039;&amp;#039; keys. The basic accelerator key can be typed in or chosen from the list in the list edit control. To specify the desired &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Ctrl&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Alt&amp;#039;&amp;#039;&amp;#039; keys check on the corresponding check box. To assign more than one accelerator key to a menu item, use the &amp;lt;vp&amp;gt;vpi::setAccelerators/1&amp;lt;/vp&amp;gt; predicate.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Help Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:In this list button control you can select one of constants of the existing first-level menu items. The &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; (system handling) menu item (in MDI mode) will be placed just before the first-level menu item with this constant.&lt;br /&gt;
*:&amp;lt;br /&amp;gt;Notice that this possibility can be used only for MDI applications. (It is ignored for non-MDI applications since they do not have the &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; (system handling) menu item.&lt;br /&gt;
&lt;br /&gt;
===== Editing the Window Submenu =====&lt;br /&gt;
&lt;br /&gt;
In MDI applications Windows automatically add the &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; first-level menu item, which, by default, is placed after (the most right) all other user-created first-level menu items in each application menu. By default, it contains the &amp;#039;&amp;#039;&amp;#039;Tile&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Cascade&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Arrange Icons&amp;#039;&amp;#039;&amp;#039; menu commands and in the bottom of this menu are listed titles of all opened MDI document windows.&lt;br /&gt;
&lt;br /&gt;
To customize items of the &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; submenu, the programmer should create a new menu with the Item Constant equal to &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;mdiwindow_menu&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;. This menu should include only one level of menu items. Notice that since this user-designed submenu will be used instead of the default system &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; submenu, so handling of ALL its menu commands should be explicitly programmed. For instance, handling of the &amp;#039;&amp;#039;&amp;#039;Tile&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Cascade&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Arrange Icons&amp;#039;&amp;#039;&amp;#039; menu commands should be programmed if they are included into the designed menu.&lt;br /&gt;
&lt;br /&gt;
== Graphics Editor ==&lt;br /&gt;
&lt;br /&gt;
=== About the Graphics Editor ===&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor is a convenient tool for creating, viewing and editing icons, cursors and small bitmaps. The images can be passed to the Windows Clipboard or saved in files.&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor allows you to create and edit images ranging in size from 4x4 pixels to 64x64 pixels, by using either a 16-color palette or monochrome shadow palette.&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor is invoked from the Project window for Icons, Cursors and Bitmaps. However, when you register large bitmaps in your project, Visual Prolog will call to edit the bitmap an external editor associated in Windows for editing files with .BMP extension.&lt;br /&gt;
&lt;br /&gt;
After the Graphics Editor is started, the Graphics Editor window will appear on the screen.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ProjectIcon.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Graphics editor window&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
When you create a new image in a project, you need to specify the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; of the image, the Constant (resource ID) which will be identify the image in the project, the name of the &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039;, in which the image will be saved, its size, and how many colors it will have.&lt;br /&gt;
&lt;br /&gt;
=== Graphics Editor Menus ===&lt;br /&gt;
&lt;br /&gt;
When the Graphics Editor window is active, the Integrated Development Environment&amp;#039;s menu bar displays the Graphics Editor sub-menus of the &amp;#039;&amp;#039;&amp;#039;Resource&amp;#039;&amp;#039;&amp;#039; menu and looks as follows:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_Menu.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Visual Prolog menu bar when the Graphics Editor is active&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
Note that there are 2 menu items: &amp;#039;&amp;#039;&amp;#039;Set Mirror Style&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Set Cursor Hotspot&amp;#039;&amp;#039;&amp;#039; and 2 sub-menus: &amp;#039;&amp;#039;&amp;#039;Tools&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Move&amp;#039;&amp;#039;&amp;#039;. Also some menu items under the &amp;#039;&amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&amp;#039; menu (like the &amp;#039;&amp;#039;&amp;#039;Undo&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Redo&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039;) are specially tailored for the Graphics Editor, and the &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; menu operations refer now to the image files.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Image ===&lt;br /&gt;
&lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Image}}&lt;br /&gt;
&lt;br /&gt;
=== Editing Image Attributes ===&lt;br /&gt;
&lt;br /&gt;
You can always wake up (with the &amp;#039;&amp;#039;&amp;#039;Resource | Attribute&amp;#039;&amp;#039;&amp;#039; task menu item or with the &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; item from pop up menu) the &amp;#039;&amp;#039;&amp;#039;Bitmap/Cursor/Icon Attributes&amp;#039;&amp;#039;&amp;#039; dialog for the created bitmap, cursor or icon to view and change some image attributes.&lt;br /&gt;
&lt;br /&gt;
Notice that the appeared &amp;#039;&amp;#039;&amp;#039;Bitmap Attributes&amp;#039;&amp;#039;&amp;#039; dialog for an existing bitmap will display less bitmap attributes then it has for created bitmaps:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ExistingBitmapAttributes.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Bitmap Attributes dialog for an existing bitmap&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
You see that for existing bitmap the dialog does not contain the &amp;#039;&amp;#039;&amp;#039;Width&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Height&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Color&amp;#039;&amp;#039;&amp;#039; attributes.&lt;br /&gt;
&lt;br /&gt;
The only image attribute that you can edit is the &amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039;.:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039; list edit the programmer can change the default resource constant for the image (at the picture it is &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idb_mybitmap&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
{{:ide/Resource Editor/Graphics Editor}}&lt;br /&gt;
{{:ide/Resource Editor/Graphics Tools and Colors}}&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor&amp;diff=3571</id>
		<title>Ide/Resource Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor&amp;diff=3571"/>
		<updated>2013-04-26T09:28:50Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|Resource Editor}}&lt;br /&gt;
&lt;br /&gt;
The term &amp;#039;&amp;#039;resource&amp;#039;&amp;#039; is applied to the things like dialogs, forms, icons, cursors, pens, brushes, etc. Resources can be created by one of the IDE resource editors, or just added to a project. The correspondent resource files are referenced from a project file.&lt;br /&gt;
&lt;br /&gt;
During project building IDE generates binary &amp;#039;&amp;#039;&amp;#039;ProjectName.res&amp;#039;&amp;#039;&amp;#039; file which is provided to a linker. IDE also generates &amp;lt;vp&amp;gt;resourceIdentifiers.i&amp;lt;/vp&amp;gt; file which specifies numeric constants for resource identifiers. Resource identifierd can be refered from sources codes to provide the proper resource handling. The names and values for resource identifiers can be set or changed with the help of IDE resource editors.&lt;br /&gt;
&lt;br /&gt;
== GUI and VPI Style Resources ==&lt;br /&gt;
&lt;br /&gt;
Historically windowing programs - that is, programs with the graphical user interface - were developed in Visual Prolog using the VPI (Visual Programming Interface) package supplied as one of packages in Prolog Foundation Classes (PFC).&lt;br /&gt;
&lt;br /&gt;
The Visual Programming Interface (VPI) is a high-level Application Programming Interface (API) and it is designed to make it easy for Prolog applications to provide sophisticated user interfaces utilizing the graphical capabilities of today&amp;#039;s operating systems and display hardware. The resources and tools needed by such applications - windows, menus, dialogs, controls, pens, brushes, cursors, carets, pictures, etc. all appear as simple Prolog structures.&lt;br /&gt;
&lt;br /&gt;
However, the VPI layer (PFC\vpi) provides an old style of handling the graphical user interface. This was the reason why the PDC has developed the modern GUI package (pfc\gui), which provides really object-oriented implementation of API handling of the main windowing system features. The GUI package presents the object-oriented windows, dialogs, forms, controls, etc., handling. This package is built on top of the VPI package and delivers a new level of abstraction and ease of use while retaining compatibility with VPI programs since both the GUI and VPI programming styles can be applied in the same program.&lt;br /&gt;
&lt;br /&gt;
Currently for new GUI applications the IDE generates the default program code which use the GUI package features (but it still possible to edit old VPI style dialogs, etc.).&lt;br /&gt;
&lt;br /&gt;
Notice that in VPI style programs, except for &amp;#039;&amp;#039;VPI style dialogs&amp;#039;&amp;#039; and &amp;#039;&amp;#039;VPI style windows&amp;#039;&amp;#039; you can also create &amp;#039;&amp;#039;GUI style forms&amp;#039;&amp;#039;, which, of course, are handled by GUI package predicates. From the other side, since each GUI program includes the VPI package, so some VPI features can be embedded into GUI style programs.&lt;br /&gt;
&lt;br /&gt;
To understand difference of GUI and VPI style programs and difference of GUI and VPI style dialogs, windows, forms, controls, etc., we recommend to read carefully VPI and GUI programming tutorials on WEB.&lt;br /&gt;
&lt;br /&gt;
== IDE Designer ==&lt;br /&gt;
&lt;br /&gt;
Editing of dialogs, windows, form, and IDE Controls on the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039; are very closely related. The only real difference is that definitions of the VPI package dialogs are (normally) put into resource files, whereas GUI package dialogs, windows, and forms are always created dynamically by code.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Dialog ===&lt;br /&gt;
----&lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Dialog}}&lt;br /&gt;
&lt;br /&gt;
=== Editing a Dialog ===&lt;br /&gt;
----&lt;br /&gt;
{{:ide/Resource Editor/Editing a Dialog}}&lt;br /&gt;
&lt;br /&gt;
=== Creating and Editing a Window ===&lt;br /&gt;
----&lt;br /&gt;
The IDE does not support the creation or editing of the old-style VPI windows. You should use &lt;br /&gt;
{{ide|Resource Editor#Creating and Editing a Form|&amp;#039;&amp;#039;&amp;#039;Forms&amp;#039;&amp;#039;&amp;#039;}} instead of windows (see description of forms in the GUI package overview in the PFC part of Help for more details).&lt;br /&gt;
&lt;br /&gt;
However, the IDE automatically creates for GUI applications the special resource file &amp;#039;&amp;#039;&amp;#039;TaskWindow.win&amp;#039;&amp;#039;&amp;#039; which is placed if the TaskWindow sub-directory of the project root directory. This resource file can be later changed by the IDE resource editor.&lt;br /&gt;
&lt;br /&gt;
=== Creating and Editing a Form ===&lt;br /&gt;
---- &lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Form}}&lt;br /&gt;
&lt;br /&gt;
== Toolbar Editor ==&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Toolbar&amp;#039;&amp;#039;&amp;#039; editor allows you interactively create various kinds of toolbars.&lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Toolbar}}&lt;br /&gt;
&lt;br /&gt;
=== Editing a Toolbar ===&lt;br /&gt;
&lt;br /&gt;
{{:ide/Creating new Project Items/Editing a Toolbar}}&lt;br /&gt;
&lt;br /&gt;
== Menu Editor ==&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; can be used to create both pull-down menus (for windows), and pop-up menus (useful for object oriented user interfaces).&lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Menu}}&lt;br /&gt;
&lt;br /&gt;
==== Editing a Menu ====&lt;br /&gt;
&lt;br /&gt;
To edit a menu, double-click (or press &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039;) the name of a file with a menu description in the project tree in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window. For example &amp;#039;&amp;#039;&amp;#039;TaskMenu.mnu&amp;#039;&amp;#039;&amp;#039;. The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; dialog appears and you can create (or modify) whatever kind of a menu you wish.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_MenuTask.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; dialog allows you to modify or delete existing menu items or add new ones. The main pane in this dialog contains the tree of menu items of the edited (it is &amp;#039;&amp;#039;&amp;#039;TaskMenu&amp;#039;&amp;#039;&amp;#039; in the picture) menu.&lt;br /&gt;
&lt;br /&gt;
By pressing the &amp;#039;&amp;#039;&amp;#039;New&amp;#039;&amp;#039;&amp;#039; toolbar buttons it is possible to create new menu items and sub-items. You can use: [[Image:Ide_MenuEdit_First.png]] - the &amp;#039;&amp;#039;&amp;#039;New First Item&amp;#039;&amp;#039;&amp;#039;, [[Image:Ide_MenuEdit_New.png]] - the next &amp;#039;&amp;#039;&amp;#039;New Item&amp;#039;&amp;#039;&amp;#039; , and [[Image:Ide_MenuEdit_Subitem.png]] - the menu &amp;#039;&amp;#039;&amp;#039;New SubItem&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Menu items can optionally be grouped by inserting separators. To insert a separator just click the &amp;#039;&amp;#039;&amp;#039;New Separator&amp;#039;&amp;#039;&amp;#039; toolbar button [[Image:Ide_MenuEdit_Separator.png]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039; operations for selected menu items (with all their submenu items) can be executed with &amp;#039;&amp;#039;&amp;#039;Ctrl+X&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Ctrl+C&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Ctrl+V&amp;#039;&amp;#039;&amp;#039; keyboard accelerators.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; can create nested menus of any level. To enter/create a submenu for the selected menu item click the &amp;#039;&amp;#039;&amp;#039;Submenu&amp;#039;&amp;#039;&amp;#039; button [[Image:Ide_MenuEdit_Subitem.png]].&lt;br /&gt;
&lt;br /&gt;
By pressing the &amp;#039;&amp;#039;&amp;#039;Test&amp;#039;&amp;#039;&amp;#039; toolbar button [[Image:Ide_MenuEdit_Test.png]] you activate the test mode in which the edited menu will be displayed instead of the main IDE menu. You can open it submenus, etc. To exit the test mode, you can click somewhere in the IDE window out of the tested menu.&lt;br /&gt;
&lt;br /&gt;
===== Customizing Menu Item Attributes =====&lt;br /&gt;
&lt;br /&gt;
In the bottom of the menu editor dialog you see the big pane (the &amp;#039;&amp;#039;&amp;#039;Menu Tree&amp;#039;&amp;#039;&amp;#039; pane) in which you can see the edited menu tree. Menu items prefixed with the plus [[Image:Ide_Plus_Icon.png]] icon have submenus. Click the plus [[Image:Ide_Plus_Icon.png]] icon or press the right arrow on the keypad to expand one level of such submenu. Notice that the plus [[Image:Ide_Plus_Icon.png]] icon before expanded menu items is changed for the minus [[Image:Ide_Minus_Icon.png]] icon.&lt;br /&gt;
&lt;br /&gt;
When you select any menu item in the menu tree, the menu editor controls display attributes of this menu item. For each menu item the programmer can specify the following attributes:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Item Title&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Select a menu item in the &amp;#039;&amp;#039;&amp;#039;Menu Tree&amp;#039;&amp;#039;&amp;#039; pane and click the menu item title. The menu item title becomes surrounded by the frame like:&lt;br /&gt;
*:[[Image:Ide_MenuEdit_Title.png]]&lt;br /&gt;
*:Here you can specify/edit the menu item title (name).&lt;br /&gt;
*:* The menu item title may contain up to 255 characters. It may include the &amp;#039;&amp;#039;&amp;#039;\t&amp;#039;&amp;#039;&amp;#039; (tab) escape sequence.&lt;br /&gt;
*:* In the menu item title the ampersand symbol &amp;#039;&amp;#039;&amp;#039;&amp;amp;&amp;#039;&amp;#039;&amp;#039; can be used for indicating that the following character is to be underlined. For example, if you type in the string &amp;#039;&amp;#039;&amp;#039;&amp;amp;Contents&amp;#039;&amp;#039;&amp;#039;, then at runtime this menu item will be displayed as &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039;ontents&amp;#039;&amp;#039;&amp;#039;. I.e. the character &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt; will be displayed underlined (thus visually indicating that the &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt; is an accelerator key). The underlined character should be unique on each level of a menu. If you need to display the &amp;#039;&amp;#039;&amp;#039;&amp;amp;&amp;#039;&amp;#039;&amp;#039; character, use two &amp;#039;&amp;#039;&amp;#039;&amp;amp;&amp;amp;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Item Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The &amp;#039;&amp;#039;&amp;#039;Item Constant&amp;#039;&amp;#039;&amp;#039; input box is where you can select or type in the symbolic (or integer) constant that will be used as the menu item identifier. It can be typed-in directly from the keyboard or selected from the list of available constants (by clicking the [[Image:Ide_ListButton_Button.png]] button). It must be either a legal symbolic constant (for example, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;id_help_contents&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;) or an integer value.&lt;br /&gt;
*:&amp;lt;br /&amp;gt;If you enter a symbolic constant name, then the IDE automatically places this symbolic constant into the &amp;#039;&amp;#039;&amp;#039;resourceidentifiers.i&amp;#039;&amp;#039;&amp;#039; file and generates an appropriate integer value for it. The &amp;#039;&amp;#039;&amp;#039;Menu Editor&amp;#039;&amp;#039;&amp;#039; automatically generates the default symbolic constant name (for example, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;id_file_exit&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;) from the &amp;#039;&amp;#039;&amp;#039;Constant Prefix&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;id_file&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; and names of menu items (&amp;#039;&amp;#039;&amp;#039;Exit&amp;#039;&amp;#039;&amp;#039; on the picture).&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Constant Prefix&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The &amp;#039;&amp;#039;&amp;#039;Constant Prefix&amp;#039;&amp;#039;&amp;#039; edit control is where you can input a common prefix for all &amp;#039;&amp;#039;item constants&amp;#039;&amp;#039; of menu items on the current level of submenu.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Checked&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Set the initial state of the menu item to Checked.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Disabled&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Specifies that initially the menu item will be Disabled.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Accelerator&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:In the &amp;#039;&amp;#039;&amp;#039;Accelerator&amp;#039;&amp;#039;&amp;#039; group box you can set an accelerator key (hot key), which will be used to activate this menu item. The accelerator key can be defined as a combination of a basic accelerator key and of the &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Ctrl&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Alt&amp;#039;&amp;#039;&amp;#039; keys. The basic accelerator key can be typed in or chosen from the list in the list edit control. To specify the desired &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Ctrl&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Alt&amp;#039;&amp;#039;&amp;#039; keys check on the corresponding check box. To assign more than one accelerator key to a menu item, use the &amp;lt;vp&amp;gt;vpi::setAccelerators/1&amp;lt;/vp&amp;gt; predicate.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Help Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:In this list button control you can select one of constants of the existing first-level menu items. The &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; (system handling) menu item (in MDI mode) will be placed just before the first-level menu item with this constant.&lt;br /&gt;
*:&amp;lt;br /&amp;gt;Notice that this possibility can be used only for MDI applications. (It is ignored for non-MDI applications since they do not have the &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; (system handling) menu item.&lt;br /&gt;
&lt;br /&gt;
===== Editing the Window Submenu =====&lt;br /&gt;
&lt;br /&gt;
In MDI applications Windows automatically add the &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; first-level menu item, which, by default, is placed after (the most right) all other user-created first-level menu items in each application menu. By default, it contains the &amp;#039;&amp;#039;&amp;#039;Tile&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Cascade&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Arrange Icons&amp;#039;&amp;#039;&amp;#039; menu commands and in the bottom of this menu are listed titles of all opened MDI document windows.&lt;br /&gt;
&lt;br /&gt;
To customize items of the &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; submenu, the programmer should create a new menu with the Item Constant equal to &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;mdiwindow_menu&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;. This menu should include only one level of menu items. Notice that since this user-designed submenu will be used instead of the default system &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; submenu, so handling of ALL its menu commands should be explicitly programmed. For instance, handling of the &amp;#039;&amp;#039;&amp;#039;Tile&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Cascade&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Arrange Icons&amp;#039;&amp;#039;&amp;#039; menu commands should be programmed if they are included into the designed menu.&lt;br /&gt;
&lt;br /&gt;
== Graphics Editor ==&lt;br /&gt;
&lt;br /&gt;
=== About the Graphics Editor ===&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor is a convenient tool for creating, viewing and editing icons, cursors and small bitmaps. The images can be passed to the Windows Clipboard or saved in files.&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor allows you to create and edit images ranging in size from 4x4 pixels to 64x64 pixels, by using either a 16-color palette or monochrome shadow palette.&lt;br /&gt;
&lt;br /&gt;
The Graphics Editor is invoked from the Project window for Icons, Cursors and Bitmaps. However, when you register large bitmaps in your project, Visual Prolog will call to edit the bitmap an external editor associated in Windows for editing files with .BMP extension.&lt;br /&gt;
&lt;br /&gt;
After the Graphics Editor is started, the Graphics Editor window will appear on the screen.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ProjectIcon.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Graphics editor window&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
When you create a new image in a project, you need to specify the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; of the image, the Constant (resource ID) which will be identify the image in the project, the name of the &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039;, in which the image will be saved, its size, and how many colors it will have.&lt;br /&gt;
&lt;br /&gt;
=== Graphics Editor Menus ===&lt;br /&gt;
&lt;br /&gt;
When the Graphics Editor window is active, the Integrated Development Environment&amp;#039;s menu bar displays the Graphics Editor sub-menus of the &amp;#039;&amp;#039;&amp;#039;Resource&amp;#039;&amp;#039;&amp;#039; menu and looks as follows:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_Menu.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Visual Prolog menu bar when the Graphics Editor is active&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
Note that there are 2 menu items: &amp;#039;&amp;#039;&amp;#039;Set Mirror Style&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Set Cursor Hotspot&amp;#039;&amp;#039;&amp;#039; and 2 sub-menus: &amp;#039;&amp;#039;&amp;#039;Tools&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Move&amp;#039;&amp;#039;&amp;#039;. Also some menu items under the &amp;#039;&amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&amp;#039; menu (like the &amp;#039;&amp;#039;&amp;#039;Undo&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Redo&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039;) are specially tailored for the Graphics Editor, and the &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; menu operations refer now to the image files.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Image ===&lt;br /&gt;
&lt;br /&gt;
{{:ide/Creating new Project Items/Creating a Image}}&lt;br /&gt;
&lt;br /&gt;
=== Editing Image Attributes ===&lt;br /&gt;
&lt;br /&gt;
You can always wake up (with the &amp;#039;&amp;#039;&amp;#039;Resource | Attribute&amp;#039;&amp;#039;&amp;#039; task menu item or with the &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; item from pop up menu) the &amp;#039;&amp;#039;&amp;#039;Bitmap/Cursor/Icon Attributes&amp;#039;&amp;#039;&amp;#039; dialog for the created bitmap, cursor or icon to view and change some image attributes.&lt;br /&gt;
&lt;br /&gt;
Notice that the appeared &amp;#039;&amp;#039;&amp;#039;Bitmap Attributes&amp;#039;&amp;#039;&amp;#039; dialog for an existing bitmap will display less bitmap attributes then it has for created bitmaps:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GE_ExistingBitmapAttributes.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Bitmap Attributes dialog for an existing bitmap&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
You see that for existing bitmap the dialog does not contain the &amp;#039;&amp;#039;&amp;#039;Width&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Height&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Color&amp;#039;&amp;#039;&amp;#039; attributes.&lt;br /&gt;
&lt;br /&gt;
The only image attribute that you can edit is the &amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039;.:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039; list edit the programmer can change the default resource constant for the image (at the picture it is &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;idb_mybitmap&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
{{:ide/Resource Editor/Graphics Editor}}&lt;br /&gt;
{{:ide/Resource Editor/Graphics Tools and Colors}}&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/GUI_Control_Properties_Table&amp;diff=3569</id>
		<title>Ide/Resource Editor/GUI Control Properties Table</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/GUI_Control_Properties_Table&amp;diff=3569"/>
		<updated>2013-04-25T11:33:22Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
===== GUI Control Properties Table =====&lt;br /&gt;
&lt;br /&gt;
When you open a GUI dialog or a form (GUI window) in the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;, then the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table also opens.&lt;br /&gt;
&lt;br /&gt;
The set of properties displayed in the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table depends on the control type and contains two groups of properties:&lt;br /&gt;
&lt;br /&gt;
*{{ide|Resource Editor#Common Properties of Almost All GUI Controls|&amp;#039;&amp;#039;&amp;#039;General properties&amp;#039;&amp;#039;&amp;#039;}} are common to all types of controls.&amp;lt;br/&amp;gt;These are: &amp;#039;&amp;#039;&amp;#039;Left Anchor&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Top Anchor&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Right Anchor&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Bottom Anchor&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Container Name&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Enabled&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Lock to Container&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Representation&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;TabStop&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039;,  &amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Width&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Height&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Visible&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*{{ide|Resource Editor#Specific Properties of Different GUI Control Types|&amp;#039;&amp;#039;&amp;#039;Specific properties&amp;#039;&amp;#039;&amp;#039;}} are individual to different types of GUI controls.&amp;lt;br/&amp;gt;These are: &amp;#039;&amp;#039;&amp;#039;3State&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AlignBaseline&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Alignment&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AllowPartialRows&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Auto&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AutoNotify&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AutoHScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AutoVScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Border&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Case&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Class&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;ExtendedSel&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;HideSel&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;HScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Icon Name&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;IgnorePrefix&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;LeftText&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;MultiColumn&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;MultiLine&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;MultiSelect&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Password&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;ReadOnly&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Rows&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Sort&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;StaticScrollbar&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Style&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;UseTabStops&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;VScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;WantReturn&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Wrap&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
In &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table you can edit the displayed properties of the selected GUI control.&lt;br /&gt;
&lt;br /&gt;
Initially this table is empty. However, as soon as any of GUI controls in the edited GUI dialog (form) is selected, the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table displays the current set of properties of the selected control.&lt;br /&gt;
&lt;br /&gt;
If the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table is closed, double-click a control to show the table. The &amp;#039;&amp;#039;&amp;#039;Control Attributes&amp;#039;&amp;#039;&amp;#039; command, from the {{ide|Resource Editor#Speed Menu|speed menu}} of the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;, can also be used to open the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table.&lt;br /&gt;
&lt;br /&gt;
===== Common Properties of Almost All GUI Controls =====&lt;br /&gt;
&lt;br /&gt;
There are some basic control properties, which are used by almost all GUI controls. These are:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:The &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; input box is where you can specify some correct Visual Prolog name, which will be used as the control name (identifier).&lt;br /&gt;
:The default &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; is generated from the &amp;#039;&amp;#039;control type&amp;#039;&amp;#039; (for example, &amp;#039;&amp;#039;pushButton&amp;#039;&amp;#039;, &amp;#039;&amp;#039;checkBox&amp;#039;&amp;#039;, &amp;#039;&amp;#039;listButton&amp;#039;&amp;#039;, etc.) and the &amp;lt;vp&amp;gt;_ctl&amp;lt;/vp&amp;gt; suffix. If several controls of the same type are created, then the &amp;#039;&amp;#039;control type&amp;#039;&amp;#039; is suffixed with the number, for example, &amp;lt;vp&amp;gt;pushButton&amp;lt;/vp&amp;gt;&amp;lt;vp&amp;gt;1&amp;lt;/vp&amp;gt;&amp;lt;vp&amp;gt;_ctl&amp;lt;/vp&amp;gt;. &lt;br /&gt;
:You can edit this default name or simply type in your own version.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Representation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:This property can have one of the following two values: &amp;#039;&amp;#039;&amp;#039;Fact Variable&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Variable&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Fact Variable&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::When &amp;#039;&amp;#039;&amp;#039;Fact Variable&amp;#039;&amp;#039;&amp;#039; is specified, then the IDE generates the fact variable, which will store the object of the control. This fact variable is used to reference to this control in the code. This fact variable name is determined by the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; property. For example, &amp;lt;vp&amp;gt;ok_ctl&amp;lt;/vp&amp;gt;. Notice that in this case the fact variable name is automatically converted to be started with the lowercase character.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Variable&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::When &amp;#039;&amp;#039;&amp;#039;Variable&amp;#039;&amp;#039;&amp;#039; is specified, then the IDE unifies the object of the control with an ordinary variable. This variable will be used to reference to this control in the code. This variable name is determined by the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; property. For example, &amp;lt;vp&amp;gt;Cancel_ctl&amp;lt;/vp&amp;gt;. Notice that in this case the variable name is automatically converted to be started with the uppercase character.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;Fact Variable&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:The &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039; property is where you specify the title (label), which you want to be displayed as the control caption.&lt;br /&gt;
:One character in the Title text may be underlined to indicate an access key. To underline a character precede it with the ampersand &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; character. At runtime this character in the control &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039; will be underlined.&lt;br /&gt;
:Notice that this character is displayed underlined also in the value cell of the &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039; property:&lt;br /&gt;
:[[Image:Ide_GUI_Prop_Title.png]]&lt;br /&gt;
:The used ampersand &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; character is seen only when the value cell of the &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039; property has the focus:&lt;br /&gt;
:[[Image:Ide_GUI_Prop_Title2.png]]&lt;br /&gt;
:If you need to display the ampersand &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; character in the &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039; text, then use two of them &amp;lt;vp&amp;gt;&amp;amp;&amp;amp;&amp;lt;/vp&amp;gt;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Lock to Container&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; defines that the control is locked inside the container selected in the &amp;#039;&amp;#039;&amp;#039;Container Name&amp;#039;&amp;#039;&amp;#039; property.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Container Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this list box you can select the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; of one of containers (currently only the group box &amp;lt;vp&amp;gt;groupBox&amp;lt;/vp&amp;gt; type of containers is supported) defined in the dialog or in the form.&lt;br /&gt;
:All controls belonging to the same container are in the same &amp;#039;&amp;#039;group&amp;#039;&amp;#039; of related controls. The user may use the arrow keys to move from one control in the &amp;#039;&amp;#039;group&amp;#039;&amp;#039; to the next one.&lt;br /&gt;
:Only the &amp;#039;&amp;#039;&amp;#039;Names&amp;#039;&amp;#039;&amp;#039; of group boxes, inside which the control is placed, appear in the list of &amp;#039;&amp;#039;&amp;#039;Container Name&amp;#039;&amp;#039;&amp;#039; property values. For example, if you see:&lt;br /&gt;
:[[Image:Ide_GUI_Prop_Container.png]]&lt;br /&gt;
:this means that the control is placed inside two group boxes with names &amp;lt;vp&amp;gt;GroupBox_ctl&amp;lt;/vp&amp;gt; and &amp;lt;vp&amp;gt;GroupBox1_ctl&amp;lt;/vp&amp;gt;.&lt;br /&gt;
:If you do not need to relate the control to any container, then you should select &amp;lt;vp&amp;gt;[none]&amp;lt;/vp&amp;gt;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Width&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Height&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:These properties determine the control coordinates and size:&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::The &amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039; coordinate of the upper-left corner of the control (in Dialog Base Units).&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::The &amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039; coordinate of the upper-left corner of the control (in Dialog Base Units).&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Width&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::The &amp;#039;&amp;#039;&amp;#039;Width&amp;#039;&amp;#039;&amp;#039; of the control (in Dialog Base Units).&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Height&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::The &amp;#039;&amp;#039;&amp;#039;Height&amp;#039;&amp;#039;&amp;#039; of the control (in Dialog Base Units).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Top&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Bottom Anchors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:These properties determine how the control coordinates (and may be size) will be handled when the dialog or form (containing this control) is resized. The general rules are described in the &amp;quot;{{ide|Resource Editor#Using Anchors for Positioning GUI Controls while Dialog Resizing|&amp;#039;&amp;#039;&amp;#039;Using Anchors for Positioning GUI Controls while Dialog Resizing&amp;#039;&amp;#039;&amp;#039;}}&amp;quot;.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Left Anchor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; defines that the &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039; boundary of the control is always positioned at the specified distance (equal to the &amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039; property) from the &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039; boundary of the dialog (form) containing this control.&lt;br /&gt;
::The distance is specified in the Dialog Base Units.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Top Anchor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; defines that the &amp;#039;&amp;#039;&amp;#039;Top&amp;#039;&amp;#039;&amp;#039; of the control is always positioned at the specified distance (equal to the &amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039; property) from the &amp;#039;&amp;#039;&amp;#039;Top&amp;#039;&amp;#039;&amp;#039; boundary of the dialog (form) containing this control.&lt;br /&gt;
::The distance is specified in the Dialog Base Units.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Right Anchor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; defines that the &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039; boundary of the control is always positioned at the specified distance from the &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039; boundary of the dialog (form) containing this control.&lt;br /&gt;
::The distance is specified in the Dialog Base Units. The distance value can be seen near the arrow, which appears when the control is selected &amp;quot;{{ide|Resource Editor#Using Anchors for Positioning GUI Controls while Dialog Resizing|&amp;#039;&amp;#039;&amp;#039;Using Anchors for Positioning GUI Controls while Dialog Resizing&amp;#039;&amp;#039;&amp;#039;}}&amp;quot;.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Bottom Anchor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; defines that the &amp;#039;&amp;#039;&amp;#039;Bottom&amp;#039;&amp;#039;&amp;#039; of the control is always positioned at the specified distance from the &amp;#039;&amp;#039;&amp;#039;Bottom&amp;#039;&amp;#039;&amp;#039; boundary of the dialog (form) containing this control.&lt;br /&gt;
::The distance is specified in the Dialog Base Units. The distance value can be seen near the arrow, which appears when the control is selected &amp;quot;{{ide|Resource Editor#Using Anchors for Positioning GUI Controls while Dialog Resizing|&amp;#039;&amp;#039;&amp;#039;Using Anchors for Positioning GUI Controls while Dialog Resizing&amp;#039;&amp;#039;&amp;#039;}}&amp;quot;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Enabled&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the control will be created initially enabled (&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;) or disabled (&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;). The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (enabled).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;window::getEnabled/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control is enabled&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsEnabled = checkButtonName:getEnabled(),&lt;br /&gt;
IsEnabled = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;window::setEnabled/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsEnabled = true,&lt;br /&gt;
checkButtonName:setEnabled(IsEnabled),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Visible&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the control will be created initially visible (&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;) or invisible (&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;). The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (visible).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;window::getVisible/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control is visible&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsVisible = checkButtonName:getVisible(),&lt;br /&gt;
IsVisible = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;window::setVisible/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsVisible = true,&lt;br /&gt;
checkButtonName:setVisible(IsVisible),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;TabStop&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether this control belongs to a subset of controls through which the user can move using the TAB key. The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (the control belongs to a group of controls between which the user can navigate with TAB).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;control::getTabStop/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsTabStop = checkButtonName:getTabStop(),&lt;br /&gt;
IsTabStop = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;control::setTabStop/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsTabStop = true,&lt;br /&gt;
checkButtonName:setTabStop(IsTabStop),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
:If &amp;lt;vp&amp;gt;IsTabStop&amp;lt;/vp&amp;gt; is &amp;lt;vp&amp;gt;true&amp;lt;/vp&amp;gt;, then the focus will be able to jump to this control while the Tab pressing navigation. Pressing the TAB key moves the focus to the next control, which has the &amp;#039;&amp;#039;&amp;#039;TabStop&amp;#039;&amp;#039;&amp;#039; = &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===== Specific Properties of Different GUI Control Types =====&lt;br /&gt;
&lt;br /&gt;
The following properties are specific to different types of controls:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Auto&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether this control is an automatic (an automatic check box or an automatic radio button). When you click an automatic control, then it change its state in the proper way.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;checkButton::getStyle/2&amp;lt;/vp&amp;gt; and &amp;lt;vp&amp;gt;radioButton::getAuto/0-&amp;gt;&amp;lt;/vp&amp;gt; predicates to get whether this flag is set to a control:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;checkButtonName:getStyle(IsAuto, _Is3State),&lt;br /&gt;
IsAuto = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;checkButton::setStyle/2&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;radioButton::setAuto/1&amp;lt;/vp&amp;gt; predicates&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAuto = true,&lt;br /&gt;
checkButtonName:setStyle(IsAuto, _Is3State),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (auto).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;3State&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether this check box can have 3 states (&amp;#039;&amp;#039;unchecked, checked, undetermined&amp;#039;&amp;#039;). You can use the &amp;lt;vp&amp;gt;checkButton::getStyle/2&amp;lt;/vp&amp;gt; predicate to get whether this state is set to a control&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;checkButtonName:getStyle(_IsAuto, Is3State),&lt;br /&gt;
Is3State = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;checkButton::setStyle/2&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;Is3State = true,&lt;br /&gt;
checkButtonName:setStyle(_IsAuto, Is3State),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this state programmatically.&lt;br /&gt;
:A 3-states check box is the same as an ordinary check box, except that the box can be grayed (dimmed) as well as checked. The grayed state is used to show that the state of the check box is not determined.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (3State).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;LeftText&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the control title text should be positioned on the left or on the right of the control (check box or radio button).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;checkButton::getLeftText/0-&amp;gt;&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;radioButton::getLeftText/0-&amp;gt;&amp;lt;/vp&amp;gt; predicates to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsLeftText = checkButtonName:getLeftText(),&lt;br /&gt;
IsLeftText = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;checkButton:setLeftText/1&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;radioButton:setLeftText/1&amp;lt;/vp&amp;gt; predicates&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsLeftText = true,&lt;br /&gt;
checkButtonName:setLeftText(IsLeftText),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (caption is on the right side).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;AlignBaseline&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the control caption text should be positioned on the same horizontal line with caption texts of all other controls, which have the same vertical position with this control.&lt;br /&gt;
:This property is defined to all controls, which can have captions (static texts, check boxes, edit and list edit controls, etc.)&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;getAlignBaseline&amp;lt;/vp&amp;gt; predicates (like &amp;lt;vp&amp;gt;editControl::getAlignBaseline/0-&amp;gt;&amp;lt;/vp&amp;gt;) to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAllignBaseLine = checkButtonName:getAllignBaseLine(),&lt;br /&gt;
IsAllignBaseLine = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;setAlignBaseline&amp;lt;/vp&amp;gt; (like &amp;lt;vp&amp;gt;textControl::setAlignBaseline/1&amp;lt;/vp&amp;gt;) predicates&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAllignBaseLine = true,&lt;br /&gt;
checkButtonName:setAllignBaseLine(IsAllignBaseLine),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (align captions horizontally).&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Style&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Push buttons&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:For push buttons possible values are &amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Regular&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Push buttons with the &amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039; style are created by the &amp;lt;vp&amp;gt;button::newCancel/1&amp;lt;/vp&amp;gt; onstructor.&lt;br /&gt;
::When a dialog/form contains a push button with the &amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039; style, then this dialog/form will provide standard handling of the Esc key - the dialog/form is simply closed without any additional actions.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Push buttons with the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; style are created by the &amp;lt;vp&amp;gt;button::newOk/1&amp;lt;/vp&amp;gt; constructor.&lt;br /&gt;
::When a dialog/form contains a push button with the &amp;#039;&amp;#039;&amp;#039;Ok&amp;#039;&amp;#039;&amp;#039; style, then this dialog/form will execute dialog/form validation check when this button is clicked. See &amp;quot;&amp;#039;&amp;#039;&amp;#039;Dialog/Form Validation&amp;#039;&amp;#039;&amp;#039;&amp;quot; tutorial (on WEB) for more information.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Regular&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Push buttons with the &amp;#039;&amp;#039;&amp;#039;Regular&amp;#039;&amp;#039;&amp;#039; style are created by the ordinary &amp;lt;vp&amp;gt;button::new/1&amp;lt;/vp&amp;gt; constructor.&lt;br /&gt;
::Such buttons do not initiate any special default handling.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Group boxes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:For group boxes possible values are &amp;#039;&amp;#039;&amp;#039;Group Box&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Simple Border&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Horizontal Separator&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;No Border&amp;#039;&amp;#039;&amp;#039;. These values define the border type of the group box control.&lt;br /&gt;
:The default is &amp;#039;&amp;#039;&amp;#039;Simple Border&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;groupBox::getBorderStyle/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get the border style&lt;br /&gt;
:&amp;lt;vip&amp;gt;GroupBoxBorderStyle = controlName : getBorderStyle(),&amp;lt;/vip&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;groupBox::setBorderStyle/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;GroupBoxBorderStyle = groupBox(),&lt;br /&gt;
controlName : setBorderStyle(GroupBoxBorderStyle),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set the border style programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Alignment&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Center&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039;. Radio buttons in this group box determine how the text in the control is aligned.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039; (align left).&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the text in the control will be aligned left.&lt;br /&gt;
::You can use the &amp;lt;vp&amp;gt;textControl::getAlignment/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get which of these flags the control has&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;AlignmentType = textControlName : getAlignment(),&lt;br /&gt;
AlignmentType = alignLeft(),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
::and the &amp;lt;vp&amp;gt;textControl::setAlignment/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;AlignmentType = alignLeft(),&lt;br /&gt;
textControlName : setAlignment(AlignmentType),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
::to set this flag programmatically.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Center&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the text in the control will be centered.&lt;br /&gt;
::The &amp;lt;vp&amp;gt;AlignmentType = alignCenter()&amp;lt;/vp&amp;gt;.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the text in the control will be aligned right.&lt;br /&gt;
::The &amp;lt;vp&amp;gt;AlignmentType = alignRight()&amp;lt;/vp&amp;gt;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Wrap&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the text in the control will be wrapped to several lines.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (wrap).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;textControl::getWrap/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsNoWrap = textControlName : getWrap(),&lt;br /&gt;
IsNoWrap = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;textControl::setWrap/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsNoWrap = false,&lt;br /&gt;
textControlName: setWrap(IsNoWrap),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;IgnorePrefix&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. Setting &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; value prevents interpretation of any &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; characters in the caption of the static text control as access keys (accelerator prefix characters). Accelerator characters are displayed underlined and the prefix &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; character is deleted.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:Notice that static text controls cannot be activated. Therefore, when an access key of a static text control is pressed, then the control next to this static text control, in the tab-stop order of controls in the dialog, is activated.&lt;br /&gt;
:Most often this flag is used when filenames, which can contain the &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; character, need to be displayed in static text controls.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;textControl::getIgnorePrefix/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsIgnorePrefix = controlName : getIgnorePrefix(),&lt;br /&gt;
IsIgnorePrefix = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;textControl::setIgnorePrefix/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsIgnorePrefix = true,&lt;br /&gt;
controlName : setIgnorePrefix(IsIgnorePrefix),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;MultiLine&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. When this property is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the edit control allows multiple lines.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (allows multiple lines).&lt;br /&gt;
:Notice that the &amp;#039;&amp;#039;&amp;#039;VScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;HScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AutoVScroll&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;WantReturn&amp;#039;&amp;#039;&amp;#039; properties do not work for single-line (&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;) edit controls.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getMultiLine/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsMultiLine = controlName : getMultiLine(),&lt;br /&gt;
IsMultiLine = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setMultiLine/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsMultiLine = true,&lt;br /&gt;
controlName : setMultiLine(IsMultiLine),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;WantReturn&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then a carriage return will be inserted as the part of an edited string, when the user presses the &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; key while entering text into a multi-line edit control.&lt;br /&gt;
:If it is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;, then pressing the &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; key has the same effect as pressing the &amp;#039;&amp;#039;default&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;) push button, which has the latest specified &amp;#039;&amp;#039;&amp;#039;Default = True&amp;#039;&amp;#039;&amp;#039; property value.&lt;br /&gt;
:This property has no effect on single-line edit controls.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getWantReturn/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsWantReturn = controlName : getWantReturn(),&lt;br /&gt;
IsWantReturn = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setWantReturn/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsWantReturn = true,&lt;br /&gt;
controlName : setWantReturn(IsWantReturn),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;VScroll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the &amp;#039;&amp;#039;multi-line&amp;#039;&amp;#039; control gets a vertical scroll bar when it needs one.&lt;br /&gt;
:The default value for edit controls is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; for other types of controls is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:This property has no effect on single-line edit controls.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getVScroll/0-&amp;gt;&amp;lt;/vp&amp;gt; and &amp;lt;vp&amp;gt;listControl::getVScroll/0-&amp;gt;&amp;lt;/vp&amp;gt; predicates to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsVScrollSet = controlName : getVScroll(),&lt;br /&gt;
IsVScrollSet = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setVScroll/1&amp;lt;/vp&amp;gt; and &amp;lt;vp&amp;gt;listControl::setVScroll/0&amp;lt;/vp&amp;gt; predicates&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsVScrollSet = true,&lt;br /&gt;
controlName : setVScroll(IsVScrollSet),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;AutoVScroll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the &amp;#039;&amp;#039;multi-line&amp;#039;&amp;#039; edit control automatically scrolls text up when the user presses the &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; on the last line.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (does not scroll).&lt;br /&gt;
:This property has no effect on single-line edit controls.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getAutoVScroll/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAutoVScrollSet = controlName : getAutoVScroll(),&lt;br /&gt;
IsAutoVScrollSet = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setAutoVScroll/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAutoVScrollSet = true,&lt;br /&gt;
controlName : setAutoVScroll(IsAutoVScrollSet),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;HScroll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the &amp;#039;&amp;#039;multi-line&amp;#039;&amp;#039; edit or list box control gets a horizontal scroll bar when it needs one.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (does not scroll).&lt;br /&gt;
:This property has no effect on single-line &amp;#039;&amp;#039;edit&amp;#039;&amp;#039; controls.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getHScroll/0-&amp;gt;&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;listBox::getHScroll/0-&amp;gt;&amp;lt;/vp&amp;gt; predicates to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsHScrollSet = controlName : getHScroll(),&lt;br /&gt;
IsHScrollSet = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setHScroll/1&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;listBox::setHScroll/1&amp;lt;/vp&amp;gt; predicates&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsHScrollSet = true,&lt;br /&gt;
controlName : setHScroll(IsHScrollSet),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;AutoHScroll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the control automatically scrolls text in the control in order to display a typed character, when the user types the character at the end of the line.&lt;br /&gt;
:If it is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;, then only text that fits within the rectangular boundary is allowed. When the user presses the &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; key, the control scrolls all text back to the zero position.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (scrolls text automatically).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getAutoHScroll/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAutoHScrollSet = controlName : getAutoHScroll(),&lt;br /&gt;
IsAutoHScrollSet = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setAutoHScroll/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAutoHScrollSet = true,&lt;br /&gt;
controlName : setAutoHScroll(IsAutoHScrollSet),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Border&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the control is created initially with a border around the control.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getBorder/0-&amp;gt;&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;listBox::getBorder/0-&amp;gt;&amp;lt;/vp&amp;gt; predicates to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;BorderIsSet = controlName : getBorder(),&lt;br /&gt;
BorderIsSet = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setBorder/1&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;listBox::setBorder/1&amp;lt;/vp&amp;gt; predicates&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;BorderIsSet = true,&lt;br /&gt;
controlName : setBorder(BorderIsSet),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Password&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the edit control displays all typed-in characters as asterisks (*).&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (displays typed characters &amp;quot;as-is&amp;quot;).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getPassword/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsPassword = controlName : getPassword(),&lt;br /&gt;
IsPassword = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setPassword/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsPassword = true,&lt;br /&gt;
controlName : setPassword(IsPassword),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;HideSel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the edit control hides selection, when it loses the input focus, and shows selection, when it receives the input focus.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (hides selection).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getHideSel/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsHideSel = controlName : getHideSel(),&lt;br /&gt;
IsHideSel = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setHideSel/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsHideSel = true,&lt;br /&gt;
controlName : setHideSel(IsHideSel),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;ReadOnly&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the edit control is in the read-only mode.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (editable).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getReadOnly/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsReadOnly = controlName : getReadOnly(),&lt;br /&gt;
IsReadOnly = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setReadOnly/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsReadOnly = true,&lt;br /&gt;
controlName : setReadOnly(IsReadOnly),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Case&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;Insensitive&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Upper&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Lower&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;Insensitive&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Insensitive&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the edit control leaves the typed-in text &amp;quot;as-is&amp;quot;.&lt;br /&gt;
::This is the default value.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Upper&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the edit control converts all typed-in characters into the upper case.&lt;br /&gt;
::You can use the &amp;lt;vp&amp;gt;editControl::getUpperCase/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsUpperCase = controlName : getUpperCase(),&lt;br /&gt;
IsUpperCase = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
::and the &amp;lt;vp&amp;gt;editControl::setUpperCase/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsUpperCase = true,&lt;br /&gt;
controlName : setUpperCase(IsUpperCase),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
::to set this flag programmatically.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Lower&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the edit control converts all typed-in characters into the lower case.&lt;br /&gt;
::You can use the &amp;lt;vp&amp;gt;editControl::getLowerCase/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsLowerCase = controlName : getLowerCase(),&lt;br /&gt;
IsLowerCase = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
::and the &amp;lt;vp&amp;gt;editControl::setLowerCase/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsLowerCase = true,&lt;br /&gt;
controlName : setLowerCase(IsLowerCase),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
::to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Sort&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the list control sorts strings alphabetically.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (sort).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;listControl::getSort/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsSort = controlName : getSort(),&lt;br /&gt;
IsSort = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;listControl::setSort/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsSort = true,&lt;br /&gt;
controlName : setSort(IsSort),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;ExtendedSel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the list box control allows selection of multiple items by using the &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039; key and the mouse or using the &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039; key and the &amp;#039;&amp;#039;&amp;#039;Up&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Down Arrow&amp;#039;&amp;#039;&amp;#039; keys.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (cannot select multiple items).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;listBox::getExtendedSel/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsExtendedSel = controlName : getExtendedSel(),&lt;br /&gt;
IsExtendedSel = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;listBox::setExtendedSel/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsExtendedSel = true,&lt;br /&gt;
controlName : setExtendedSel(IsExtendedSel),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;MultiSelect&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the list box control allows selection of multiple items using the mouse.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (cannot select multiple items).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;listBox::getMultiSelect/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsMultiSelect = controlName : getMultiSelect(),&lt;br /&gt;
IsMultiSelect = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;listBox::setMultiSelect/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsMultiSelect = true,&lt;br /&gt;
controlName : setMultiSelect(IsMultiSelect),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;AutoNotify&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the list box control notifies the parent window with an input message whenever the user clicks or double-clicks in the list box.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (notify).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;listBox::getAutoNotify/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAutoNotify = controlName : getAutoNotify(),&lt;br /&gt;
IsAutoNotify = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;listBox::setAutoNotify/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAutoNotify = true,&lt;br /&gt;
controlName : setAutoNotify(IsAutoNotify),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;UseTabStops&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the list box control recognizes and expands TAB characters when drawing strings.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (does not expand).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;control::getUseTabStops/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsUseTabStops = controlName : getUseTabStops(),&lt;br /&gt;
IsUseTabStops = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;control::setUseTabStops/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsUseTabStops = true,&lt;br /&gt;
controlName : setUseTabStops(IsUseTabStops),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StaticScrollbar&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the list control shows a disabled vertical scroll bar for the list box when the box does not contain enough items to scroll. If it is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;, then the scroll bar is hidden when the list box does not contain enough items.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (shows vertical scroll bar).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;listControl::getStaticScrollbar/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsStaticScrollbar = controlName : getStaticScrollbar(),&lt;br /&gt;
IsStaticScrollbar = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;listControl::setStaticScrollbar/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsStaticScrollbar = true,&lt;br /&gt;
controlName : setStaticScrollbar(IsStaticScrollbar),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;AllowPartialRows&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the size of the list box is exactly the size specified by the application when it creates the list box. Normally, Windows re-sizes list boxes so that a list box does not display partial items.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; for list box controls and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; for list button and list edit controls.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;listControl::getAllowPartialRows/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAllowPartialRows = controlName : getAllowPartialRows(),&lt;br /&gt;
IsAllowPartialRows = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;listControl::setAllowPartialRows/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAllowPartialRows = true,&lt;br /&gt;
controlName : setAllowPartialRows(IsAllowPartialRows),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;MultiColumn&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the list box control can have multiple columns.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;listBox::getMultiColumn/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsMultiColumn = controlName : getMultiColumn(),&lt;br /&gt;
IsMultiColumn = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;listBox::setMultiColumn/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsMultiColumn = true,&lt;br /&gt;
controlName : setMultiColumn(IsMultiColumn),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Rows&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are positive numbers. For list button and list edit controls it specifies the maximal number of rows, which can be displayed in the opened list box sub-control.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;listControl::getMaxDropDownRows/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get this number&lt;br /&gt;
:&amp;lt;vip&amp;gt;MaxDropDownRowNumber = controlName : getMaxDropDownRows(),&amp;lt;/vip&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;listControl::setMaxDropDownRows/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;MaxDropDownRowNumber = 5,&lt;br /&gt;
controlName : setMaxDropDownRows(MaxDropDownRowNumber),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this number programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Icon Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:The icon name must be selected from the list of icon names registered in the Project (by clicking the [[Image:Ide_ListButton_Button.png]] button). In order to an icon name appears in the list of registered icon names, you should add the icon file (&amp;lt;vp&amp;gt;IconName.ico&amp;lt;/vp&amp;gt;) into the project files. To do this you should use the &amp;#039;&amp;#039;&amp;#039;File | Add&amp;#039;&amp;#039;&amp;#039; command (the &amp;#039;&amp;#039;&amp;#039;Resource Files&amp;#039;&amp;#039;&amp;#039; should be selected in the &amp;#039;&amp;#039;&amp;#039;Files of Type&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Class&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Specify a name of a Windows class for the custom control (your application code must register the custom control by this name).&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/GUI_Control_Properties_Table&amp;diff=3568</id>
		<title>Ide/Resource Editor/GUI Control Properties Table</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/GUI_Control_Properties_Table&amp;diff=3568"/>
		<updated>2013-04-25T11:25:35Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
===== GUI Control Properties Table =====&lt;br /&gt;
&lt;br /&gt;
When you open a GUI dialog or a form (GUI window) in the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;, then the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table also opens.&lt;br /&gt;
&lt;br /&gt;
The set of properties displayed in the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table depends on the control type and contains two groups of properties:&lt;br /&gt;
&lt;br /&gt;
*{{ide|Resource Editor#Common Properties of Almost All GUI Controls|&amp;#039;&amp;#039;&amp;#039;General properties&amp;#039;&amp;#039;&amp;#039;}} are common to all types of controls.&amp;lt;br/&amp;gt;These are: &amp;#039;&amp;#039;&amp;#039;Left Anchor&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Top Anchor&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Right Anchor&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Bottom Anchor&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Container Name&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Enabled&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Lock to Container&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Representation&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;TabStop&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039;,  &amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Width&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Height&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Visible&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*{{ide|Resource Editor#Specific Properties of Different GUI Control Types|&amp;#039;&amp;#039;&amp;#039;Specific properties&amp;#039;&amp;#039;&amp;#039;}} are individual to different types of GUI controls.&amp;lt;br/&amp;gt;These are: &amp;#039;&amp;#039;&amp;#039;3State&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AlignBaseline&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Alignment&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AllowPartialRows&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Auto&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AutoNotify&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AutoHScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AutoVScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Border&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Case&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Class&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;ExtendedSel&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;HideSel&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;HScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Icon Name&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;IgnorePrefix&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;LeftText&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;MultiColumn&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;MultiLine&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;MultiSelect&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Password&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;ReadOnly&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Rows&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Sort&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;StaticScrollbar&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Style&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;UseTabStops&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;VScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;WantReturn&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Wrap&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
In &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table you can edit the displayed properties of the selected GUI control.&lt;br /&gt;
&lt;br /&gt;
Initially this table is empty. However, as soon as any of GUI controls in the edited GUI dialog (form) is selected, the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table displays the current set of properties of the selected control.&lt;br /&gt;
&lt;br /&gt;
If the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table is closed, double-click a control to show the table. The &amp;#039;&amp;#039;&amp;#039;Control Attributes&amp;#039;&amp;#039;&amp;#039; command, from the {{ide|Resource Editor#Speed Menu|speed menu}} of the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;, can also be used to open the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table.&lt;br /&gt;
&lt;br /&gt;
===== Common Properties of Almost All GUI Controls =====&lt;br /&gt;
&lt;br /&gt;
There are some basic control properties, which are used by almost all GUI controls. These are:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:The &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; input box is where you can specify some correct Visual Prolog name, which will be used as the control name (identifier).&lt;br /&gt;
:The default &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; is generated from the &amp;#039;&amp;#039;control type&amp;#039;&amp;#039; (for example, &amp;#039;&amp;#039;pushButton&amp;#039;&amp;#039;, &amp;#039;&amp;#039;checkBox&amp;#039;&amp;#039;, &amp;#039;&amp;#039;listButton&amp;#039;&amp;#039;, etc.) and the &amp;lt;vp&amp;gt;_ctl&amp;lt;/vp&amp;gt; suffix. If several controls of the same type are created, then the &amp;#039;&amp;#039;control type&amp;#039;&amp;#039; is suffixed with the number, for example, &amp;lt;vp&amp;gt;pushButton&amp;lt;/vp&amp;gt;&amp;lt;vp&amp;gt;1&amp;lt;/vp&amp;gt;&amp;lt;vp&amp;gt;_ctl&amp;lt;/vp&amp;gt;. &lt;br /&gt;
:You can edit this default name or simply type in your own version.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Representation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:This property can have one of the following two values: &amp;#039;&amp;#039;&amp;#039;Fact Variable&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Variable&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Fact Variable&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::When &amp;#039;&amp;#039;&amp;#039;Fact Variable&amp;#039;&amp;#039;&amp;#039; is specified, then the IDE generates the fact variable, which will store the object of the control. This fact variable is used to reference to this control in the code. This fact variable name is determined by the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; property. For example, &amp;lt;vp&amp;gt;ok_ctl&amp;lt;/vp&amp;gt;. Notice that in this case the fact variable name is automatically converted to be started with the lowercase character.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Variable&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::When &amp;#039;&amp;#039;&amp;#039;Variable&amp;#039;&amp;#039;&amp;#039; is specified, then the IDE unifies the object of the control with an ordinary variable. This variable will be used to reference to this control in the code. This variable name is determined by the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; property. For example, &amp;lt;vp&amp;gt;Cancel_ctl&amp;lt;/vp&amp;gt;. Notice that in this case the variable name is automatically converted to be started with the uppercase character.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;Fact Variable&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:The &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039; property is where you specify the title (label), which you want to be displayed as the control caption.&lt;br /&gt;
:One character in the Title text may be underlined to indicate an access key. To underline a character precede it with the ampersand &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; character. At runtime this character in the control &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039; will be underlined.&lt;br /&gt;
:Notice that this character is displayed underlined also in the value cell of the &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039; property:&lt;br /&gt;
:[[Image:Ide_GUI_Prop_Title.png]]&lt;br /&gt;
:The used ampersand &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; character is seen only when the value cell of the &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039; property has the focus:&lt;br /&gt;
:[[Image:Ide_GUI_Prop_Title2.png]]&lt;br /&gt;
:If you need to display the ampersand &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; character in the &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039; text, then use two of them &amp;lt;vp&amp;gt;&amp;amp;&amp;amp;&amp;lt;/vp&amp;gt;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Lock to Container&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; defines that the control is locked inside the container selected in the &amp;#039;&amp;#039;&amp;#039;Container Name&amp;#039;&amp;#039;&amp;#039; property.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Container Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In this list box you can select the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; of one of containers (currently only the group box &amp;lt;vp&amp;gt;groupBox&amp;lt;/vp&amp;gt; type of containers is supported) defined in the dialog or in the form.&lt;br /&gt;
:All controls belonging to the same container are in the same &amp;#039;&amp;#039;group&amp;#039;&amp;#039; of related controls. The user may use the arrow keys to move from one control in the &amp;#039;&amp;#039;group&amp;#039;&amp;#039; to the next one.&lt;br /&gt;
:Only the &amp;#039;&amp;#039;&amp;#039;Names&amp;#039;&amp;#039;&amp;#039; of group boxes, inside which the control is placed, appear in the list of &amp;#039;&amp;#039;&amp;#039;Container Name&amp;#039;&amp;#039;&amp;#039; property values. For example, if you see:&lt;br /&gt;
:[[Image:Ide_GUI_Prop_Container.png]]&lt;br /&gt;
:this means that the control is placed inside two group boxes with names &amp;lt;vp&amp;gt;GroupBox_ctl&amp;lt;/vp&amp;gt; and &amp;lt;vp&amp;gt;GroupBox1_ctl&amp;lt;/vp&amp;gt;.&lt;br /&gt;
:If you do not need to relate the control to any container, then you should select &amp;lt;vp&amp;gt;[none]&amp;lt;/vp&amp;gt;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Width&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Height&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:These properties determine the control coordinates and size:&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::The &amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039; coordinate of the upper-left corner of the control (in Dialog Base Units).&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::The &amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039; coordinate of the upper-left corner of the control (in Dialog Base Units).&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Width&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::The &amp;#039;&amp;#039;&amp;#039;Width&amp;#039;&amp;#039;&amp;#039; of the control (in Dialog Base Units).&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Height&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::The &amp;#039;&amp;#039;&amp;#039;Height&amp;#039;&amp;#039;&amp;#039; of the control (in Dialog Base Units).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Top&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Bottom Anchors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:These properties determine how the control coordinates (and may be size) will be handled when the dialog or form (containing this control) is resized. The general rules are described in the &amp;quot;{{ide|Resource Editor#Using Anchors for Positioning GUI Controls while Dialog Resizing|&amp;#039;&amp;#039;&amp;#039;Using Anchors for Positioning GUI Controls while Dialog Resizing&amp;#039;&amp;#039;&amp;#039;}}&amp;quot;.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Left Anchor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; defines that the &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039; boundary of the control is always positioned at the specified distance (equal to the &amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039; property) from the &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039; boundary of the dialog (form) containing this control.&lt;br /&gt;
::The distance is specified in the Dialog Base Units.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Top Anchor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; defines that the &amp;#039;&amp;#039;&amp;#039;Top&amp;#039;&amp;#039;&amp;#039; of the control is always positioned at the specified distance (equal to the &amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039; property) from the &amp;#039;&amp;#039;&amp;#039;Top&amp;#039;&amp;#039;&amp;#039; boundary of the dialog (form) containing this control.&lt;br /&gt;
::The distance is specified in the Dialog Base Units.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Right Anchor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; defines that the &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039; boundary of the control is always positioned at the specified distance from the &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039; boundary of the dialog (form) containing this control.&lt;br /&gt;
::The distance is specified in the Dialog Base Units. The distance value can be seen near the arrow, which appears when the control is selected &amp;quot;{{ide|Resource Editor#Using Anchors for Positioning GUI Controls while Dialog Resizing|&amp;#039;&amp;#039;&amp;#039;Using Anchors for Positioning GUI Controls while Dialog Resizing&amp;#039;&amp;#039;&amp;#039;}}&amp;quot;.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Bottom Anchor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; defines that the &amp;#039;&amp;#039;&amp;#039;Bottom&amp;#039;&amp;#039;&amp;#039; of the control is always positioned at the specified distance from the &amp;#039;&amp;#039;&amp;#039;Bottom&amp;#039;&amp;#039;&amp;#039; boundary of the dialog (form) containing this control.&lt;br /&gt;
::The distance is specified in the Dialog Base Units. The distance value can be seen near the arrow, which appears when the control is selected &amp;quot;{{ide|Resource Editor#Using Anchors for Positioning GUI Controls while Dialog Resizing|&amp;#039;&amp;#039;&amp;#039;Using Anchors for Positioning GUI Controls while Dialog Resizing&amp;#039;&amp;#039;&amp;#039;}}&amp;quot;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Enabled&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the control will be created initially enabled (&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;) or disabled (&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;). The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (enabled).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;window::getEnabled/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control is enabled&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsEnabled = checkButtonName:getEnabled(),&lt;br /&gt;
IsEnabled = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;window::setEnabled/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsEnabled = true,&lt;br /&gt;
checkButtonName:setEnabled(IsEnabled),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Visible&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the control will be created initially visible (&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;) or invisible (&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;). The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (visible).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;window::getVisible/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control is visible&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsVisible = checkButtonName:getVisible(),&lt;br /&gt;
IsVisible = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;window::setVisible/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsVisible = true,&lt;br /&gt;
checkButtonName:setVisible(IsVisible),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;TabStop&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether this control belongs to a subset of controls through which the user can move using the TAB key. The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (the control belongs to a group of controls between which the user can navigate with TAB).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;control::getTabStop/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsTabStop = checkButtonName:getTabStop(),&lt;br /&gt;
IsTabStop = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;control::setTabStop/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsTabStop = true,&lt;br /&gt;
checkButtonName:setTabStop(IsTabStop),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
:If &amp;lt;vp&amp;gt;IsTabStop&amp;lt;/vp&amp;gt; is &amp;lt;vp&amp;gt;true&amp;lt;/vp&amp;gt;, then the focus will be able to jump to this control while the Tab pressing navigation. Pressing the TAB key moves the focus to the next control, which has the &amp;#039;&amp;#039;&amp;#039;TabStop&amp;#039;&amp;#039;&amp;#039; = &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===== Specific Properties of Different GUI Control Types =====&lt;br /&gt;
&lt;br /&gt;
The following properties are specific to different types of controls:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Auto&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether this control is an automatic (an automatic check box or an automatic radio button). When you click an automatic control, then it change its state in the proper way.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;checkButton::getStyle/2&amp;lt;/vp&amp;gt; and &amp;lt;vp&amp;gt;radioButton::getAuto/0-&amp;gt;&amp;lt;/vp&amp;gt; predicates to get whether this flag is set to a control:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;checkButtonName:getStyle(IsAuto, _Is3State),&lt;br /&gt;
IsAuto = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;checkButton::setStyle/2&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;radioButton::setAuto/1&amp;lt;/vp&amp;gt; predicates&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAuto = true,&lt;br /&gt;
checkButtonName:setStyle(IsAuto, _Is3State),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (auto).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;3State&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether this check box can have 3 states (&amp;#039;&amp;#039;unchecked, checked, undetermined&amp;#039;&amp;#039;). You can use the &amp;lt;vp&amp;gt;checkButton::getStyle/2&amp;lt;/vp&amp;gt; predicate to get whether this state is set to a control&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;checkButtonName:getStyle(_IsAuto, Is3State),&lt;br /&gt;
Is3State = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;checkButton::setStyle/2&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;Is3State = true,&lt;br /&gt;
checkButtonName:setStyle(_IsAuto, Is3State),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this state programmatically.&lt;br /&gt;
:A 3-states check box is the same as an ordinary check box, except that the box can be grayed (dimmed) as well as checked. The grayed state is used to show that the state of the check box is not determined.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (3State).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;LeftText&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the control title text should be positioned on the left or on the right of the control (check box or radio button).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;checkButton::getLeftText/0-&amp;gt;&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;radioButton::getLeftText/0-&amp;gt;&amp;lt;/vp&amp;gt; predicates to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsLeftText = checkButtonName:getLeftText(),&lt;br /&gt;
IsLeftText = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;checkButton:setLeftText/1&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;radioButton:setLeftText/1&amp;lt;/vp&amp;gt; predicates&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsLeftText = true,&lt;br /&gt;
checkButtonName:setLeftText(IsLeftText),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (caption is on the right side).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;AlignBaseline&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the control caption text should be positioned on the same horizontal line with caption texts of all other controls, which have the same vertical position with this control.&lt;br /&gt;
:This property is defined to all controls, which can have captions (static texts, check boxes, edit and list edit controls, etc.)&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;getAlignBaseline&amp;lt;/vp&amp;gt; predicates (like &amp;lt;vp&amp;gt;editControl::getAlignBaseline/0-&amp;gt;&amp;lt;/vp&amp;gt;) to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAllignBaseLine = checkButtonName:getAllignBaseLine(),&lt;br /&gt;
IsAllignBaseLine = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;setAlignBaseline&amp;lt;/vp&amp;gt; (like &amp;lt;vp&amp;gt;textControl::setAlignBaseline/1&amp;lt;/vp&amp;gt;) predicates&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAllignBaseLine = true,&lt;br /&gt;
checkButtonName:setAllignBaseLine(IsAllignBaseLine),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (align captions horizontally).&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Style&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Push buttons&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:For push buttons possible values are &amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Regular&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Push buttons with the &amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039; style are created by the &amp;lt;vp&amp;gt;button::newCancel/1&amp;lt;/vp&amp;gt; onstructor.&lt;br /&gt;
::When a dialog/form contains a push button with the &amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039; style, then this dialog/form will provide standard handling of the Esc key - the dialog/form is simply closed without any additional actions.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Push buttons with the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; style are created by the &amp;lt;vp&amp;gt;button::newOk/1&amp;lt;/vp&amp;gt; constructor.&lt;br /&gt;
::When a dialog/form contains a push button with the &amp;#039;&amp;#039;&amp;#039;Ok&amp;#039;&amp;#039;&amp;#039; style, then this dialog/form will execute dialog/form validation check when this button is clicked. See &amp;quot;&amp;#039;&amp;#039;&amp;#039;Dialog/Form Validation&amp;#039;&amp;#039;&amp;#039;&amp;quot; tutorial (on WEB) for more information.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Regular&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Push buttons with the &amp;#039;&amp;#039;&amp;#039;Regular&amp;#039;&amp;#039;&amp;#039; style are created by the ordinary &amp;lt;vp&amp;gt;button::new/1&amp;lt;/vp&amp;gt; constructor.&lt;br /&gt;
::Such buttons do not initiate any special default handling.&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Group boxes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:For group boxes possible values are &amp;#039;&amp;#039;&amp;#039;Group Box&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Simple Border&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Horizontal Separator&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;No Border&amp;#039;&amp;#039;&amp;#039;. These values define the border type of the group box control.&lt;br /&gt;
:The default is &amp;#039;&amp;#039;&amp;#039;Simple Border&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;groupBox::getBorderStyle/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get the border style&lt;br /&gt;
:&amp;lt;vip&amp;gt;GroupBoxBorderStyle = controlName : getBorderStyle(),&amp;lt;/vip&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;groupBox::setBorderStyle/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;GroupBoxBorderStyle = groupBox(),&lt;br /&gt;
controlName : setBorderStyle(GroupBoxBorderStyle),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set the border style programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Alignment&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Center&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039;. Radio buttons in this group box determine how the text in the control is aligned.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039; (align left).&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the text in the control will be aligned left.&lt;br /&gt;
::You can use the &amp;lt;vp&amp;gt;textControl::getAlignment/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get which of these flags the control has&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;AlignmentType = textControlName : getAlignment(),&lt;br /&gt;
AlignmentType = alignLeft(),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
::and the &amp;lt;vp&amp;gt;textControl::setAlignment/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;AlignmentType = alignLeft(),&lt;br /&gt;
textControlName : setAlignment(AlignmentType),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
::to set this flag programmatically.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Center&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the text in the control will be centered.&lt;br /&gt;
::The &amp;lt;vp&amp;gt;AlignmentType = alignCenter()&amp;lt;/vp&amp;gt;.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the text in the control will be aligned right.&lt;br /&gt;
::The &amp;lt;vp&amp;gt;AlignmentType = alignRight()&amp;lt;/vp&amp;gt;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Wrap&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the text in the control will be wrapped to several lines.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (wrap).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;textControl::getWrap/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsNoWrap = textControlName : getWrap(),&lt;br /&gt;
IsNoWrap = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;textControl::setWrap/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsNoWrap = false,&lt;br /&gt;
textControlName: setWrap(IsNoWrap),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;IgnorePrefix&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. Setting &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; value prevents interpretation of any &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; characters in the caption of the static text control as access keys (accelerator prefix characters). Accelerator characters are displayed underlined and the prefix &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; character is deleted.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:Notice that static text controls cannot be activated. Therefore, when an access key of a static text control is pressed, then the control next to this static text control, in the tab-stop order of controls in the dialog, is activated.&lt;br /&gt;
:Most often this flag is used when filenames, which can contain the &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; character, need to be displayed in static text controls.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;textControl::getIgnorePrefix/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsIgnorePrefix = controlName : getIgnorePrefix(),&lt;br /&gt;
IsIgnorePrefix = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;textControl::setIgnorePrefix/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsIgnorePrefix = true,&lt;br /&gt;
controlName : setIgnorePrefix(IsIgnorePrefix),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;MultiLine&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. When this property is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the edit control allows multiple lines.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (allows multiple lines).&lt;br /&gt;
:Notice that the &amp;#039;&amp;#039;&amp;#039;VScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;HScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AutoVScroll&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;WantReturn&amp;#039;&amp;#039;&amp;#039; properties do not work for single-line (&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;) edit controls.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getMultiLine/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsMultiLine = controlName : getMultiLine(),&lt;br /&gt;
IsMultiLine = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setMultiLine/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsMultiLine = true,&lt;br /&gt;
controlName : setMultiLine(IsMultiLine),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;WantReturn&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then a carriage return will be inserted as the part of an edited string, when the user presses the &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; key while entering text into a multi-line edit control.&lt;br /&gt;
:If it is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;, then pressing the &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; key has the same effect as pressing the &amp;#039;&amp;#039;default&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;) push button, which has the latest specified &amp;#039;&amp;#039;&amp;#039;Default = True&amp;#039;&amp;#039;&amp;#039; property value.&lt;br /&gt;
:This property has no effect on single-line edit controls.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getWantReturn/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsWantReturn = controlName : getWantReturn(),&lt;br /&gt;
IsWantReturn = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setWantReturn/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsWantReturn = true,&lt;br /&gt;
controlName : setWantReturn(IsWantReturn),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;VScroll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the &amp;#039;&amp;#039;multi-line&amp;#039;&amp;#039; control gets a vertical scroll bar when it needs one.&lt;br /&gt;
:The default value for edit controls is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; for other types of controls is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:This property has no effect on single-line edit controls.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getVScroll/0-&amp;gt;&amp;lt;/vp&amp;gt; and &amp;lt;vp&amp;gt;listControl::getVScroll/0-&amp;gt;&amp;lt;/vp&amp;gt; predicates to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsVScrollSet = controlName : getVScroll(),&lt;br /&gt;
IsVScrollSet = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setVScroll/1&amp;lt;/vp&amp;gt; and &amp;lt;vp&amp;gt;listControl::setVScroll/0&amp;lt;/vp&amp;gt; predicates&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsVScrollSet = true,&lt;br /&gt;
controlName : setVScroll(IsVScrollSet),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;AutoVScroll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the &amp;#039;&amp;#039;multi-line&amp;#039;&amp;#039; edit control automatically scrolls text up when the user presses the &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; on the last line.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (does not scroll).&lt;br /&gt;
:This property has no effect on single-line edit controls.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getAutoVScroll/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAutoVScrollSet = controlName : getAutoVScroll(),&lt;br /&gt;
IsAutoVScrollSet = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setAutoVScroll/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAutoVScrollSet = true,&lt;br /&gt;
controlName : setAutoVScroll(IsAutoVScrollSet),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;HScroll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the &amp;#039;&amp;#039;multi-line&amp;#039;&amp;#039; edit or list box control gets a horizontal scroll bar when it needs one.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (does not scroll).&lt;br /&gt;
:This property has no effect on single-line &amp;#039;&amp;#039;edit&amp;#039;&amp;#039; controls.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getHScroll/0-&amp;gt;&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;listBox::getHScroll/0-&amp;gt;&amp;lt;/vp&amp;gt; predicates to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsHScrollSet = controlName : getHScroll(),&lt;br /&gt;
IsHScrollSet = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setHScroll/1&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;listBox::setHScroll/1&amp;lt;/vp&amp;gt; predicates&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsHScrollSet = true,&lt;br /&gt;
controlName : setHScroll(IsHScrollSet),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;AutoHScroll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the control automatically scrolls text in the control in order to display a typed character, when the user types the character at the end of the line.&lt;br /&gt;
:If it is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;, then only text that fits within the rectangular boundary is allowed. When the user presses the &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; key, the control scrolls all text back to the zero position.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (scrolls text automatically).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getAutoHScroll/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAutoHScrollSet = controlName : getAutoHScroll(),&lt;br /&gt;
IsAutoHScrollSet = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setAutoHScroll/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAutoHScrollSet = true,&lt;br /&gt;
controlName : setAutoHScroll(IsAutoHScrollSet),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Border&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the control is created initially with a border around the control.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getBorder/0-&amp;gt;&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;listBox::getBorder/0-&amp;gt;&amp;lt;/vp&amp;gt; predicates to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;BorderIsSet = controlName : getBorder(),&lt;br /&gt;
BorderIsSet = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setBorder/1&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;listBox::setBorder/1&amp;lt;/vp&amp;gt; predicates&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;BorderIsSet = true,&lt;br /&gt;
controlName : setBorder(BorderIsSet),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Password&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the edit control displays all typed-in characters as asterisks (*).&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (displays typed characters &amp;quot;as-is&amp;quot;).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getPassword/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsPassword = controlName : getPassword(),&lt;br /&gt;
IsPassword = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setPassword/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsPassword = true,&lt;br /&gt;
controlName : setPassword(IsPassword),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;HideSel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the edit control hides selection, when it loses the input focus, and shows selection, when it receives the input focus.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (hides selection).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getHideSel/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsHideSel = controlName : getHideSel(),&lt;br /&gt;
IsHideSel = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setHideSel/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsHideSel = true,&lt;br /&gt;
controlName : setHideSel(IsHideSel),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;ReadOnly&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the edit control is in the read-only mode.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (editable).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;editControl::getReadOnly/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsReadOnly = controlName : getReadOnly(),&lt;br /&gt;
IsReadOnly = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;editControl::setReadOnly/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsReadOnly = true,&lt;br /&gt;
controlName : setReadOnly(IsReadOnly),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Case&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;Insensitive&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Upper&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Lower&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;Insensitive&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Insensitive&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the edit control leaves the typed-in text &amp;quot;as-is&amp;quot;.&lt;br /&gt;
::This is the default value.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Upper&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the edit control converts all typed-in characters into the upper case.&lt;br /&gt;
::You can use the &amp;lt;vp&amp;gt;editControl::getUpperCase/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsUpperCase = controlName : getUpperCase(),&lt;br /&gt;
IsUpperCase = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
::and the &amp;lt;vp&amp;gt;editControl::setUpperCase/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsUpperCase = true,&lt;br /&gt;
controlName : setUpperCase(IsUpperCase),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
::to set this flag programmatically.&lt;br /&gt;
:*&amp;#039;&amp;#039;&amp;#039;Lower&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::Defines that the edit control converts all typed-in characters into the lower case.&lt;br /&gt;
::You can use the &amp;lt;vp&amp;gt;editControl::getLowerCase/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsLowerCase = controlName : getLowerCase(),&lt;br /&gt;
IsLowerCase = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
::and the &amp;lt;vp&amp;gt;editControl::setLowerCase/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsLowerCase = true,&lt;br /&gt;
controlName : setLowerCase(IsLowerCase),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
::to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Sort&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the list control sorts strings alphabetically.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (sort).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;listControl::getSort/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsSort = controlName : getSort(),&lt;br /&gt;
IsSort = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;listControl::setSort/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsSort = true,&lt;br /&gt;
controlName : setSort(IsSort),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;ExtendedSel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the list box control allows selection of multiple items by using the &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039; key and the mouse or using the &amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039; key and the &amp;#039;&amp;#039;&amp;#039;Up&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Down Arrow&amp;#039;&amp;#039;&amp;#039; keys.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (cannot select multiple items).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;listBox::getExtendedSel/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsExtendedSel = controlName : getExtendedSel(),&lt;br /&gt;
IsExtendedSel = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;listBox::setExtendedSel/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsExtendedSel = true,&lt;br /&gt;
controlName : setExtendedSel(IsExtendedSel),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;MultiSelect&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the list box control allows selection of multiple items using the mouse.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (cannot select multiple items).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;listBox::getMultiSelect/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsMultiSelect = controlName : getMultiSelect(),&lt;br /&gt;
IsMultiSelect = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;listBox::setMultiSelect/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsMultiSelect = true,&lt;br /&gt;
controlName : setMultiSelect(IsMultiSelect),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;AutoNotify&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the list box control notifies the parent window with an input message whenever the user clicks or double-clicks in the list box.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (notify).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;listBox::getAutoNotify/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAutoNotify = controlName : getAutoNotify(),&lt;br /&gt;
IsAutoNotify = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;listBox::setAutoNotify/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAutoNotify = true,&lt;br /&gt;
controlName : setAutoNotify(IsAutoNotify),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;UseTabStops&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the list box control recognizes and expands TAB characters when drawing strings.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (does not expand).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;control::getUseTabStops/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsUseTabStops = controlName : getUseTabStops(),&lt;br /&gt;
IsUseTabStops = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;control::setUseTabStops/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsUseTabStops = true,&lt;br /&gt;
controlName : setUseTabStops(IsUseTabStops),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StaticScrollbar&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the list control shows a disabled vertical scroll bar for the list box when the box does not contain enough items to scroll. If it is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;, then the scroll bar is hidden when the list box does not contain enough items.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (shows vertical scroll bar).&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;listControl::getStaticScrollbar/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsStaticScrollbar = controlName : getStaticScrollbar(),&lt;br /&gt;
IsStaticScrollbar = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;listControl::setStaticScrollbar/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsStaticScrollbar = true,&lt;br /&gt;
controlName : setStaticScrollbar(IsStaticScrollbar),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;AllowPartialRows&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the size of the list box is exactly the size specified by the application when it creates the list box. Normally, Windows re-sizes list boxes so that a list box does not display partial items.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; for list box controls and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; for list button and list edit controls.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;listControl::getAllowPartialRows/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAllowPartialRows = controlName : getAllowPartialRows(),&lt;br /&gt;
IsAllowPartialRows = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;listControl::setAllowPartialRows/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsAllowPartialRows = true,&lt;br /&gt;
controlName : setAllowPartialRows(IsAllowPartialRows),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;MultiColumn&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. If it is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the list box control can have multiple columns.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;listBox::getMultiColumn/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsMultiColumn = controlName : getMultiColumn(),&lt;br /&gt;
IsMultiColumn = true,&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;listBox::setMultiColumn/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;IsMultiColumn = true,&lt;br /&gt;
controlName : setMultiColumn(IsMultiColumn),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Rows&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Possible values are positive numbers. For list button and list edit controls it specifies the maximal number of rows, which can be displayed in the opened list box sub-control.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:You can use the &amp;lt;vp&amp;gt;listControl::getMaxDropDownRows/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get this number&lt;br /&gt;
:&amp;lt;vip&amp;gt;MaxDropDownRowNumber = controlName : getMaxDropDownRows(),&amp;lt;/vip&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;listControl::setMaxDropDownRows/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;vip&amp;gt;MaxDropDownRowNumber = 5,&lt;br /&gt;
controlName : setMaxDropDownRows(MaxDropDownRowNumber),&amp;lt;/vip&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:to set this number programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Icon Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:The icon name must be selected from the list of icon names registered in the Project (by clicking the [[Image:Ide_ListButton_button.png]] button). In order to an icon name appears in the list of registered icon names, you should add the icon file (&amp;lt;vp&amp;gt;IconName.ico&amp;lt;/vp&amp;gt;) into the project files. To do this you should use the &amp;#039;&amp;#039;&amp;#039;File | Add&amp;#039;&amp;#039;&amp;#039; command (the &amp;#039;&amp;#039;&amp;#039;Resource Files&amp;#039;&amp;#039;&amp;#039; should be selected in the &amp;#039;&amp;#039;&amp;#039;Files of Type&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Class&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:Specify a name of a Windows class for the custom control (your application code must register the custom control by this name).&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=File:Ide_GUI_Prop_Container.png&amp;diff=3567</id>
		<title>File:Ide GUI Prop Container.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=File:Ide_GUI_Prop_Container.png&amp;diff=3567"/>
		<updated>2013-04-25T07:16:24Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=File:Ide_GUI_Prop_Title2.png&amp;diff=3566</id>
		<title>File:Ide GUI Prop Title2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=File:Ide_GUI_Prop_Title2.png&amp;diff=3566"/>
		<updated>2013-04-25T07:15:47Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=File:Ide_GUI_Prop_Title.png&amp;diff=3565</id>
		<title>File:Ide GUI Prop Title.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=File:Ide_GUI_Prop_Title.png&amp;diff=3565"/>
		<updated>2013-04-25T07:15:01Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/GUI_Control_Properties_Table&amp;diff=3564</id>
		<title>Ide/Resource Editor/GUI Control Properties Table</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/GUI_Control_Properties_Table&amp;diff=3564"/>
		<updated>2013-04-24T13:03:31Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: New page: &amp;lt;noinclude&amp;gt;Category:Ide&amp;lt;/noinclude&amp;gt;  ===== GUI Control Properties Table =====  When you open a GUI dialog or a form (GUI window) in the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;, then the &amp;#039;&amp;#039;&amp;#039;Control Properti...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== GUI Control Properties Table =====&lt;br /&gt;
&lt;br /&gt;
When you open a GUI dialog or a form (GUI window) in the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;, then the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table also opens.&lt;br /&gt;
&lt;br /&gt;
The set of properties displayed in the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table depends on the control type and contains two groups of properties:&lt;br /&gt;
&lt;br /&gt;
*{{ide|Resource Editor#Common Properties of Almost All GUI Controls|&amp;#039;&amp;#039;&amp;#039;General properties&amp;#039;&amp;#039;&amp;#039;}} are common to all types of controls.&amp;lt;br/&amp;gt;These are: &amp;#039;&amp;#039;&amp;#039;Left Anchor&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Top Anchor&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Right Anchor&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Bottom Anchor&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Container Name&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Enabled&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Lock to Container&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Representation&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;TabStop&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039;,  &amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Width&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Height&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Visible&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*{{ide|Resource Editor#Specific Properties of Different GUI Control Types|&amp;#039;&amp;#039;&amp;#039;Specific properties&amp;#039;&amp;#039;&amp;#039;}} are individual to different types of GUI controls.&amp;lt;br/&amp;gt;These are: &amp;#039;&amp;#039;&amp;#039;3State&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AlignBaseline&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Alignment&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AllowPartialRows&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Auto&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AutoNotify&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AutoHScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AutoVScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Border&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Case&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Class&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;ExtendedSel&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;HideSel&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;HScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Icon Name&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;IgnorePrefix&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;LeftText&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;MultiColumn&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;MultiLine&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;MultiSelect&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Password&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;ReadOnly&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Rows&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Sort&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;StaticScrollbar&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Style&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;UseTabStops&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;VScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;WantReturn&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Wrap&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
In &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table you can edit the displayed properties of the selected GUI control.&lt;br /&gt;
&lt;br /&gt;
Initially this table is empty. However, as soon as any of GUI controls in the edited GUI dialog (form) is selected, the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table displays the current set of properties of the selected control.&lt;br /&gt;
&lt;br /&gt;
If the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table is closed, double-click a control to show the table. The &amp;#039;&amp;#039;&amp;#039;Control Attributes&amp;#039;&amp;#039;&amp;#039; command, from the {{ide|Resource Editor#Speed Menu|speed menu}} of the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;, can also be used to open the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table.&lt;br /&gt;
&lt;br /&gt;
===== Common Properties of Almost All GUI Controls =====&lt;br /&gt;
&lt;br /&gt;
There are some basic control properties, which are used by almost all GUI controls. These are:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; input box is where you can specify some correct Visual Prolog name, which will be used as the control name (identifier).&lt;br /&gt;
*:The default &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; is generated from the &amp;#039;&amp;#039;control type&amp;#039;&amp;#039; (for example, &amp;#039;&amp;#039;pushButton&amp;#039;&amp;#039;, &amp;#039;&amp;#039;checkBox&amp;#039;&amp;#039;, &amp;#039;&amp;#039;listButton&amp;#039;&amp;#039;, etc.) and the &amp;lt;vp&amp;gt;_ctl&amp;lt;/vp&amp;gt; suffix. If several controls of the same type are created, then the &amp;#039;&amp;#039;control type&amp;#039;&amp;#039; is suffixed with the number, for example, &amp;lt;vp&amp;gt;pushButton&amp;lt;/vp&amp;gt;&amp;lt;vp&amp;gt;1&amp;lt;/vp&amp;gt;&amp;lt;vp&amp;gt;_ctl&amp;lt;/vp&amp;gt;. &lt;br /&gt;
*:You can edit this default name or simply type in your own version.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Representation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This property can have one of the following two values: &amp;#039;&amp;#039;&amp;#039;Fact Variable&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Variable&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Fact Variable&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:When &amp;#039;&amp;#039;&amp;#039;Fact Variable&amp;#039;&amp;#039;&amp;#039; is specified, then the IDE generates the fact variable, which will store the object of the control. This fact variable is used to reference to this control in the code. This fact variable name is determined by the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; property. For example, &amp;lt;vp&amp;gt;ok_ctl&amp;lt;/vp&amp;gt;. Notice that in this case the fact variable name is automatically converted to be started with the lowercase character.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Variable&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:When &amp;#039;&amp;#039;&amp;#039;Variable&amp;#039;&amp;#039;&amp;#039; is specified, then the IDE unifies the object of the control with an ordinary variable. This variable will be used to reference to this control in the code. This variable name is determined by the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; property. For example, &amp;lt;vp&amp;gt;Cancel_ctl&amp;lt;/vp&amp;gt;. Notice that in this case the variable name is automatically converted to be started with the uppercase character.&lt;br /&gt;
*:The default value is &amp;#039;&amp;#039;&amp;#039;Fact Variable&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039; property is where you specify the title (label), which you want to be displayed as the control caption.&lt;br /&gt;
*:One character in the Title text may be underlined to indicate an access key. To underline a character precede it with the ampersand &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; character. At runtime this character in the control &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039; will be underlined.&lt;br /&gt;
*:Notice that this character is displayed underlined also in the value cell of the &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039; property:&lt;br /&gt;
*:[[Image:Ide_GUI_Prop_Title.png]]&lt;br /&gt;
*:The used ampersand &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; character is seen only when the value cell of the &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039; property has the focus:&lt;br /&gt;
*:[[Image:Ide_GUI_Prop_Title2.png]]&lt;br /&gt;
*:If you need to display the ampersand &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; character in the &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039; text, then use two of them &amp;lt;vp&amp;gt;&amp;amp;&amp;amp;&amp;lt;/vp&amp;gt;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Lock to Container&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; defines that the control is locked inside the container selected in the &amp;#039;&amp;#039;&amp;#039;Container Name&amp;#039;&amp;#039;&amp;#039; property.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Container Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:In this list box you can select the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; of one of containers (currently only the group box &amp;lt;vp&amp;gt;groupBox&amp;lt;/vp&amp;gt; type of containers is supported) defined in the dialog or in the form.&lt;br /&gt;
*:All controls belonging to the same container are in the same &amp;#039;&amp;#039;group&amp;#039;&amp;#039; of related controls. The user may use the arrow keys to move from one control in the &amp;#039;&amp;#039;group&amp;#039;&amp;#039; to the next one.&lt;br /&gt;
*:Only the &amp;#039;&amp;#039;&amp;#039;Names&amp;#039;&amp;#039;&amp;#039; of group boxes, inside which the control is placed, appear in the list of &amp;#039;&amp;#039;&amp;#039;Container Name&amp;#039;&amp;#039;&amp;#039; property values. For example, if you see:&lt;br /&gt;
*:[[Image:Ide_GUI_Prop_Container.png]]&lt;br /&gt;
*:this means that the control is placed inside two group boxes with names &amp;lt;vp&amp;gt;GroupBox_ctl&amp;lt;/vp&amp;gt; and &amp;lt;vp&amp;gt;GroupBox1_ctl&amp;lt;/vp&amp;gt;.&lt;br /&gt;
*:If you do not need to relate the control to any container, then you should select &amp;lt;vp&amp;gt;[none]&amp;lt;/vp&amp;gt;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Width&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Height&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:These properties determine the control coordinates and size:&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:The &amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039; coordinate of the upper-left corner of the control (in Dialog Base Units).&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:The &amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039; coordinate of the upper-left corner of the control (in Dialog Base Units).&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Width&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:The &amp;#039;&amp;#039;&amp;#039;Width&amp;#039;&amp;#039;&amp;#039; of the control (in Dialog Base Units).&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Height&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:The &amp;#039;&amp;#039;&amp;#039;Height&amp;#039;&amp;#039;&amp;#039; of the control (in Dialog Base Units).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Top&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Bottom Anchors&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:These properties determine how the control coordinates (and may be size) will be handled when the dialog or form (containing this control) is resized. The general rules are described in the &amp;quot;{{ide|Resource Editor#Using Anchors for Positioning GUI Controls while Dialog Resizing|&amp;#039;&amp;#039;&amp;#039;Using Anchors for Positioning GUI Controls while Dialog Resizing&amp;#039;&amp;#039;&amp;#039;}}&amp;quot;.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Left Anchor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; defines that the &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039; boundary of the control is always positioned at the specified distance (equal to the &amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039; property) from the &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039; boundary of the dialog (form) containing this control.&lt;br /&gt;
*:*:The distance is specified in the Dialog Base Units.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Top Anchor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; defines that the &amp;#039;&amp;#039;&amp;#039;Top&amp;#039;&amp;#039;&amp;#039; of the control is always positioned at the specified distance (equal to the &amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039; property) from the &amp;#039;&amp;#039;&amp;#039;Top&amp;#039;&amp;#039;&amp;#039; boundary of the dialog (form) containing this control.&lt;br /&gt;
*:*:The distance is specified in the Dialog Base Units.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Right Anchor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; defines that the &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039; boundary of the control is always positioned at the specified distance from the &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039; boundary of the dialog (form) containing this control.&lt;br /&gt;
*:*:The distance is specified in the Dialog Base Units. The distance value can be seen near the arrow, which appears when the control is selected &amp;quot;{{ide|Resource Editor#Using Anchors for Positioning GUI Controls while Dialog Resizing|&amp;#039;&amp;#039;&amp;#039;Using Anchors for Positioning GUI Controls while Dialog Resizing&amp;#039;&amp;#039;&amp;#039;}}&amp;quot;.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Bottom Anchor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; defines that the &amp;#039;&amp;#039;&amp;#039;Bottom&amp;#039;&amp;#039;&amp;#039; of the control is always positioned at the specified distance from the &amp;#039;&amp;#039;&amp;#039;Bottom&amp;#039;&amp;#039;&amp;#039; boundary of the dialog (form) containing this control.&lt;br /&gt;
*:*:The distance is specified in the Dialog Base Units. The distance value can be seen near the arrow, which appears when the control is selected &amp;quot;{{ide|Resource Editor#Using Anchors for Positioning GUI Controls while Dialog Resizing|&amp;#039;&amp;#039;&amp;#039;Using Anchors for Positioning GUI Controls while Dialog Resizing&amp;#039;&amp;#039;&amp;#039;}}&amp;quot;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Enabled&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the control will be created initially enabled (&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;) or disabled (&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;). The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (enabled).&lt;br /&gt;
*:You can use the &amp;lt;vp&amp;gt;window::getEnabled/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control is enabled&lt;br /&gt;
&amp;lt;vip&amp;gt;IsEnabled = checkButtonName:getEnabled(),&lt;br /&gt;
IsEnabled = true,&amp;lt;/vip&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;window::setEnabled/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;vip&amp;gt;IsEnabled = true,&lt;br /&gt;
checkButtonName:setEnabled(IsEnabled),&amp;lt;/vip&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Visible&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the control will be created initially visible (&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;) or invisible (&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;). The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (visible).&lt;br /&gt;
*:You can use the &amp;lt;vp&amp;gt;window::getVisible/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control is visible&lt;br /&gt;
&amp;lt;vip&amp;gt;IsVisible = checkButtonName:getVisible(),&lt;br /&gt;
IsVisible = true,&amp;lt;/vip&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;window::setVisible/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;vip&amp;gt;IsVisible = true,&lt;br /&gt;
checkButtonName:setVisible(IsVisible),&amp;lt;/vip&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;TabStop&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether this control belongs to a subset of controls through which the user can move using the TAB key. The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (the control belongs to a group of controls between which the user can navigate with TAB).&lt;br /&gt;
*:You can use the &amp;lt;vp&amp;gt;control::getTabStop/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;vip&amp;gt;IsTabStop = checkButtonName:getTabStop(),&lt;br /&gt;
IsTabStop = true,&amp;lt;/vip&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;control::setTabStop/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;vip&amp;gt;IsTabStop = true,&lt;br /&gt;
checkButtonName:setTabStop(IsTabStop),&amp;lt;/vip&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
:If &amp;lt;vp&amp;gt;IsTabStop&amp;lt;/vp&amp;gt; is &amp;lt;vp&amp;gt;true&amp;lt;/vp&amp;gt;, then the focus will be able to jump to this control while the Tab pressing navigation. Pressing the TAB key moves the focus to the next control, which has the &amp;#039;&amp;#039;&amp;#039;TabStop&amp;#039;&amp;#039;&amp;#039; = &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===== Specific Properties of Different GUI Control Types =====&lt;br /&gt;
&lt;br /&gt;
The following properties are specific to different types of controls:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Auto&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether this control is an automatic (an automatic check box or an automatic radio button). When you click an automatic control, then it change its state in the proper way.&lt;br /&gt;
*:You can use the &amp;lt;vp&amp;gt;checkButton::getStyle/2&amp;lt;/vp&amp;gt; and &amp;lt;vp&amp;gt;radioButton::getAuto/0-&amp;gt;&amp;lt;/vp&amp;gt; predicates to get whether this flag is set to a control:&lt;br /&gt;
&amp;lt;vip&amp;gt;checkButtonName:getStyle(IsAuto, _Is3State),&lt;br /&gt;
IsAuto = true,&amp;lt;/vip&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;checkButton::setStyle/2&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;radioButton::setAuto/1&amp;lt;/vp&amp;gt; predicates&lt;br /&gt;
&amp;lt;vip&amp;gt;IsAuto = true,&lt;br /&gt;
checkButtonName:setStyle(IsAuto, _Is3State),&amp;lt;/vip&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (auto).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;3State&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether this check box can have 3 states (&amp;#039;&amp;#039;unchecked, checked, undetermined&amp;#039;&amp;#039;). You can use the &amp;lt;vp&amp;gt;checkButton::getStyle/2&amp;lt;/vp&amp;gt; predicate to get whether this state is set to a control&lt;br /&gt;
&amp;lt;vip&amp;gt;checkButtonName:getStyle(_IsAuto, Is3State),&lt;br /&gt;
Is3State = true,&amp;lt;/vip&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;checkButton::setStyle/2&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;vip&amp;gt;Is3State = true,&lt;br /&gt;
checkButtonName:setStyle(_IsAuto, Is3State),&amp;lt;/vip&amp;gt;&lt;br /&gt;
:to set this state programmatically.&lt;br /&gt;
:A 3-states check box is the same as an ordinary check box, except that the box can be grayed (dimmed) as well as checked. The grayed state is used to show that the state of the check box is not determined.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (3State).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;LeftText&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the control title text should be positioned on the left or on the right of the control (check box or radio button).&lt;br /&gt;
*:You can use the &amp;lt;vp&amp;gt;checkButton::getLeftText/0-&amp;gt;&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;radioButton::getLeftText/0-&amp;gt;&amp;lt;/vp&amp;gt; predicates to get whether the control has this flag&lt;br /&gt;
&amp;lt;vip&amp;gt;IsLeftText = checkButtonName:getLeftText(),&lt;br /&gt;
IsLeftText = true,&amp;lt;/vip&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;checkButton:setLeftText/1&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;radioButton:setLeftText/1&amp;lt;/vp&amp;gt; predicates&lt;br /&gt;
&amp;lt;vip&amp;gt;IsLeftText = true,&lt;br /&gt;
checkButtonName:setLeftText(IsLeftText),&amp;lt;/vip&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; (caption is on the right side).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;AlignBaseline&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the control caption text should be positioned on the same horizontal line with caption texts of all other controls, which have the same vertical position with this control.&lt;br /&gt;
*:This property is defined to all controls, which can have captions (static texts, check boxes, edit and list edit controls, etc.)&lt;br /&gt;
*:You can use the &amp;lt;vp&amp;gt;getAlignBaseline&amp;lt;/vp&amp;gt; predicates (like &amp;lt;vp&amp;gt;editControl::getAlignBaseline/0-&amp;gt;&amp;lt;/vp&amp;gt;) to get whether the control has this flag&lt;br /&gt;
&amp;lt;vip&amp;gt;IsAllignBaseLine = checkButtonName:getAllignBaseLine(),&lt;br /&gt;
IsAllignBaseLine = true,&amp;lt;/vip&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;setAlignBaseline&amp;lt;/vp&amp;gt; (like &amp;lt;vp&amp;gt;textControl::setAlignBaseline/1&amp;lt;/vp&amp;gt;) predicates&lt;br /&gt;
&amp;lt;vip&amp;gt;IsAllignBaseLine = true,&lt;br /&gt;
checkButtonName:setAllignBaseLine(IsAllignBaseLine),&amp;lt;/vip&amp;gt;&lt;br /&gt;
:to set this flag programmatically.&lt;br /&gt;
:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (align captions horizontally).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Style&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Push buttons&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:For push buttons possible values are &amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Regular&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*::Push buttons with the &amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039; style are created by the &amp;lt;vp&amp;gt;button::newCancel/1&amp;lt;/vp&amp;gt; constructor.&lt;br /&gt;
*::When a dialog/form contains a push button with the &amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039; style, then this dialog/form will provide standard handling of the Esc key - the dialog/form is simply closed without any additional actions.&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*::Push buttons with the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; style are created by the &amp;lt;vp&amp;gt;button::newOk/1&amp;lt;/vp&amp;gt; constructor.&lt;br /&gt;
*::When a dialog/form contains a push button with the &amp;#039;&amp;#039;&amp;#039;Ok&amp;#039;&amp;#039;&amp;#039; style, then this dialog/form will execute dialog/form validation check when this button is clicked. See &amp;quot;&amp;#039;&amp;#039;&amp;#039;Dialog/Form Validation&amp;#039;&amp;#039;&amp;#039;&amp;quot; tutorial (on WEB) for more information.&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Regular&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*::Push buttons with the &amp;#039;&amp;#039;&amp;#039;Regular&amp;#039;&amp;#039;&amp;#039; style are created by the ordinary &amp;lt;vp&amp;gt;button::new/1&amp;lt;/vp&amp;gt; constructor.&lt;br /&gt;
*::Such buttons do not initiate any special default handling.&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Group boxes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:For group boxes possible values are &amp;#039;&amp;#039;&amp;#039;Group Box&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Simple Border&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Horizontal Separator&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;No Border&amp;#039;&amp;#039;&amp;#039;. These values define the border type of the group box control.&lt;br /&gt;
*:The default is &amp;#039;&amp;#039;&amp;#039;Simple Border&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*:You can use the &amp;lt;vp&amp;gt;groupBox::getBorderStyle/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get the border style&lt;br /&gt;
&amp;lt;vip&amp;gt;GroupBoxBorderStyle = controlName : getBorderStyle(),&amp;lt;/vip&amp;gt;&lt;br /&gt;
:and the &amp;lt;vp&amp;gt;groupBox::setBorderStyle/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;vip&amp;gt;GroupBoxBorderStyle = groupBox(),&lt;br /&gt;
controlName : setBorderStyle(GroupBoxBorderStyle),&amp;lt;/vip&amp;gt;&lt;br /&gt;
:to set the border style programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Alignment&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Possible values are &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Center&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039;. Radio buttons in this group box determine how the text in the control is aligned.&lt;br /&gt;
*:The default value is &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039; (align left).&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*::Defines that the text in the control will be aligned left.&lt;br /&gt;
*::You can use the &amp;lt;vp&amp;gt;textControl::getAlignment/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get which of these flags the control has&lt;br /&gt;
&amp;lt;vip&amp;gt;AlignmentType = textControlName : getAlignment(),&lt;br /&gt;
AlignmentType = alignLeft(),&amp;lt;/vip&amp;gt;&lt;br /&gt;
:::and the &amp;lt;vp&amp;gt;textControl::setAlignment/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;vip&amp;gt;AlignmentType = alignLeft(),&lt;br /&gt;
textControlName : setAlignment(AlignmentType),&amp;lt;/vip&amp;gt;&lt;br /&gt;
:::to set this flag programmatically.&lt;br /&gt;
::*&amp;#039;&amp;#039;&amp;#039;Center&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:::Defines that the text in the control will be centered.&lt;br /&gt;
:::The &amp;lt;vp&amp;gt;AlignmentType = alignCenter()&amp;lt;/vp&amp;gt;.&lt;br /&gt;
::*&amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:::Defines that the text in the control will be aligned right.&lt;br /&gt;
:::The &amp;lt;vp&amp;gt;AlignmentType = alignRight()&amp;lt;/vp&amp;gt;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Wrap&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. They define whether the text in the control will be wrapped to several lines.&lt;br /&gt;
*:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (wrap).&lt;br /&gt;
*:You can use the &amp;lt;vp&amp;gt;textControl::getWrap/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;vip&amp;gt;IsNoWrap = textControlName : getWrap(),&lt;br /&gt;
IsNoWrap = true,&amp;lt;/vip&amp;gt;&lt;br /&gt;
::and the &amp;lt;vp&amp;gt;textControl::setWrap/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;vip&amp;gt;IsNoWrap = false,&lt;br /&gt;
textControlName: setWrap(IsNoWrap),&amp;lt;/vip&amp;gt;&lt;br /&gt;
::to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;IgnorePrefix&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. Setting &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; value prevents interpretation of any &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; characters in the caption of the static text control as access keys (accelerator prefix characters). Accelerator characters are displayed underlined and the prefix &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; character is deleted.&lt;br /&gt;
*:The default value is &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*:Notice that static text controls cannot be activated. Therefore, when an access key of a static text control is pressed, then the control next to this static text control, in the tab-stop order of controls in the dialog, is activated.&lt;br /&gt;
*:Most often this flag is used when filenames, which can contain the &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; character, need to be displayed in static text controls.&lt;br /&gt;
*:You can use the &amp;lt;vp&amp;gt;textControl::getIgnorePrefix/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;vip&amp;gt;IsIgnorePrefix = controlName : getIgnorePrefix(),&lt;br /&gt;
IsIgnorePrefix = true,&amp;lt;/vip&amp;gt;&lt;br /&gt;
::and the &amp;lt;vp&amp;gt;textControl::setIgnorePrefix/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;vip&amp;gt;IsIgnorePrefix = true,&lt;br /&gt;
controlName : setIgnorePrefix(IsIgnorePrefix),&amp;lt;/vip&amp;gt;&lt;br /&gt;
::to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;MultiLine&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Possible values are &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;. When this property is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then the edit control allows multiple lines.&lt;br /&gt;
*:The default value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; (allows multiple lines).&lt;br /&gt;
*:Notice that the &amp;#039;&amp;#039;&amp;#039;VScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;HScroll&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AutoVScroll&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;WantReturn&amp;#039;&amp;#039;&amp;#039; properties do not work for single-line (&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;) edit controls.&lt;br /&gt;
*:You can use the &amp;lt;vp&amp;gt;editControl::getMultiLine/0-&amp;gt;&amp;lt;/vp&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&amp;lt;vip&amp;gt;IsMultiLine = controlName : getMultiLine(),&lt;br /&gt;
IsMultiLine = true,&amp;lt;/vip&amp;gt;&lt;br /&gt;
::and the &amp;lt;vp&amp;gt;editControl::setMultiLine/1&amp;lt;/vp&amp;gt; predicate&lt;br /&gt;
&amp;lt;vip&amp;gt;IsMultiLine = true,&lt;br /&gt;
controlName : setMultiLine(IsMultiLine),&amp;lt;/vip&amp;gt;&lt;br /&gt;
::to set this flag programmatically.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;WantReturn&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If it is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, then a carriage return will be inserted as the part of an edited string, when the user presses the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; key while entering text into a multi-line edit control.&lt;br /&gt;
&lt;br /&gt;
If it is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, then pressing the &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; key has the same effect as pressing the &amp;#039;&amp;#039;default&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;) push button, which has the latest specified &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Default = True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; property value.&lt;br /&gt;
&lt;br /&gt;
This property has no effect on single-line edit controls.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::getWantReturn/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsWantReturn&amp;lt;/span&amp;gt; = controlName : getWantReturn (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsWantReturn &amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;= true,&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::setWantReturn/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsWantReturn &amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;= true, controlName : setWantReturn (&amp;lt;/nowiki&amp;gt;&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsWantReturn&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
VScroll&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;. They define whether the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;multi-line&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; control gets a vertical scroll bar when it needs one.&lt;br /&gt;
&lt;br /&gt;
The default value for edit controls is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; for other types of controls is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This property has no effect on single-line edit controls.&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::getVScroll/0-&amp;amp;gt;&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listControl::getVScroll/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicates to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsVScrollSet&amp;lt;/span&amp;gt; = controlName : getVScroll (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsVScrollSet&amp;lt;/span&amp;gt; = true,&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::setVScroll/1&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listControl::setVScroll/0&amp;lt;/span&amp;gt; predicates&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsVScrollSet&amp;lt;/span&amp;gt; = true, controlName : setVScroll (&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsVScrollSet&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
AutoVScroll&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;. They define whether the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;multi-line&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; edit control automatically scrolls text up when the user presses the &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; on the last line.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; (does not scroll).&lt;br /&gt;
&lt;br /&gt;
This property has no effect on single-line edit controls.&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::getAutoVScroll/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsAutoVScrollSet&amp;lt;/span&amp;gt; = controlName : getAutoVScroll (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsAutoVScrollSet&amp;lt;/span&amp;gt; = true,&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::setAutoVScroll/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsAutoVScrollSet&amp;lt;/span&amp;gt; = true, controlName : setAutoVScroll (&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsAutoVScrollSet&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
HScroll&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;. They define whether the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;multi-line&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; edit or list box control gets a horizontal scroll bar when it needs one.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; (does not scroll).&lt;br /&gt;
&lt;br /&gt;
This property has no effect on single-line &amp;lt;span&amp;gt;&amp;#039;&amp;#039;edit&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; controls.&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::getHScroll/0-&amp;amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listBox::getHScroll/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicates to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsHScrollSet&amp;lt;/span&amp;gt; = controlName : getHScroll (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsHScrollSet&amp;lt;/span&amp;gt; = true,&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::setHScroll/1&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listBox::setHScroll/1&amp;lt;/span&amp;gt; predicates&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsHScrollSet&amp;lt;/span&amp;gt; = true, controlName : setHScroll (&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsHScrollSet&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
AutoHScroll&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;. They define whether the control automatically scrolls text in the control in order to display a typed character, when the user types the character at the end of the line.&lt;br /&gt;
&lt;br /&gt;
If it is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, then only text that fits within the rectangular boundary is allowed. When the user presses the &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; key, the control scrolls all text back to the zero position.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; (scrolls text automatically).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::getAutoHScroll/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsAutoHScrollSet&amp;lt;/span&amp;gt; = controlName : getAutoHScroll (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsAutoHScrollSet&amp;lt;/span&amp;gt; = true,&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::setAutoHScroll/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsAutoHScrollSet&amp;lt;/span&amp;gt; = true, controlName : setAutoHScroll (&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsAutoHScrollSet&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
Border&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;. They define whether the control is created initially with a border around the control.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::getBorder/0-&amp;amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listBox::getBorder/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicates to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;BorderIsSet&amp;lt;/span&amp;gt; = controlName : getBorder (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; BorderIsSet &amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;= true,&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::setBorder/1&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listBox::setBorder/1&amp;lt;/span&amp;gt; predicates&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;BorderIsSet &amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;= true, controlName : setBorder (&amp;lt;/nowiki&amp;gt;&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;BorderIsSet&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
Password&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;. If it is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, then the edit control displays all typed-in characters as asterisks (*).&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; (displays typed characters &amp;quot;as-is&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::getPassword/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsPassword&amp;lt;/span&amp;gt; = controlName : getPassword (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsPassword &amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;= true,&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::setPassword/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsPassword &amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;= true, controlName : setPassword (&amp;lt;/nowiki&amp;gt;&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsPassword&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
HideSel&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;. If it is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, then the edit control hides selection, when it loses the input focus, and shows selection, when it receives the input focus.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; (hides selection).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::getHideSel/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsHideSel&amp;lt;/span&amp;gt; = controlName : getHideSel (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsHideSel &amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;= true,&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::setHideSel/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsHideSel &amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;= true, controlName : setHideSel (&amp;lt;/nowiki&amp;gt;&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsHideSel&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
ReadOnly&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;. If it is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, then the edit control is in the read-only mode.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; (editable).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::getReadOnly/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsReadOnly&amp;lt;/span&amp;gt; = controlName : getReadOnly (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsReadOnly &amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;= true,&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::setReadOnly/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsReadOnly &amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;= true, controlName : setReadOnly (&amp;lt;/nowiki&amp;gt;&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsReadOnly&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
Case&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Insensitive&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Upper&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Lower&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Insensitive&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Insensitive&lt;br /&gt;
&lt;br /&gt;
Defines that the edit control leaves the typed-in text &amp;quot;as-is&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This is the default value.&lt;br /&gt;
&lt;br /&gt;
Upper&lt;br /&gt;
&lt;br /&gt;
Defines that the edit control converts all typed-in characters into the upper case.&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::getUpperCase/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsUpperCase&amp;lt;/span&amp;gt; = controlName : getUpperCase (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsUpperCase &amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;= true,&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::setUpperCase/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsUpperCase &amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;= true&amp;lt;/nowiki&amp;gt;&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;,&amp;lt;/span&amp;gt; controlName : setUpperCase (&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsUpperCase&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
Lower&lt;br /&gt;
&lt;br /&gt;
Defines that the edit control converts all typed-in characters into the lower case.&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::getLowerCase/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsLowerCase&amp;lt;/span&amp;gt; = controlName : getLowerCase (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsLowerCase &amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;= true,&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;editControl::setLowerCase/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsLowerCase &amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;= true&amp;lt;/nowiki&amp;gt;&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;,&amp;lt;/span&amp;gt; controlName : setLowerCase (&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsLowerCase&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
Sort&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;. If it is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, then the list control sorts strings alphabetically.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; (sort).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listControl::getSort/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsSort&amp;lt;/span&amp;gt; = controlName : getSort (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsSort &amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;= true,&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listControl::setSort/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsSort&amp;lt;/span&amp;gt; = true, controlName : setSort (&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsSort&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
ExtendedSel&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;. If it is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, then the list box control allows selection of multiple items by using the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; key and the mouse or using the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Shift&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; key and the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Up&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Down Arrow&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; keys.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; (cannot select multiple items).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listBox::getExtendedSel/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsExtendedSel&amp;lt;/span&amp;gt; = controlName : getExtendedSel (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsExtendedSel&amp;lt;/span&amp;gt; = true,&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listBox::setExtendedSel/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsExtendedSel&amp;lt;/span&amp;gt; = true, controlName : setExtendedSel (&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsExtendedSel&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
MultiSelect&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;. If it is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, then the list box control allows selection of multiple items using the mouse.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; (cannot select multiple items).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listBox::getMultiSelect/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsMultiSelect&amp;lt;/span&amp;gt; = controlName : getMultiSelect (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsMultiSelect&amp;lt;/span&amp;gt; = true,&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listBox::setMultiSelect/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsMultiSelect&amp;lt;/span&amp;gt; = true, controlName : setMultiSelect (&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsMultiSelect&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
AutoNotify&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;. If it is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, then the list box control notifies the parent window with an input message whenever the user clicks or double-clicks in the list box.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True &amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;(notify).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listBox::getAutoNotify/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsAutoNotify&amp;lt;/span&amp;gt; = controlName : getAutoNotify (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsAutoNotify&amp;lt;/span&amp;gt; = true,&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listBox::setAutoNotify/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsAutoNotify&amp;lt;/span&amp;gt; = true, controlName : setAutoNotify (&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsAutoNotify&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
UseTabStops&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;. If it is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, then the list box control recognizes and expands TAB characters when drawing strings.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; (does not expand).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;control::getUseTabStops/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsUseTabStops&amp;lt;/span&amp;gt; = controlName : getUseTabStops (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsUseTabStops&amp;lt;/span&amp;gt; = true,&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;control::setUseTabStops/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsUseTabStops&amp;lt;/span&amp;gt; = true, controlName : setUseTabStops (&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsUseTabStops&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
StaticScrollbar&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;. If it is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, then the list control shows a disabled vertical scroll bar for the list box when the box does not contain enough items to scroll. If it is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, then the scroll bar is hidden when the list box does not contain enough items.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True &amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;(shows vertical scroll bar).&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listControl::getStaticScrollbar/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsStaticScrollbar&amp;lt;/span&amp;gt; = controlName : getStaticScrollbar (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsStaticScrollbar&amp;lt;/span&amp;gt; = true,&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listControl::setStaticScrollbar/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsStaticScrollbar&amp;lt;/span&amp;gt; = true, controlName : setStaticScrollbar (&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsStaticScrollbar&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
AllowPartialRows&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;. If it is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, then the size of the list box is exactly the size specified by the application when it creates the list box. Normally, Windows re-sizes list boxes so that a list box does not display partial items.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; for list box controls and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; for list button and list edit controls.&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listControl::getAllowPartialRows/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsAllowPartialRows&amp;lt;/span&amp;gt; = controlName : getAllowPartialRows (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsAllowPartialRows &amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;= true,&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listControl::setAllowPartialRows/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsAllowPartialRows&amp;lt;/span&amp;gt; = true, controlName : setAllowPartialRows (&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsAllowPartialRows&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
MultiColumn&lt;br /&gt;
&lt;br /&gt;
Possible values are &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;. If it is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, then the list box control can have multiple columns.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listBox::getMultiColumn/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get whether the control has this flag&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsMultiColumn&amp;lt;/span&amp;gt; = controlName : getMultiColumn (),&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt; IsMultiColumn&amp;lt;/span&amp;gt; = true,&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listBox::setMultiColumn/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsMultiColumn&amp;lt;/span&amp;gt; = true, controlName : setMultiColumn (&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;IsMultiColumn&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this flag programmatically.&lt;br /&gt;
&lt;br /&gt;
Rows&lt;br /&gt;
&lt;br /&gt;
Possible values are positive numbers. For list button and list edit controls it specifies the maximal number of rows, which can be displayed in the opened list box sub-control.&lt;br /&gt;
&lt;br /&gt;
The default value is &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listControl::getMaxDropDownRows/0-&amp;amp;gt;&amp;lt;/span&amp;gt; predicate to get this number&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;MaxDropDownRowNumber&amp;lt;/span&amp;gt; = controlName : getMaxDropDownRows (),&lt;br /&gt;
&lt;br /&gt;
and the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;listControl::setMaxDropDownRows/1&amp;lt;/span&amp;gt; predicate&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;MaxDropDownRowNumber&amp;lt;/span&amp;gt; = 5, controlName : setMaxDropDownRows (&amp;lt;span class=&amp;quot;vp-variable&amp;quot;&amp;gt;MaxDropDownRowNumber&amp;lt;/span&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
to set this number programmatically.&lt;br /&gt;
&lt;br /&gt;
Icon Name&lt;br /&gt;
&lt;br /&gt;
The icon name must be selected from the list of icon names registered in the Project (by clicking the [[Image:ListButton_button.png]] button). In order to an icon name appears in the list of registered icon names, you should add the icon file (&amp;lt;span class=&amp;quot;file&amp;quot;&amp;gt;IconName.ICO&amp;lt;/span&amp;gt;) into the project files. To do this you should use the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;File | Add&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; command (the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Resource Files&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; should be selected in the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Files of Type&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Class&lt;br /&gt;
&lt;br /&gt;
Specify a name of a Windows class for the custom control (your application code must register the custom control by this name).&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Editing_a_Dialog&amp;diff=3563</id>
		<title>Ide/Resource Editor/Editing a Dialog</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Resource_Editor/Editing_a_Dialog&amp;diff=3563"/>
		<updated>2013-04-24T08:53:04Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To edit a dialog, in the project tree (in the Project window) double click (or press &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039;) the name of a file with a dialog description (the &amp;#039;&amp;#039;&amp;#039;.dlg&amp;#039;&amp;#039;&amp;#039; filename extension). The &lt;br /&gt;
{{ide|Resource Editor#IDE Designer|&amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;}} appears and you can edit whatever form of a dialog you wish.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_MyDialog_Editor.png|center]]&lt;br /&gt;
&lt;br /&gt;
The IDE Designer After Creation of a New Dialog&lt;br /&gt;
&lt;br /&gt;
When a new dialog is created, it will by default have three push button controls: &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Cancel&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Help&amp;#039;&amp;#039;&amp;#039;. These can freely be rearranged or deleted.&lt;br /&gt;
&lt;br /&gt;
==== Controls ====&lt;br /&gt;
&lt;br /&gt;
Each control in a dialog must have an identifying name (constant in VPI style dialogs), which is unique within that dialog. While two controls within one dialog may not have the same name (or constant value), it is actually a good idea if controls in different dialogs, which perform the same action have the same names (or constants).&lt;br /&gt;
&lt;br /&gt;
===== Types of Controls =====&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PushButton.png]]&lt;br /&gt;
| A &amp;#039;&amp;#039;&amp;#039;Push Button&amp;#039;&amp;#039;&amp;#039; control serves to initiate a specialized action in an application.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_CheckBox.png]]&lt;br /&gt;
| A &amp;#039;&amp;#039;&amp;#039;Check Box&amp;#039;&amp;#039;&amp;#039; control lets you indicate a choice among two alternatives. For example some facility may be switched ON or switched OFF.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_RadioButton.png]]&lt;br /&gt;
| A group of &amp;#039;&amp;#039;&amp;#039;Radio Button&amp;#039;&amp;#039;&amp;#039; controls serves to indicate one choice from among a list of alternatives.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_StaticText.png]]&lt;br /&gt;
| A &amp;#039;&amp;#039;&amp;#039;Static Text&amp;#039;&amp;#039;&amp;#039; control reserves an area for the text in the dialog. Although called static, in fact the application can change the text during execution. This is often used for prompts or field names relating to other controls.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_EditControl.png]]&lt;br /&gt;
| An &amp;#039;&amp;#039;&amp;#039;Edit Control&amp;#039;&amp;#039;&amp;#039; reserves an area for text editing (e.g. names, numbers, text constants etc.). Editing text strings with multiple lines is possible.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_ListBox.png]]&lt;br /&gt;
| A &amp;#039;&amp;#039;&amp;#039;List Box&amp;#039;&amp;#039;&amp;#039; allows you to view a list of elements and to select one - or several - elements from this list.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_ListButton.png]]&lt;br /&gt;
| A &amp;#039;&amp;#039;&amp;#039;List Button&amp;#039;&amp;#039;&amp;#039; control serves for choosing one from the pop-out set of the alternatives revealed by pressing the button. Pressing the button again pops the list back in again.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_ListEdit.png]]&lt;br /&gt;
| A &amp;#039;&amp;#039;&amp;#039;List Edit&amp;#039;&amp;#039;&amp;#039; control allows single line text editing like an &amp;#039;&amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&amp;#039; control, or selection from a list of elements.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_VerticalScrollBar.png]]  [[Image:Ide_HorizontalScrollBar.png]]&lt;br /&gt;
| The &amp;#039;&amp;#039;&amp;#039;Vertical Scroll Bar&amp;#039;&amp;#039;&amp;#039; and the &amp;#039;&amp;#039;&amp;#039;Horizontal Scroll Bar&amp;#039;&amp;#039;&amp;#039; controls serve to select a value within a scale of values.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_GroupBox.png]]&lt;br /&gt;
| A &amp;#039;&amp;#039;&amp;#039;Group Box&amp;#039;&amp;#039;&amp;#039; control serves for assembling together a number of controls in a functional group with a Group Name. Its only function is a visual one.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Icon.png]]&lt;br /&gt;
| An &amp;#039;&amp;#039;&amp;#039;Icon&amp;#039;&amp;#039;&amp;#039; control reserves an area for an icon image.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_CustomControl.png]]&lt;br /&gt;
| A &amp;#039;&amp;#039;&amp;#039;Custom Control&amp;#039;&amp;#039;&amp;#039; can be either IDE Controls created in the project, it can be VPI user-defined control with a window class defined by &amp;lt;vp&amp;gt;vpi::classCreate&amp;lt;/vp&amp;gt;, or it can be controls imported as {{ide|Creating new Project Items#Creating a COM Package|COM packages}} from DLLs, VBXs or OCXs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Inserting Controls =====&lt;br /&gt;
&lt;br /&gt;
To insert a new control in a dialog, click the icon of the desired control type in the &amp;#039;&amp;#039;&amp;#039;Controls toolbar&amp;#039;&amp;#039;&amp;#039;. (You can also select the desired control type in the &amp;#039;&amp;#039;&amp;#039;Controls&amp;#039;&amp;#039;&amp;#039; sub-menu of the main IDE menu or in the pop-up menu in the {{ide|Resource Editor#IDE Designer|&amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;}}.)&lt;br /&gt;
&lt;br /&gt;
===== Controls Toolbar =====&lt;br /&gt;
&lt;br /&gt;
Originally the &amp;#039;&amp;#039;&amp;#039;Controls toolbar&amp;#039;&amp;#039;&amp;#039; is displayed below the {{ide|Resource Editor#IDE Designer|&amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;}} window. You see it in the following picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_Controls.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Controls Toolbar&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
Clicking icons in the &amp;#039;&amp;#039;&amp;#039;Controls toolbar&amp;#039;&amp;#039;&amp;#039; you select a type of a control to be placed into the edited dialog/window/form/IDE control (sometimes we will use the term &amp;#039;&amp;#039;container&amp;#039;&amp;#039; instead of dialog/window/form/IDE control). When you click a control type icon, then the current cursor is replaced with the cursor correspondent to the control type to be inserted. Move the cursor to some position in the container client area and click the mouse button. The control with the default size will be inserted at the specified position.&lt;br /&gt;
&lt;br /&gt;
Instead of dropping a control into a container with a click, it is possible to drag out the rectangle (in the container client area) where a control should be placed; so you can specify not only the control position but also the control size.&lt;br /&gt;
&lt;br /&gt;
After a VPI control is placed with the mouse into a {{ide|Resource_Editor#GUI and VPI Style Resources|VPI style container}}, the correspondent VPI control Attributes dialog appears. In this dialog you can change some control attributes, when you close the dialog, the control appears at the specified location in the container.&lt;br /&gt;
&lt;br /&gt;
After a GUI control is placed with the mouse into a {{ide|Resource_Editor#GUI and VPI Style Resources|GUI style container}}, it immediately appears at the specified location in the container. To change properties of the GUI control, one should select it then the list of GUI control properties appears in the {{ide|Resource Editor#GUI Control Properties Table|GUI control Properties table}}.&lt;br /&gt;
&lt;br /&gt;
There are the following icons in the &amp;#039;&amp;#039;&amp;#039;Controls toolbar:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Icon&lt;br /&gt;
! Insert a new:&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_PushBtn.png]]&lt;br /&gt;
| Push Button&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_PushBtn.png]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_CheckBx.png]]&lt;br /&gt;
| Check Box&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_Check.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_RadioBtn.png]]&lt;br /&gt;
| Radio Button&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_RB.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_StaText.png]]&lt;br /&gt;
| Static Text Control&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_Text.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_EditCtrl.png]]&lt;br /&gt;
| Edit Control&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_Edit.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_ListBox.png]]&lt;br /&gt;
| List Box&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_ListBox.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_ListBtn.png]]&lt;br /&gt;
| List Button&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_ListBtn.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_ListEdit.png]]&lt;br /&gt;
| List Edit&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_ListEdit.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_HScroll.png]]&lt;br /&gt;
| Horizontal Scroll Bar&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_HScroll.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_VScroll.png]]&lt;br /&gt;
| Vertical Scroll Bar&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_VScroll.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_GroupBox.png]]&lt;br /&gt;
| Group Box&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_Group.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_Icon.png]]&lt;br /&gt;
| Icon Control&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_Icon.png]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Ctrl_Custom.png]]&lt;br /&gt;
| Custom Control&lt;br /&gt;
| After selection of this control the cursor becomes [[Image:Ide_Cursor_Custom.png]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Selecting and Deselecting Controls =====&lt;br /&gt;
&lt;br /&gt;
Click inside a control to select one control. A frame appears around the selected control.&lt;br /&gt;
&lt;br /&gt;
To select a group of controls move the mouse pointer to the point in the dialog you want to be one corner of the selected area and press and hold the left mouse button. While holding the left mouse button move the mouse until all the desired controls in the dialog are inside the selected area. Then release the mouse button. All controls inside the specified rectangle will be selected.&lt;br /&gt;
&lt;br /&gt;
Also after one or more controls are already selected, you can include one extra control in the selection by holding down the &amp;#039;&amp;#039;&amp;#039;Ctrl&amp;#039;&amp;#039;&amp;#039; key and click the control.&lt;br /&gt;
&lt;br /&gt;
To deselect the control or group of controls click outside the selecting frame. Deselected controls lose their frame.&lt;br /&gt;
&lt;br /&gt;
===== Resizing Controls =====&lt;br /&gt;
&lt;br /&gt;
Once a control has been inserted in the dialog, it has a default size. To re-size a control, first click inside the control area to select it. Then move the cursor to the sizing handles on the selection frame. A new shape of cursor indicates the direction in which you can re-size the control. Press and hold the mouse button, drag until the selected control has the size you want, then release the mouse button.&lt;br /&gt;
&lt;br /&gt;
You can also change the size of a control by double-clicking it to activate the dialog for control attributes setting. Select the position you want to change and after specifying a new position or size, press enter to return to the dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Remark:&amp;#039;&amp;#039;&amp;#039; You cannot change the size of icons. You can only change their location.&lt;br /&gt;
&lt;br /&gt;
===== Moving Controls =====&lt;br /&gt;
&lt;br /&gt;
To move a control or a group of controls first select them. Then move the cursor inside the selection frame, press and hold the mouse button, drag the mouse pointer to a new location and release the mouse. Also, when one or more controls are selected, it is possible to use the cursor keys to move the selection in small steps (corresponding to the &amp;#039;&amp;#039;&amp;#039;Grid&amp;#039;&amp;#039;&amp;#039; settings).&lt;br /&gt;
&lt;br /&gt;
===== Arranging Controls =====&lt;br /&gt;
&lt;br /&gt;
To arrange a group of controls first select the group. Then click an appropriate button in the &amp;#039;&amp;#039;&amp;#039;Layout&amp;#039;&amp;#039;&amp;#039; toolbar or a menu item in the &amp;#039;&amp;#039;&amp;#039;Layout&amp;#039;&amp;#039;&amp;#039; menu of the IDE menu (or in the pop-up menu).&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_Layout.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Layout Toolbar&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Layout&amp;#039;&amp;#039;&amp;#039; commands for justifying and resizing controls:&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_AllignLeft.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Align Left&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Align the selected controls along their left sides.&lt;br /&gt;
|- &lt;br /&gt;
| [[Image:Ide_Layout_CenterVertically.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Align Center&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Center the selected controls vertically.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_AllignRight.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Align Right&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Align the selected controls along their right sides.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_AllignTops.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Align Top&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Align the selected controls along their tops.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_CenterHorizontally.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Align Middle&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Center the selected controls horizontally.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_AllignBottom.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Align Bottom&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Align the selected controls along their bottoms.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_SpacingHorizontally.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Even Horizontal Spacing&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Spacing the selected controls evenly between the leftmost and the rightmost controls.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_GridButton.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Grid&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Toggle the Grid (see below).&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_SpacingVertically.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Even Vertical Spacing&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Spacing the selected controls evenly between the topmost and the bottom-most controls.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_SameSize.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Make Same Size&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Make the selected controls the same size as a model control.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_SameHorizontal.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Make Same Horizontal Size&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Make the selected controls the same width as a model control.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_Layout_SameVertical.png]]&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Make Same Vertical Size&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Make the selected controls the same height as a model control.&lt;br /&gt;
|-&lt;br /&gt;
|   &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Size To Contents&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Resize the selected controls to optimally display its titles (caption texts).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Editing Properties of GUI Controls ====&lt;br /&gt;
&lt;br /&gt;
When you open a GUI dialog or a Form (GUI window) in the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;, then near from the opened dialog (form) the {{ide|Resource Editor#GUI Control Properties Table|&amp;#039;&amp;#039;&amp;#039;Control Properties table&amp;#039;&amp;#039;&amp;#039;}} appears.&lt;br /&gt;
&lt;br /&gt;
To change &amp;#039;&amp;#039;properties&amp;#039;&amp;#039; of a GUI package control first select this control (by clicking in it) in the dialog (form). The current set of the control properties appears in the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table. Now you can edit the displayed GUI control properties.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Click here to view {{ide|Resource Editor#GUI Control Properties Table|GUI Control Properties table}}&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The displayed set of properties depends on the control type. The {{ide|Resource Editor#GUI Control Properties Table|&amp;#039;&amp;#039;&amp;#039;Control Properties table&amp;#039;&amp;#039;&amp;#039;}} contains two types of properties. General properties are common to all types of controls and some properties, which are individual to different kinds of controls.&lt;br /&gt;
&lt;br /&gt;
Initially this &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table is empty. However, as soon as one of controls in the edited dialog (form) is selected this table starts to display properties of the selected control.&lt;br /&gt;
&lt;br /&gt;
If the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table is closed, then double-click a control - the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table appears. Also the &amp;#039;&amp;#039;&amp;#039;Control Attributes&amp;#039;&amp;#039;&amp;#039; command, from the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039; {{ide|Resource Editor#Speed Menu|speed menu}}, can be used to open the &amp;#039;&amp;#039;&amp;#039;Control Properties&amp;#039;&amp;#039;&amp;#039; table.&lt;br /&gt;
&lt;br /&gt;
{{:ide/Resource Editor/GUI Control Properties Table}}&lt;br /&gt;
&lt;br /&gt;
==== Editing Attributes of VPI Controls ====&lt;br /&gt;
&lt;br /&gt;
To change attributes of a VPI package control double-click it or select the control and activates the &amp;#039;&amp;#039;&amp;#039;Control Attributes&amp;#039;&amp;#039;&amp;#039; command from the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039; {{ide|Resource Editor#Speed Menu|speed menu}}. Then the &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;ControlType&amp;gt;&amp;#039;&amp;#039; Attributes&amp;#039;&amp;#039;&amp;#039; dialog appears.&lt;br /&gt;
&lt;br /&gt;
These dialogs contains two levels of attributes. The general group contains attributes, which are common to all types of controls: the &amp;#039;&amp;#039;&amp;#039;Text&amp;#039;&amp;#039;&amp;#039; determines the control title, the &amp;#039;&amp;#039;&amp;#039;Constant&amp;#039;&amp;#039;&amp;#039; (name) is used as the control identifier, and the &amp;#039;&amp;#039;&amp;#039;Control Size&amp;#039;&amp;#039;&amp;#039; group determines position and size of the control.&lt;br /&gt;
&lt;br /&gt;
Notice that the &amp;#039;&amp;#039;&amp;#039;Text&amp;#039;&amp;#039;&amp;#039; property/attribute is not used for some controls, for instance, it is not used for scroll bars.&lt;br /&gt;
&lt;br /&gt;
Notice that in the &amp;#039;&amp;#039;&amp;#039;Text&amp;#039;&amp;#039;&amp;#039; fields the ampersand symbol &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; is reserved for indicating that the next to it character is to be underlined. For example, if you use the text string &amp;#039;&amp;#039;&amp;#039;E&amp;amp;xit&amp;#039;&amp;#039;&amp;#039; as a control name, then this control will be displayed with the title &amp;#039;&amp;#039;&amp;#039;E&amp;lt;u&amp;gt;x&amp;lt;/u&amp;gt;it&amp;#039;&amp;#039;&amp;#039; at runtime. I.e. the char &amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;x&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039; will be displayed underlined (thus visually indicating that the &amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;x&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039; is an accelerator key). If you need to display the ampersand &amp;lt;vp&amp;gt;&amp;amp;&amp;lt;/vp&amp;gt; symbol in the &amp;#039;&amp;#039;&amp;#039;Text&amp;#039;&amp;#039;&amp;#039; of a control, then use two of them &amp;lt;vp&amp;gt;&amp;amp;&amp;amp;&amp;lt;/vp&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other attributes are individual to different kinds of controls.&lt;br /&gt;
&lt;br /&gt;
===== Attributes of VPI Controls =====&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Push_Button_Flags.htm Push Button Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Check_Box_Flags.htm Check Box Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Custom_Control_Attributes.htm Custom Control Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Radio_Button_Flags.htm Radio Button Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Static_Text_Flags.htm Static Text Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Edit_Control_Flags.htm Edit Control Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\List_Box_Attributes.htm List Box Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\List_Button_Attributes.htm List Button Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\List_Edit_Attributes.htm List Edit Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Scroll_Bar_Attributes.htm Scroll Bar Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Group_Box_Attributes.htm Group Box Attributes]&lt;br /&gt;
&lt;br /&gt;
[Properties_of_VPI_Controls\Icon_Control_Attributes.htm Icon Attributes]&lt;br /&gt;
&lt;br /&gt;
==== Using Anchors for Positioning GUI Controls while Dialog Resizing ====&lt;br /&gt;
&lt;br /&gt;
VPI controls remember in their attributes ({{ide|Resource Editor#Attributes of VPI Controls|Attributes of VPI Controls}}) only their absolute positions and sizes. Therefore, when a VPI dialog or a VPI window containing such VPI controls are resized, these VPI controls do not change their positions and sizes!&lt;br /&gt;
&lt;br /&gt;
In difference to them GUI controls have additional &amp;#039;&amp;#039;Anchor&amp;#039;&amp;#039; properties, which help to reposition (and may be resize) GUI controls when containing them GUI dialog (or form) is resized.&lt;br /&gt;
&lt;br /&gt;
Each GUI control has four anchor properties: &amp;#039;&amp;#039;&amp;#039;Left Anchor&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Top Anchor&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Right Anchor&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Bottom Anchor&amp;#039;&amp;#039;&amp;#039; (see &amp;#039;&amp;#039;&amp;#039;[Properties_of_GUI_Controls\Properties_of_GUI_Controls.htm#Anchors Anchor Properties of GUI Controls]&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
Each anchor determines that the specified (&amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Top&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Bottom&amp;#039;&amp;#039;&amp;#039;) control boundary should be &amp;#039;&amp;#039;&amp;#039;always&amp;#039;&amp;#039;&amp;#039; positioned on the stated distance from the nearest (correspondent) border of the dialog (frame).&lt;br /&gt;
&lt;br /&gt;
Each of anchors can have the &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; values. When the anchor value is &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, then this anchor is active (used to position the correspondent control).&lt;br /&gt;
&lt;br /&gt;
For example, when the &amp;#039;&amp;#039;&amp;#039;Left Anchor&amp;#039;&amp;#039;&amp;#039; is active (has the &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; value), then the &amp;#039;&amp;#039;left&amp;#039;&amp;#039; control boundary should be positioned on the stated distance from the nearest (&amp;#039;&amp;#039;left&amp;#039;&amp;#039;) border of the dialog (frame).&lt;br /&gt;
&lt;br /&gt;
The simplest way to see which anchors are active for a control, is to select this control. Then some red arrows between control boundaries and correspondent boundaries of the dialog can bee seen. Each arrow specifies, that the correspondent anchor is active. For example, the arrow from the control top to the dialog top identifies, that the &amp;#039;&amp;#039;&amp;#039;Top Anchor&amp;#039;&amp;#039;&amp;#039; is active. In the picture below, you see three arrows, which specify that the &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Top&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039; anchors are active to the &amp;#039;&amp;#039;&amp;#039;Push Button&amp;#039;&amp;#039;&amp;#039; control.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_de_Anchors.png|center]]&lt;br /&gt;
&lt;br /&gt;
Numbers near such arrows show distances (in Dialog Base Units) between the correspondent boundaries of the control and the dialog.&lt;br /&gt;
&lt;br /&gt;
Normally each control has one active horizontal and one active vertical anchors. When the dialog is resized, then such control is always positioned on the specified distances from the specified boundaries of the dialog. The size of the control is not changed!&lt;br /&gt;
&lt;br /&gt;
When a control has both horizontal (or/and both vertical) anchors active, then both horizontal (or/and both vertical) boundaries of the control should be placed on some specified distances from the correspondent horizontal (vertical) boundaries of the dialog. Therefore, when the dialog is resized, then such control is also resized accordingly to keep the specified distances.&lt;br /&gt;
&lt;br /&gt;
When no one of horizontal (or vertical) anchors of a control are active, then no one of horizontal (or vertical) boundaries of the control are bounded to the correspondent horizontal (vertical) boundaries of the dialog. Coordinates of such controls are handles on the &amp;quot;proportional basis&amp;quot;. For example, when the dialog width is increased onto &amp;lt;vp&amp;gt;Delta&amp;lt;/vp&amp;gt; dialog base units, then the &amp;lt;vp&amp;gt;X&amp;lt;/vp&amp;gt; coordinate of the control is also increased, but it is increased two times smaller. That is the &amp;lt;vp&amp;gt;X&amp;lt;/vp&amp;gt; coordinate of the control is increased only onto &amp;lt;vp&amp;gt;Delta/2&amp;lt;/vp&amp;gt; dialog base units.&lt;br /&gt;
&lt;br /&gt;
==== Cut, Copy and Paste, Undo and Redo ====&lt;br /&gt;
&lt;br /&gt;
You can &amp;#039;&amp;#039;&amp;#039;Cut&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039; a group of selected controls onto the Windows clipboard, and &amp;#039;&amp;#039;&amp;#039;Paste&amp;#039;&amp;#039;&amp;#039; controls from the clipboard back into a dialog. The &amp;#039;&amp;#039;&amp;#039;Undo&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Redo&amp;#039;&amp;#039;&amp;#039; commands serve to delete or restore the last editing operations of your dialog.&lt;br /&gt;
&lt;br /&gt;
==== Grid ====&lt;br /&gt;
&lt;br /&gt;
When the menu (or the pop-up menu) entry &amp;#039;&amp;#039;&amp;#039;Resource | Grid&amp;#039;&amp;#039;&amp;#039; is activated, or when the [[Image:Ide_GridButton.png]] button from the &amp;#039;&amp;#039;&amp;#039;Layout&amp;#039;&amp;#039;&amp;#039; toolbar is pressed, the following dialog appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_GridSpecification.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Dialog to Specify the Grid Properties&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
With a grid in place, arranging the controls inside a dialog is easier. Also it is possible to tell the {{ide|Resource Editor#IDE Designer|&amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;}} by the &amp;#039;&amp;#039;&amp;#039;Snap to Grid&amp;#039;&amp;#039;&amp;#039; that it should place controls at the grid intersections to give a satisfactory result.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_MyDialog_withGrid.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Using a grid in the Dialog/Window/Form Editor&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Test Mode ====&lt;br /&gt;
&lt;br /&gt;
The {{ide|Resource Editor#IDE Designer|&amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;}} has the &amp;#039;&amp;#039;&amp;#039;Test Mode&amp;#039;&amp;#039;&amp;#039;, so it is possible to see how the dialog with the created controls behaves. To illustrate the &amp;#039;&amp;#039;&amp;#039;Test Mode&amp;#039;&amp;#039;&amp;#039; we will assign some default values to the controls. The test mode is activated and deactivated from the &amp;#039;&amp;#039;&amp;#039;Resource&amp;#039;&amp;#039;&amp;#039; menu (or from the pop-up menu).&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_MyDialog_TestMode.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Test Mode for a Dialog&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Tab Stops ====&lt;br /&gt;
&lt;br /&gt;
When activating the menu (or the pop-up menu) entry &amp;#039;&amp;#039;&amp;#039;Resource | Tabstops&amp;#039;&amp;#039;&amp;#039;, it is possible to specify to which controls you can Tab to in the dialog. When this command is activated a small button with the &amp;lt;vp&amp;gt;+&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;-&amp;lt;/vp&amp;gt; appears on controls depending upon whether the control has a tab stop or not. By clicking the small buttons, it is possible to toggle the setting.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_MyDialog_TabStops.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Specifying Tab Stops for a Dialog&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
To exit the tab stop mode, just click in the dialog but outside of any controls.&lt;br /&gt;
&lt;br /&gt;
==== Visit Order ====&lt;br /&gt;
&lt;br /&gt;
When the tab stops have been specified for a dialog, then it is possible to specify the order in which controls will receive focus when tabbing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_MyDialog_VisitOrder.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Displaying the Visit Order&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
To change the visit order, click a small rectangle displaying the visit order number for a control that has an incorrect sequence number and this will bring up another dialog to change this sequence:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_MyDialog_ChangeVisitOrder.png|center|frame|&amp;#039;&amp;#039;&amp;#039;Changing the Visit Order&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
To stop the visit order mode, just click in the dialog outside any controls.&lt;br /&gt;
&lt;br /&gt;
==== Speed Menu ====&lt;br /&gt;
&lt;br /&gt;
When you are in the {{ide|Resource Editor#IDE Designer|&amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;}} you can click the right mouse button to activate the Speed Menu. From this menu you can easily call any {{ide|Resource Editor#IDE Designer|&amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;}} command:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_We_SpeedMenu.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The IDE Designer Speed Menu&amp;#039;&amp;#039;&amp;#039;]]&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Project_Tree&amp;diff=3562</id>
		<title>Ide/Project Tree</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Project_Tree&amp;diff=3562"/>
		<updated>2013-04-23T09:51:18Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|Project Window and Project Tree}}&lt;br /&gt;
&lt;br /&gt;
=== The Project Tree ===&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window is opened when you load a project into the IDE or create a new project.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window provides the main view onto the loaded project. The &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window consists of two panes:&lt;br /&gt;
&lt;br /&gt;
* The &amp;#039;&amp;#039;&amp;#039;Project Tree&amp;#039;&amp;#039;&amp;#039; pane. It is the &amp;#039;&amp;#039;&amp;#039;left&amp;#039;&amp;#039;&amp;#039; pane. It displays the &amp;#039;&amp;#039;Project tree&amp;#039;&amp;#039;. In the &amp;#039;&amp;#039;Project tree&amp;#039;&amp;#039; you can see all modules included into the project.&lt;br /&gt;
* The &amp;#039;&amp;#039;&amp;#039;Browse Information&amp;#039;&amp;#039;&amp;#039; pane. It is the &amp;#039;&amp;#039;&amp;#039;right&amp;#039;&amp;#039;&amp;#039; pane. It displays the Browse information from the file selected in the &amp;#039;&amp;#039;&amp;#039;Project Tree&amp;#039;&amp;#039;&amp;#039; pane. These are: names of interfaces, classes, predicates, and other Visual Prolog names declared/defined in this file.&lt;br /&gt;
&lt;br /&gt;
In the &amp;#039;&amp;#039;Project tree&amp;#039;&amp;#039; you can see files that are registered in the project: object libraries (and type libraries), DLLs (Dynamically Linked Libraries), object files, resource description (descriptions of menus, dialogs, windows, forms, toolbars) and resource files (bitmaps, icons, cursors), the manifest file and Visual Prolog packages (&amp;lt;vp&amp;gt;*.pack&amp;lt;/vp&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_PT_NotCompiled.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The &amp;#039;&amp;#039;Project tree&amp;#039;&amp;#039; for a new not compiled GUI style project&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
After a package is compiled, the Project tree starts to show some additional information about the package files. You can see the package headers (&amp;lt;vp&amp;gt;*.ph&amp;lt;/vp&amp;gt;) and Visual Prolog source files (interfaces - &amp;lt;vp&amp;gt;*.i&amp;lt;/vp&amp;gt;, classes - &amp;lt;vp&amp;gt;*.cl&amp;lt;/vp&amp;gt;, class implementations - &amp;lt;vp&amp;gt;*.pro&amp;lt;/vp&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
And the &amp;#039;&amp;#039;&amp;#039;Browse Information&amp;#039;&amp;#039;&amp;#039; pane starts to display for each file:&lt;br /&gt;
&lt;br /&gt;
* Interfaces and classes that are declared in the file.&lt;br /&gt;
* Classes that are implemented in the file.&lt;br /&gt;
* Constructors, class predicates, object predicates, and local predicates that are declared and implemented in the file. Declarations and implementations are displayed with their arities.&lt;br /&gt;
* Class and object facts that are defined in the file.&lt;br /&gt;
* Domains and constants that are defined in the file.&lt;br /&gt;
* Properties that are defined in the file. They are displayed with their flow patterns.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_PT_Compiled.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The &amp;#039;&amp;#039;Project tree&amp;#039;&amp;#039; - as you see it for a compiled project&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
=== Icons Used in the Project Window ===&lt;br /&gt;
&lt;br /&gt;
The Project window uses the following icons to identify different kinds of items:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Icons Used in the Project Tree Pane&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Icon&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Project Directories&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Folder.png]]&lt;br /&gt;
| The Visual Prolog root directory. This is the root directory of your Visual Prolog system installation.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Folder.png]]&lt;br /&gt;
| Project subdirectories&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Project Source Files&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Gui.png]]&lt;br /&gt;
| Project file&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Package.png]]&lt;br /&gt;
| Package file&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_ComPackage.png]]&lt;br /&gt;
| VPCom Package file&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_CFolder.png]]&lt;br /&gt;
| Project module file that is not a package or a type library. For example, object libraries &amp;lt;vp&amp;gt;*.lib&amp;lt;/vp&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_SubModule.png]]&lt;br /&gt;
| A project include file. Such files are included into one or more project packages (modules)&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Manifest.png]]&lt;br /&gt;
| {{ide|Project Settings#Platform|Manifest file}} &lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Project Resource Files&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Image.png]]&lt;br /&gt;
| Image (bitmap, cursor or icon) file&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Menu.png]]&lt;br /&gt;
| Menu description file&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Toolbar.png]]&lt;br /&gt;
| Toolbar description file&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Dialog.png]]&lt;br /&gt;
| Dialog description file&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Control.png]]&lt;br /&gt;
| IDE custom control description file&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Window.png]]&lt;br /&gt;
| Window description file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Icons Used in the Browse Information Pane&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Icon&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Compilation Items&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Interface.png]]&lt;br /&gt;
| Interface definition&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Class.png]]&lt;br /&gt;
| Class declaration&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Class_Impl.png]]&lt;br /&gt;
| Class implementation or a goal section&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Constants, Domains, Predicates and Facts&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_NetDisk.png]]&lt;br /&gt;
| Groups of &amp;lt;vp&amp;gt;constants&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;domains&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;predicates&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;facts&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;properties&amp;lt;/vp&amp;gt;. &amp;lt;br /&amp;gt; When you check ON the &amp;#039;&amp;#039;&amp;#039;Group Members&amp;#039;&amp;#039;&amp;#039; in the &amp;#039;&amp;#039;&amp;#039;Browse Information&amp;#039;&amp;#039;&amp;#039; pop-up menu, then it groups together all constants, domains, predicates, and facts (declared or defined in a file). This icon is displayed before each such group.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Facts_section.png]]&lt;br /&gt;
| &amp;lt;vp&amp;gt;facts&amp;lt;/vp&amp;gt; sections. This icon is displayed before each named &amp;lt;vp&amp;gt;facts&amp;lt;/vp&amp;gt; section. All unnamed &amp;lt;vp&amp;gt;facts&amp;lt;/vp&amp;gt; sections in one compilation item are merged into one&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Constructor.png]]&lt;br /&gt;
| Public constructor&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Constructor_local.png]]&lt;br /&gt;
| Private constructor&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Pred_cl.png]]&lt;br /&gt;
| Public class predicate&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Pred_loc.png]]&lt;br /&gt;
| Private class predicate&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Pred_obj.png]]&lt;br /&gt;
| Public object predicate&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Pred_locObj.png]]&lt;br /&gt;
| Private object predicate&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Domains_cl.png]]&lt;br /&gt;
| Public domain&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Domains.png]]&lt;br /&gt;
| Private domain&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Constant_cl.png]]&lt;br /&gt;
| Public constant&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Constant.png]]&lt;br /&gt;
| Private constant&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Facts.png]]&lt;br /&gt;
| Class fact or private class property&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Facts_obj.png]]&lt;br /&gt;
| Object fact or private object property&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Property.png]]&lt;br /&gt;
| Public class property&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Ide_PT_Property_obj.png]]&lt;br /&gt;
| Public object property&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Project Tree Properties ===&lt;br /&gt;
&lt;br /&gt;
Using the &amp;#039;&amp;#039;&amp;#039;File |New&amp;#039;&amp;#039;&amp;#039; and the &amp;#039;&amp;#039;&amp;#039;File | Add&amp;#039;&amp;#039;&amp;#039; commands, you should register in the &amp;#039;&amp;#039;&amp;#039;Project Tree&amp;#039;&amp;#039;&amp;#039; pane all source modules that you wish to be used while project compiling and linking. Notice that &amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039; automatically registers here (during creation of a new project) standard libraries, which are referenced by {{ide|Make Facility#Build Symbols|build script symbols}} (see also {{ide|Make Facility#Build Symbols|Make facility}}), and PFC packages used in the project. Notice that if you delete some of PFC packages required for the project, then the IDE restores these packages using &amp;lt;vp&amp;gt;#requires&amp;lt;/vp&amp;gt; directives.&lt;br /&gt;
&lt;br /&gt;
Initially (before packages are compiled) only the &amp;#039;&amp;#039;&amp;#039;Project Tree&amp;#039;&amp;#039;&amp;#039; pane of the &amp;#039;&amp;#039;&amp;#039;Project window&amp;#039;&amp;#039;&amp;#039; displays the reduced view of the Project tree, which contains only names of registered modules, libraries, and resource files. The &amp;#039;&amp;#039;&amp;#039;Browse Information&amp;#039;&amp;#039;&amp;#039; pane of the &amp;#039;&amp;#039;&amp;#039;Project window&amp;#039;&amp;#039;&amp;#039; is initially empty.&lt;br /&gt;
&lt;br /&gt;
After compilation of a package, the package &amp;quot;browse&amp;quot; information generated by the compiler (for the {{ide|Code Experts#Source Browser|Source Code Browser}}) is used to display additional information about the package in both the &amp;#039;&amp;#039;&amp;#039;Project Tree&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Browse Information&amp;#039;&amp;#039;&amp;#039; panes. The &amp;#039;&amp;#039;&amp;#039;Project Tree&amp;#039;&amp;#039;&amp;#039; pane starts to display names of all Prolog source files in the package (not only the package file). The &amp;#039;&amp;#039;&amp;#039;Browse Information&amp;#039;&amp;#039;&amp;#039; pane starts to display information about Prolog instances declared/defined in Prolog source files.&lt;br /&gt;
&lt;br /&gt;
In the &amp;#039;&amp;#039;&amp;#039;Project Tree&amp;#039;&amp;#039;&amp;#039; pane. Double clicking (or pressing &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039;) the name of a Prolog source file loads this file into the text editor (activates the corresponding text editor window if the file is already edited). Double clicking (or pressing &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039;) the name of a resource description file opens this resource in the corresponding resource editor.&lt;br /&gt;
&lt;br /&gt;
You can click (or press the right arrow) the plus [[Image:Ide_Plus_Icon.png]] icon to expand this tree node. Click the mouse button (or press the left arrow) on a minus [[Image:Ide_Minus_Icon.png]] icon to collapse the correspondent sub-tree, which is started from this node.&lt;br /&gt;
&lt;br /&gt;
In the &amp;#039;&amp;#039;&amp;#039;Browse Information&amp;#039;&amp;#039;&amp;#039; pane. When a Prolog source file is selected in the &amp;#039;&amp;#039;&amp;#039;Project Tree&amp;#039;&amp;#039;&amp;#039; pane, then the &amp;#039;&amp;#039;&amp;#039;Browse Information&amp;#039;&amp;#039;&amp;#039; pane displays names of all declared interfaces and classes, implemented classes, supported interfaces, inherited classes, and all other Prolog instances declared/defined in a file. Usually each file contains only one interface or class declaration or only one class implementation.&lt;br /&gt;
&lt;br /&gt;
Names of interfaces, classes, class implementations are prefixed with the plus [[Image:Ide_Plus_Icon.png]] or minus [[Image:Ide_Minus_Icon.png]] icons. Clicking a plus [[Image:Ide_Plus_Icon.png]] or minus [[Image:Ide_Minus_Icon.png]] icon (or pressing the right and left arrows) you expand (or collapse) the correspondent node.&lt;br /&gt;
&lt;br /&gt;
Notice that the displayed view depends on the chosen &amp;#039;&amp;#039;&amp;#039;Group Members&amp;#039;&amp;#039;&amp;#039; mode in the pop-up menu. When it is checked ON, then the tree displays the program sections (&amp;lt;vp&amp;gt;predicates&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;facts&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;domains&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;constants&amp;lt;/vp&amp;gt;) prefixed with the [[Image:Ide_PT_NetDisk.png]] icon, which is prefixed with the plus [[Image:Ide_Plus_Icon.png]] or minus [[Image:Ide_Minus_Icon.png]] icons.&lt;br /&gt;
&lt;br /&gt;
Double-click any Prolog name (predicate, domain, constant, fact, class, etc.) loads the correspondent file into the text-editor (activates the correspondent editor window if the file is already edited) and positions the caret onto the declaration/definition of the selected name. Notice that predicate names are suffixed with the predicate arity and return value mark (-&amp;gt;, if any).&lt;br /&gt;
&lt;br /&gt;
Notice that icons prefixing class entities contain double colons, like this [[Image:Ide_PT_Facts.png]]. Icons prefixing object entities contain single colons, like this [[Image:Ide_PT_Facts_obj.png]].&lt;br /&gt;
&lt;br /&gt;
Notice that icons prefixing public entities have colored background, like this [[Image:Ide_PT_Pred_obj.png]]. Icons prefixing private entities have white background, like this [[Image:Ide_PT_Pred_locObj.png]].&lt;br /&gt;
&lt;br /&gt;
=== Pop-up Menus ===&lt;br /&gt;
&lt;br /&gt;
Depending on the type of the node selected in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window, clicking the right mouse button activates context pop-up menus.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_PT_Folder.png]] &amp;#039;&amp;#039;&amp;#039;Project Root Node or Folders&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_PT_Popup_Folder.png]]&lt;br /&gt;
&lt;br /&gt;
The menu contains:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;New&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Add&amp;#039;&amp;#039;&amp;#039; items activate the &amp;#039;&amp;#039;&amp;#039;File | New&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;File | Add&amp;#039;&amp;#039;&amp;#039; commands correspondingly (giving you possibility to add new project items into the selected folder).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Remove From Project&amp;#039;&amp;#039;&amp;#039; command deletes this folder from the project.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Explore&amp;#039;&amp;#039;&amp;#039; command activates the standard Windows Explorer with this folder selected.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Build Directory&amp;#039;&amp;#039;&amp;#039; command activates the &amp;#039;&amp;#039;&amp;#039;Build | Build&amp;#039;&amp;#039;&amp;#039; command, which compiles packages in the selected folder.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Rebuild Directory&amp;#039;&amp;#039;&amp;#039; command activates the &amp;#039;&amp;#039;&amp;#039;Build | Rebuild ALL&amp;#039;&amp;#039;&amp;#039; command. This command deletes all object (and other intermediate) files generated from files in the selected folder and then compiles all packages in the selected folder.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Optimal Set of Include Directives&amp;#039;&amp;#039;&amp;#039; command activates the check for the structure of included files in order to make it optimal. This feature allows to exclude not needed inclusion directives and / or to add the obligatory inclusion directives which will make the units all-sufficient.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;View Unused Predicates&amp;#039;&amp;#039;&amp;#039; command displays some information for public predicates which are not used in a project, duplicated domain and constant names, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Project File&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
When you click the right mouse button on project file (&amp;lt;vp&amp;gt;*.prj6&amp;lt;/vp&amp;gt;), then the following pop-up menu appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_PT_Popup_Project.png]]&lt;br /&gt;
&lt;br /&gt;
The menu contains:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Build&amp;#039;&amp;#039;&amp;#039; command activates the &amp;#039;&amp;#039;&amp;#039;Build | Build&amp;#039;&amp;#039;&amp;#039; command, which compiles project.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Rebuild All&amp;#039;&amp;#039;&amp;#039; command activates the &amp;#039;&amp;#039;&amp;#039;Build | Rebuild ALL&amp;#039;&amp;#039;&amp;#039; command. This command deletes all object (and other intermediate) files generated from files and then compiles all packages in the project.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Settings...&amp;#039;&amp;#039;&amp;#039; item opens the &amp;#039;&amp;#039;&amp;#039;{{ide|Project Settings|Project Settings}}&amp;#039;&amp;#039;&amp;#039; dialog.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Explore Containg Folder...&amp;#039;&amp;#039;&amp;#039; item explores the folder for a file.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;File Properties...&amp;#039;&amp;#039;&amp;#039; item activates the standard Windows dialog &amp;#039;&amp;#039;&amp;#039;&amp;#039;SelectedFileName&amp;#039; Properties&amp;#039;&amp;#039;&amp;#039; in which you can view/modify some Windows properties of the &amp;#039;&amp;#039;&amp;#039; &amp;#039;SelectedFileName&amp;#039;&amp;#039;&amp;#039;&amp;#039; file.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Project Source Files and Package Header Files&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
When you click the right mouse button on Visual Prolog source files (containing interfaces - &amp;lt;vp&amp;gt;*.i&amp;lt;/vp&amp;gt;, classes - &amp;lt;vp&amp;gt;*.cl&amp;lt;/vp&amp;gt;, and class implementations - &amp;lt;vp&amp;gt;*.pro&amp;lt;/vp&amp;gt;) of the project, or package header file (&amp;lt;vp&amp;gt;*.ph&amp;lt;/vp&amp;gt;), then the following pop-up menu appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_PT_Popup_Source.png]]&lt;br /&gt;
&lt;br /&gt;
This pop-up menu contains:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Compile Package&amp;#039;&amp;#039;&amp;#039; item activates the &amp;#039;&amp;#039;&amp;#039;Build | Compile&amp;#039;&amp;#039;&amp;#039; command that compiles the package into which the selected file is included.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039; command activates the text editor for the selected file (or switches to the text editor window with this file if it is already edited).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Explore Containg Folder...&amp;#039;&amp;#039;&amp;#039; item (it is described above).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;File Properties...&amp;#039;&amp;#039;&amp;#039; command (it is described above).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Packages&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
When you click the right mouse button on package files (&amp;lt;vp&amp;gt;*.pack&amp;lt;/vp&amp;gt;), a pop-up menu appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_PT_Popup_Package.png]]&lt;br /&gt;
&lt;br /&gt;
This pop-up menu contains:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;New&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Add&amp;#039;&amp;#039;&amp;#039; commands activate the &amp;#039;&amp;#039;&amp;#039;File | New&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;File | Add&amp;#039;&amp;#039;&amp;#039; commands correspondingly (giving you possibility to add new project items into the selected folder).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Compile&amp;#039;&amp;#039;&amp;#039; activates the &amp;#039;&amp;#039;&amp;#039;Build | Compile&amp;#039;&amp;#039;&amp;#039; command that compiles the selected package.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039; item (it is described above).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Remove From Project&amp;#039;&amp;#039;&amp;#039; command deletes the selected package from the project.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Explore Containg Folder...&amp;#039;&amp;#039;&amp;#039; item (it is described above).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;File Properties...&amp;#039;&amp;#039;&amp;#039; item (it is described above).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Resource Description Files&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
When you click the right mouse button on resource description files (dialogs - &amp;lt;vp&amp;gt;*.dlg&amp;lt;/vp&amp;gt;, windows - &amp;lt;vp&amp;gt;*.win&amp;lt;/vp&amp;gt;, forms - &amp;lt;vp&amp;gt;*.frm&amp;lt;/vp&amp;gt;, menus - &amp;lt;vp&amp;gt;*.mnu&amp;lt;/vp&amp;gt;, toolbars - &amp;lt;vp&amp;gt;*.tb&amp;lt;/vp&amp;gt;, bitmaps - &amp;lt;vp&amp;gt;*.bmp&amp;lt;/vp&amp;gt;, icons - &amp;lt;vp&amp;gt;*.ico&amp;lt;/vp&amp;gt;, and cursors - &amp;lt;vp&amp;gt;*.cur&amp;lt;/vp&amp;gt;), then the following pop-up menu appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_PT_Popup_Resource.png]]&lt;br /&gt;
&lt;br /&gt;
This pop-up menu contains:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; command activates the &amp;#039;&amp;#039;&amp;#039;Attributes&amp;#039;&amp;#039;&amp;#039; dialog for this resource.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039; command opens this resource for editing in the correspondent resource editor.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Remove From Project&amp;#039;&amp;#039;&amp;#039; command deletes this resource from the project.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Explore Containg Folder...&amp;#039;&amp;#039;&amp;#039; item (it is described above).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;File Properties...&amp;#039;&amp;#039;&amp;#039; item (it is described above).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Prolog Names&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
When you click the right mouse button on Visual Prolog names (interfaces, classes, class implementations, or names of predicates, facts, domains, and constants), the following pop-up menu that contains the following entries appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_PT_Popup_Prolog.png]]&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Go to Declaration&amp;#039;&amp;#039;&amp;#039; command opens the text editor, loads the selected file and jumps on this name declaration.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Go to Definition&amp;#039;&amp;#039;&amp;#039; command opens the text editor, loads the selected file and jumps on this name definition.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Project_Settings&amp;diff=3550</id>
		<title>Ide/Project Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Project_Settings&amp;diff=3550"/>
		<updated>2013-04-18T11:48:36Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|IDE Project Settings}}&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039; utility is used to create new Visual Prolog Projects and to change some settings of existing projects. &lt;br /&gt;
&lt;br /&gt;
To activate the &amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039; dialog, select the &amp;#039;&amp;#039;&amp;#039;Project | Settings&amp;#039;&amp;#039;&amp;#039; menu item. &amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039; is also activated when you create a new project (with the &amp;#039;&amp;#039;&amp;#039;Project | New&amp;#039;&amp;#039;&amp;#039; command).&lt;br /&gt;
&lt;br /&gt;
== General Tab ==&lt;br /&gt;
&lt;br /&gt;
When creating a new project the sheet looks like:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_ApplicationExpert_General_Create.png]]&lt;br /&gt;
&lt;br /&gt;
You need to specify a mandatory project name and other options. After the needed information is specified, press the &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; button. The &amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039; utility will create the default files, define the {{ide|Make Facility#Build Script|build script}}, etc.&lt;br /&gt;
&lt;br /&gt;
=== Project Name ===&lt;br /&gt;
&lt;br /&gt;
The project name must be specified in the &amp;#039;&amp;#039;&amp;#039;Project Name&amp;#039;&amp;#039;&amp;#039; option while a project creation. &amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039; uses this project name to generate name for the project file: &amp;lt;vpbnf&amp;gt;&amp;lt;ProjectName&amp;gt;.prj6&amp;lt;/vpbnf&amp;gt;. The specified project name is also used as the default name of &amp;#039;&amp;#039;&amp;#039;Subdirectory&amp;#039;&amp;#039;&amp;#039; in which the project is placed.&lt;br /&gt;
&lt;br /&gt;
=== Project Kind ===&lt;br /&gt;
&lt;br /&gt;
Sets which type the application will have.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_ApplicationExpert_UI_Strategy.png]]&lt;br /&gt;
&lt;br /&gt;
The IDE automatically generates different default sets of files (and codes) for each application type.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note.&amp;#039;&amp;#039;&amp;#039; DLL option is available for the Visual Prolog Commercial Edition only.&lt;br /&gt;
&lt;br /&gt;
=== MDI Mode/SDI Mode ===&lt;br /&gt;
&lt;br /&gt;
Specifies whether the IDE creates a &amp;#039;&amp;#039;multi document interface-&amp;#039;&amp;#039; or &amp;#039;&amp;#039;single document interface-&amp;#039;&amp;#039; project template respectively.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note.&amp;#039;&amp;#039;&amp;#039; This option is available for the Visual Prolog Commercial Edition only. Otherwise the &amp;#039;&amp;#039;MDI Mode&amp;#039;&amp;#039; is assumed by the default.&lt;br /&gt;
&lt;br /&gt;
=== Base Directory and Subdirectory ===&lt;br /&gt;
&lt;br /&gt;
The name of the directory, in which the project is placed, is generated from the path specified in &amp;#039;&amp;#039;&amp;#039;Base Directory&amp;#039;&amp;#039;&amp;#039; that is concatenated with the folder name specified in &amp;#039;&amp;#039;&amp;#039;Subdirectory&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Base Directory&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Specifies the base directory for the project being created.With the &amp;#039;&amp;#039;&amp;#039;Browse&amp;#039;&amp;#039;&amp;#039; button, you can open up a directory browser to find a proper &amp;#039;&amp;#039;&amp;#039;Base Directory.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Subdirectory&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Specifies the subdirectory (relative to the &amp;#039;&amp;#039;&amp;#039;Base Directory&amp;#039;&amp;#039;&amp;#039;), which should be the root directory for the project being created.By default the &amp;#039;&amp;#039;&amp;#039;Subdirectory&amp;#039;&amp;#039;&amp;#039; name is equal to the specified &amp;#039;&amp;#039;&amp;#039;Project Name&amp;#039;&amp;#039;&amp;#039;, but it can be changed while the project creation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note.&amp;#039;&amp;#039;&amp;#039; That if you choose a directory that already contains some project as the directory in which to place the project being created, then the &amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039; utility displays the &amp;#039;&amp;#039;&amp;#039;These files will be overwritten&amp;#039;&amp;#039;&amp;#039; warning dialog. It displays names of already existing files which will be overwritten after you push the &amp;#039;&amp;#039;&amp;#039;Create&amp;#039;&amp;#039;&amp;#039; button. Therefore, it is a good idea to store each project in its own directory.&lt;br /&gt;
&lt;br /&gt;
=== Platform === &lt;br /&gt;
&lt;br /&gt;
Specifies the project target platform as one of the following:&lt;br /&gt;
&lt;br /&gt;
* 32bit&lt;br /&gt;
* 64bit&lt;br /&gt;
* 32bit+64bit&lt;br /&gt;
&lt;br /&gt;
When the two 32bit 64bit platforms are specified as the project target, the active platform can be choosen through the &amp;#039;&amp;#039;&amp;#039;Build&amp;#039;&amp;#039;&amp;#039; menu.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note.&amp;#039;&amp;#039;&amp;#039; This option is available for the Visual Prolog Commercial Edition only. Otherwise the &amp;#039;&amp;#039;32bit&amp;#039;&amp;#039; is assumed by the default.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Manifest File&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
When it is checked &amp;#039;&amp;#039;&amp;#039;ON&amp;#039;&amp;#039;&amp;#039;, then the &amp;#039;&amp;#039;&amp;#039;Manifest&amp;#039;&amp;#039;&amp;#039; file is generated for the project.&lt;br /&gt;
&lt;br /&gt;
A Win32 side-by-side assembly contains a collection of resources—a group of DLLs, windows classes, COM servers, type libraries, or interfaces—that are always provided together with applications. These are described in the assembly &amp;#039;&amp;#039;&amp;#039;Manifest&amp;#039;&amp;#039;&amp;#039; files. For more details about &amp;#039;&amp;#039;&amp;#039;Manifest&amp;#039;&amp;#039;&amp;#039; files see descriptions in MSDN.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Require commctrl v.6&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Specifies that the generated manifest file contains a statement to require the system &amp;#039;&amp;#039;&amp;#039;commctrl.dll&amp;#039;&amp;#039;&amp;#039; version 6 for the application.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Require Administrative Rights&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Specifies that the generated manifest file contains a statement to require the administrative privileges for the application.&lt;br /&gt;
&lt;br /&gt;
To open the &amp;#039;&amp;#039;&amp;#039;Project Settings &amp;#039;&amp;#039;&amp;#039;dialog for the existing project, use the &amp;#039;&amp;#039;&amp;#039;Project | Settings&amp;#039;&amp;#039;&amp;#039; menu item.&lt;br /&gt;
&lt;br /&gt;
The General tab will look, in this case, as foolows:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_ApplicationExpert_General.png]]&lt;br /&gt;
&lt;br /&gt;
== Directories Tab ==&lt;br /&gt;
&lt;br /&gt;
Here you can specify directories that will be used by the project. In &amp;#039;&amp;#039;&amp;#039;Directories&amp;#039;&amp;#039;&amp;#039; tab you can set up the project subdirectories to be used by the compiler, linker, resource generators, etc.&lt;br /&gt;
&lt;br /&gt;
Directory names refer to the {{ide|Make Facility#Build Symbols|build script symbols}}. For example, when giving the name &amp;#039;&amp;#039;&amp;#039;$(ProDir)&amp;#039;&amp;#039;&amp;#039;, it is automatically expanded to the actual path where the Visual Prolog system is installed.&lt;br /&gt;
&lt;br /&gt;
When all these project subdirectories are defined, then it is possible to move a project to another place and still be able to use it without need to redefine the {{ide|Make Facility#Build Script|project build scripts}}  manually. This is possible because:&lt;br /&gt;
&lt;br /&gt;
* Usually these project subdirectories are defined relatively to the project root directory. Therefore, they are automatically redefined when the project is moved.&lt;br /&gt;
* Each of these subdirectories generates correspondent {{ide|Make Facility#Build Symbols|build symbols}} and namely these built symbols are used to define file locations in the {{ide|Make Facility#Build Script|project build scripts}}.&lt;br /&gt;
&lt;br /&gt;
=== Intermediate ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;$(ObjDir)&amp;#039;&amp;#039;&amp;#039; - This directory is used to place all intermediate (temporary) files of the project generated by the IDE. It defines the &amp;#039;&amp;#039;&amp;#039;$(ObjDir)&amp;#039;&amp;#039;&amp;#039; {{ide|Make Facility#Build Symbols|build script symbols}}. The IDE automatically adds suffix &amp;#039;&amp;#039;&amp;#039;64&amp;#039;&amp;#039;&amp;#039; to the intermediate directory name.&lt;br /&gt;
&lt;br /&gt;
=== Final ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;$(ExeDir)&amp;#039;&amp;#039;&amp;#039; - This directory is the place for the generated target module (executable or DLL). It defines the &amp;#039;&amp;#039;&amp;#039;$(ExeDir)&amp;#039;&amp;#039;&amp;#039; {{ide|Make Facility#Build Symbols|build script symbols}}. The IDE automatically adds suffix &amp;#039;&amp;#039;&amp;#039;64&amp;#039;&amp;#039;&amp;#039; to the final directory name.&lt;br /&gt;
&lt;br /&gt;
=== Import Library ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;$(LibDir)&amp;#039;&amp;#039;&amp;#039; - This directory is used for DLL projects to place the generated import library. It defines the &amp;#039;&amp;#039;&amp;#039;$(LibDir)&amp;#039;&amp;#039;&amp;#039; {{ide|Make Facility#Build Symbols|build script symbols}}.&lt;br /&gt;
&lt;br /&gt;
=== Prolog Root ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;$(ProDir)&amp;#039;&amp;#039;&amp;#039; - It is the root directory of the used Visual Prolog version. This directory defines the &amp;#039;&amp;#039;&amp;#039;$(ProDir)&amp;#039;&amp;#039;&amp;#039; {{ide|Make Facility#Build Symbols|build script symbols}}.&lt;br /&gt;
&lt;br /&gt;
=== Include Directories ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;$(IncDir)&amp;#039;&amp;#039;&amp;#039; - This list box displays the list of the project include directories.&lt;br /&gt;
&lt;br /&gt;
Each line contains one directory. In these directories the compiler will search for included files (specified in &amp;lt;vp&amp;gt;#include&amp;lt;/vp&amp;gt; or &amp;lt;vp&amp;gt;#bininclude&amp;lt;/vp&amp;gt; compiler directives), if the specified filename does not contain an absolute path. A single dot indicates the current directory, which is always the project directory. Two dots indicate the parent directory of the current directory.&lt;br /&gt;
&lt;br /&gt;
You can add a new directory to the list of the project include directories using the &amp;#039;&amp;#039;&amp;#039;Browse&amp;#039;&amp;#039;&amp;#039; button. The &amp;#039;&amp;#039;&amp;#039;Browse&amp;#039;&amp;#039;&amp;#039; button activates the &amp;#039;&amp;#039;&amp;#039;Set New Directory&amp;#039;&amp;#039;&amp;#039; dialog. Also you can use the &amp;#039;&amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&amp;#039; button, which activates the &amp;#039;&amp;#039;&amp;#039;Edit Include Directory&amp;#039;&amp;#039;&amp;#039; dialog. In this dialog you can directly type in a path. Using &amp;#039;&amp;#039;&amp;#039;Up&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Down&amp;#039;&amp;#039;&amp;#039; buttons you can change the order in which the compiler will search in the specified include directories.&lt;br /&gt;
&lt;br /&gt;
This directory defines the &amp;#039;&amp;#039;&amp;#039;$(IncDir)&amp;#039;&amp;#039;&amp;#039; {{ide|Make Facility#Build Symbols|build script symbols}}.&lt;br /&gt;
&lt;br /&gt;
== Build Options Tab ==&lt;br /&gt;
&lt;br /&gt;
Here you can edit the project {{ide|Make Facility#Make Rules|build script &amp;#039;&amp;#039;&amp;#039;Rules&amp;#039;&amp;#039;&amp;#039;}} and the project {{ide|Make Facility#Build Script|&amp;#039;&amp;#039;&amp;#039;Build Script&amp;#039;&amp;#039;&amp;#039;}}, specify the &amp;#039;&amp;#039;&amp;#039;Type Library File&amp;#039;&amp;#039;&amp;#039;, etc.&lt;br /&gt;
&lt;br /&gt;
=== Rules ===&lt;br /&gt;
&lt;br /&gt;
Determine how to compile files with given extensions. An example is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vipbnf&amp;gt;pack-&amp;gt;obj:$(Compiler) /L:R /L:I /L:STAT $(IncDir) /MAXE:200 /MAXW:1000&lt;br /&gt;
 &amp;quot;$**.pack&amp;quot; /OBJECTFILE:&amp;quot;$(ObjDir)$*.obj&amp;quot; /DEBUGFILE:&amp;quot;$(ObjDir)$*.deb&amp;quot; /debug:full&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more information about {{ide|Make Facility#Make Rules|Rules}} syntax see the {{ide|Make Facility|Make Facility}}.&lt;br /&gt;
&lt;br /&gt;
=== Build Script ===&lt;br /&gt;
&lt;br /&gt;
Describes how to build the final target. An example is the following,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vipbnf&amp;gt;&amp;quot;$(ProDir)Bin\VIP6Link.exe&amp;quot; -F&amp;lt;&amp;lt; -E_VIPStartUp@0 -d -TPE -SGUI -o&amp;quot;$(ExeDir)$*.exe&amp;quot;&lt;br /&gt;
 -M&amp;quot;$(ObjDir)$*.map&amp;quot; $(PROJECT_OBJ) &amp;quot;$(ObjDir)$*.res&amp;quot; $(PROJECT_LIB)&amp;lt;&amp;lt;&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more information about {{ide|Make Facility#Build Script|Build Scripts}} see the &amp;#039;&amp;#039;&amp;#039;Make Facility&amp;#039;&amp;#039;&amp;#039;, the {{ide|IDE Tools#Command Line Compiler|Command Line Compiler}}, and the {{ide|IDE Tools#Command Line Linker|Command Line Linker}}.&lt;br /&gt;
&lt;br /&gt;
=== Definition (.def) File === &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[$(DEF_FILE)]&amp;#039;&amp;#039;&amp;#039;: A {{ide|IDE Tools#Definition Files|module-definition}} (&amp;#039;&amp;#039;&amp;#039;.DEF&amp;#039;&amp;#039;&amp;#039;) file provides additional input for the linker. The module-definition files describe the essential characteristics of a target application or library.&lt;br /&gt;
&lt;br /&gt;
Ordinary module-definition files should be used when the project target is a DLL or when the target file should use DLLs.&lt;br /&gt;
&lt;br /&gt;
When the project target is a DLL, then names of all predicates exported from the DLL have to be added to the {{ide|IDE Tools#Definition Files|EXPORT}} section of the module-definition file, which is used to build the DLL.&lt;br /&gt;
&lt;br /&gt;
When an import library is included into the project modules, then the correspondent DLL is linked statically to the application (load-time linking). Such projects must have module-definition files, whose {{ide|IDE Tools#Definition Files|IMPORTS}} sections should specify names of all predicates imported from the DLL.&lt;br /&gt;
&lt;br /&gt;
See {{ide|IDE Tools#Definition Files|Definition Files}} in the {{ide|IDE Tools#Command Line Linker|Command Line Linker}} for more information.&lt;br /&gt;
&lt;br /&gt;
=== Type Library File ===&lt;br /&gt;
&lt;br /&gt;
Here you can use the &amp;#039;&amp;#039;&amp;#039;Browse&amp;#039;&amp;#039;&amp;#039; button to specify a Type Library, which should be used in your project. Usually, you need this when creating COM objects.&lt;br /&gt;
&lt;br /&gt;
== Version Information Tab ==&lt;br /&gt;
&lt;br /&gt;
Here you specify some information about the project: &amp;#039;&amp;#039;&amp;#039;Company&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Copyright&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;File Version&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Trademarks&amp;#039;&amp;#039;&amp;#039;, etc.&lt;br /&gt;
&lt;br /&gt;
Some of version information attributes can be shown by the operation system &amp;#039;&amp;#039;&amp;#039;File Properties&amp;#039;&amp;#039;&amp;#039; dialog and can be used to validate version of DLL or EXE, before loading them.&lt;br /&gt;
&lt;br /&gt;
Version information contains the following fields:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Company&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Usually is the name of the company that is the Copyright owner to the project.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Author&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Represents information about the author of the project.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Copyright&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Represents the Copyright information, which is visible in the &amp;#039;&amp;#039;&amp;#039;File Properties&amp;#039;&amp;#039;&amp;#039; dialog.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Contains a short description.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;File Version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Is written in the &amp;lt;span style=&amp;quot;color:Blue&amp;quot;&amp;gt;A.B.C.D&amp;lt;/span&amp;gt; format, where &amp;lt;span style=&amp;quot;color:Blue&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:Blue&amp;quot;&amp;gt;B&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:Blue&amp;quot;&amp;gt;C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:Blue&amp;quot;&amp;gt;D&amp;lt;/span&amp;gt; are integers. &amp;lt;span style=&amp;quot;color:Blue&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt; means major version.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Product Version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Is written in format &amp;lt;span style=&amp;quot;color:Blue&amp;quot;&amp;gt;A.B.C.D&amp;lt;/span&amp;gt;, where &amp;lt;span style=&amp;quot;color:Blue&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:Blue&amp;quot;&amp;gt;B&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:Blue&amp;quot;&amp;gt;C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:Blue&amp;quot;&amp;gt;D&amp;lt;/span&amp;gt; are integers. &amp;lt;span style=&amp;quot;color:Blue&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt; means major version.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Trademarks:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Represents the project Trademarks information.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;File Flags:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:These are flags that describe the target file of the project:&lt;br /&gt;
*#&amp;#039;&amp;#039;&amp;#039;Debug&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*#:This flag means that the project is built with debugging information.&lt;br /&gt;
*#&amp;#039;&amp;#039;&amp;#039;Prerelease&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*#:This flag means that the target file is an intermediate version.&lt;br /&gt;
*#&amp;#039;&amp;#039;&amp;#039;Patched&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*#:This flag means that the target file has been modified comparing with the original file, which has the same version number.&lt;br /&gt;
*#&amp;#039;&amp;#039;&amp;#039;Special Build&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*#:This flag means that the target file was built using standard release procedures but for special purpose.&lt;br /&gt;
*#&amp;#039;&amp;#039;&amp;#039;Private Build&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*#:This flag means that the target file was built for private purpose.&lt;br /&gt;
&lt;br /&gt;
== File Templates Tab ==&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Comment Header&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The text from this file will be added as a header to each created Visual Prolog source file.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Interface Declaration&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The text from this file will be added as a header to each created interface declaration file.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Class Declaration&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The text from this file will be added as a header to each created class declaration file.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Class Implementation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The text from this file will be added as a header to each created class implementation file.&lt;br /&gt;
&lt;br /&gt;
== Run Options Tab ==&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Run Arguments&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Here it is possible to specify command line parameters that will be passed to the target application when it starts from the IDE.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Executable for Debugger&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Here you can specify an executable filename that will be loaded by the IDE for debugging.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;External Project for Debugger&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Here you can specify a project with the debug information that should be used by the IDE while debugging.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Working Directory for Run/Debug&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:If this option is set, a user application will use this directory as a working directory for Run/Debug comands, otherwise the final directory will be used. If the relative path is defined then the path is calculated from the project directory.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Collaboration&amp;diff=3549</id>
		<title>Ide/Collaboration</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Collaboration&amp;diff=3549"/>
		<updated>2013-04-18T10:27:31Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|Collaboration}}&lt;br /&gt;
== Handling a Project by Several Programmers ==&lt;br /&gt;
&lt;br /&gt;
When several programmers are working with the same project, they normally use some source code control systems (SCS) like SourceGear Vault, Microsoft Visual SourceSafe, etc.&lt;br /&gt;
&lt;br /&gt;
A source code control system is a program for maintaining version control of source files being developed. It allow members of your development team to retrieve, modify, and return any revision of a file in a secure, systematic, and compatible manner. With SCS you minimize the risk of overwriting changes made by another developer and you do not have to worry about losing data, because all changes are easily accessible.&lt;br /&gt;
&lt;br /&gt;
== Using the SCS from IDE ==&lt;br /&gt;
&lt;br /&gt;
You can tune IDE to handle the &amp;#039;&amp;#039;&amp;#039;Check Out&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Check In&amp;#039;&amp;#039;&amp;#039; commands of the SourceGear Vault or Microsoft Visual SourceSafe (or similar commands in other Source Control Systems). When you add &amp;#039;&amp;#039;&amp;#039;Check Out&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Check In&amp;#039;&amp;#039;&amp;#039; commands (with &amp;#039;&amp;#039;&amp;#039;Tools | Configure Tools&amp;#039;&amp;#039;&amp;#039;) to IDE commands, then you will be able to &amp;#039;&amp;#039;&amp;#039;Check In&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Check Out&amp;#039;&amp;#039;&amp;#039; edited files into the Source Control System database (Repository) by pressing some simple hot key like &amp;#039;&amp;#039;&amp;#039;Ctrl+1&amp;#039;&amp;#039;&amp;#039;. The detailed description of how to add &amp;#039;&amp;#039;&amp;#039;Check Out&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Check In&amp;#039;&amp;#039;&amp;#039; commands to IDE commands see in &amp;quot;{{ide|External Tools#How to &amp;#039;Check In&amp;#039; a File in MS Visual Source Safe|How to &amp;quot;Check In&amp;quot; a File in MS Visual Source Safe}}&amp;quot; and &amp;quot;{{ide|External Tools#How to &amp;#039;Check Out&amp;#039; a File in Vault|How to &amp;quot;Check Out&amp;quot; and &amp;quot;Check In&amp;quot; a File in Vault}}&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Defining the Source Control Repository ==&lt;br /&gt;
&lt;br /&gt;
If you are using a Source Control System, then &amp;#039;&amp;#039;&amp;#039;Tools | Source Control Repository...&amp;#039;&amp;#039;&amp;#039; menu entry can be used to configure a SCS repository. Here you can set a repository name and the correspondent working folder which will be used for this repository. This will define values for variables &amp;#039;&amp;#039;&amp;#039;$(repsitory)&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;$(scfile)&amp;#039;&amp;#039;&amp;#039; for the tools (like the &amp;#039;&amp;#039;&amp;#039;Check Out&amp;#039;&amp;#039;&amp;#039; command).&lt;br /&gt;
&lt;br /&gt;
Additionally, &amp;#039;&amp;#039;&amp;#039;Tools | IDE Variables&amp;#039;&amp;#039;&amp;#039; menu entry can be used to configure other SCS parameters, like user name (variable &amp;#039;&amp;#039;&amp;#039;$(user)&amp;#039;&amp;#039;&amp;#039;), host name (variable &amp;#039;&amp;#039;&amp;#039;$(host)&amp;#039;&amp;#039;&amp;#039;) and password (varaible &amp;#039;&amp;#039;&amp;#039;$(password)&amp;#039;&amp;#039;&amp;#039;).&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Debugger/Debugger_Views&amp;diff=3548</id>
		<title>Ide/Debugger/Debugger Views</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Debugger/Debugger_Views&amp;diff=3548"/>
		<updated>2013-04-18T10:00:44Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
=== Run Stack Window ===&lt;br /&gt;
----&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; consists of three kinds of items:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; item – marked with [[Image:Ide_db_RunStack_up.png]]. It describes ordinary executable clauses, which do not produce backtrack points and are not trapped.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;BackTrack&amp;#039;&amp;#039;&amp;#039; item – marked with [[Image:Ide_db_RunStack_dn.png]].It describes a clause of a nondeterministic predicate. The next clause of this predicate can be executed when a program failure of this clause occurs. Such items occur when a clause of a predicate, which creates a &amp;#039;&amp;#039;&amp;#039;backtrack&amp;#039;&amp;#039;&amp;#039; point (can produce more than one solution) is called.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;TrapTrack&amp;#039;&amp;#039;&amp;#039; item – marked with [[Image:Ide_db_RunStack_rh.png]] or [[Image:Ide_db_RunStack_dn_rh.png]]. They describe a continue item (clause), which will be resumed in any case independently whether an error condition occurs or no. For example, such item is created when a predicate call is trapped with the &amp;lt;vp&amp;gt;trap/3&amp;lt;/vp&amp;gt; predicate. The [[Image:Ide_db_RunStack_rh.png]] icon is used to mark trapped clauses of deterministic predicates. The [[Image:Ide_db_RunStack_dn_rh.png]] icon is used to mark trapped clauses of nondeterministic predicates.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;BackTrack&amp;#039;&amp;#039;&amp;#039; (marked with [[Image:Ide_db_RunStack_dn.png]]) and &amp;#039;&amp;#039;&amp;#039;TrapTrack&amp;#039;&amp;#039;&amp;#039; items (marked with [[Image:Ide_db_RunStack_dn_rh.png]]) are backtracking points. The clause, marked by one of these items, will be resumed and the program execution will be continued after the corresponding failure or an error occurs.&lt;br /&gt;
&lt;br /&gt;
The typical example of the &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; window is presented in the following picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_RunStack.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pop-up Menu&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; window has the pop-up context menu:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_RunStack_menu.png]]&lt;br /&gt;
&lt;br /&gt;
For each selected item in the tree, this menu contains items:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Refresh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:It refreshes all the &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; window contents, rebuilds the tree.&lt;br /&gt;
*:&amp;lt;br/&amp;gt;It also refreshes the {{ide|Debugger#Variables Window|&amp;#039;&amp;#039;&amp;#039;Variables&amp;#039;&amp;#039;&amp;#039;}} window (if it is displayed).&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Go To Code&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Activates the Prolog source editor and places the cursor at the Prolog clause corresponding to the item selected in the &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; window. If the item does not correspond to a Prolog module with debug information, then the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window will be opened and the cursor will be placed onto the corresponding assembler instruction. The same action is caused by double-click a predicate call in the &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; window.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Copy Line&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:It copies the selected line contents to the clipboard.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Show Domains&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This option turns ON/OFF displaying domains of variables.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Show Values&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This option turns ON/OFF displaying values of variables.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; window can be activated by the IDE menu &amp;#039;&amp;#039;&amp;#039;View | Run Stack&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Variables Window ===&lt;br /&gt;
----&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Variables&amp;#039;&amp;#039;&amp;#039; window can be activated either by &amp;#039;&amp;#039;&amp;#039;Ctrl+Alt+V&amp;#039;&amp;#039;&amp;#039; or from the IDE menu &amp;#039;&amp;#039;&amp;#039;View | Variables for Current Clause&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Variables Window Contents&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Variables&amp;#039;&amp;#039;&amp;#039; window displays the tree of all program variables and facts from the traced clause, which are already created by the program at the current tracing step. These are: all variables and all object facts (fact variables), which are created in the clause before the executing instruction, and all class facts (fact variables), which can be used in this clause (declared in this class implementation).&lt;br /&gt;
&lt;br /&gt;
The top line of the window displays the declaration of the predicate, whose clause is executed.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Vars_Top.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Variables&amp;#039;&amp;#039;&amp;#039; window content is updated after every trace step.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pop-up Context Menu&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Variables in the Current Clause&amp;#039;&amp;#039;&amp;#039; window has the following pop-up context menu:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Vars_Menu.png]]&lt;br /&gt;
&lt;br /&gt;
This menu contains items:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Insert into Watch Window&amp;#039;&amp;#039;&lt;br /&gt;
*:Opens the &amp;#039;&amp;#039;&amp;#039;Watch Window&amp;#039;&amp;#039;&amp;#039; and moves there selected variable.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&lt;br /&gt;
*:This command copies the contents of the line selected in the &amp;#039;&amp;#039;&amp;#039;Variables&amp;#039;&amp;#039;&amp;#039; window to the clipboard.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show as Hexadecimal&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows integral values in the hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show as Decimal&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows integral values in the decimal format.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show as Octal&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows integral values in the octal format.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show Domains&amp;#039;&amp;#039;&lt;br /&gt;
*:This option turns &amp;#039;&amp;#039;&amp;#039;ON/OFF&amp;#039;&amp;#039;&amp;#039; displaying the domains after variable names.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show Variable Addresses&amp;#039;&amp;#039;&lt;br /&gt;
*:This option turns &amp;#039;&amp;#039;&amp;#039;ON/OFF&amp;#039;&amp;#039;&amp;#039; displaying the addresses after variable names.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&lt;br /&gt;
*:This command allows search variable by name.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Copy Tree&amp;#039;&amp;#039;&lt;br /&gt;
*:This command copies the contents of the window to the clipboard.&lt;br /&gt;
&lt;br /&gt;
=== Facts Window ===&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Class Facts&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Facts&amp;#039;&amp;#039;&amp;#039; window always shows the current contents of all &amp;#039;&amp;#039;&amp;#039;class&amp;#039;&amp;#039;&amp;#039; fact databases defined in the program being debugged.&lt;br /&gt;
&lt;br /&gt;
Simple example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Facts_View.png]]&lt;br /&gt;
&lt;br /&gt;
Pressing &amp;#039;&amp;#039;&amp;#039;CTRL+ALT+F&amp;#039;&amp;#039;&amp;#039; opens &amp;#039;&amp;#039;&amp;#039;Facts&amp;#039;&amp;#039;&amp;#039; window:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Facts_View3.png]]&lt;br /&gt;
&lt;br /&gt;
Clicking icons opens sub-trees:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Facts_View4.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Facts&amp;#039;&amp;#039;&amp;#039; window automatically goes to the fact that is selected in the text editor (if any):&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Facts_View11.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Facts_View41.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Objects Facts&amp;#039;&amp;#039;&amp;#039; you cat look like a components of object variables in the {{ide|Debugger#Variables Window|&amp;#039;&amp;#039;&amp;#039;Variables&amp;#039;&amp;#039;&amp;#039; window}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pop-up Context Menu&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Facts Window&amp;#039;&amp;#039;&amp;#039; has the following pop-up context menu:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Vars_Menu.png]]&lt;br /&gt;
&lt;br /&gt;
This menu contains items:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Insert into Watch Window&amp;#039;&amp;#039;&lt;br /&gt;
*:Opens the &amp;#039;&amp;#039;&amp;#039;Watch Window&amp;#039;&amp;#039;&amp;#039; and moves there selected fact.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&lt;br /&gt;
*:This command copies the contents of the line selected in the &amp;#039;&amp;#039;&amp;#039;Facts&amp;#039;&amp;#039;&amp;#039; window to the clipboard.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show as Hexadecimal&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows integral values in the hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show as Decimal&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows integral values in the decimal format.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show as Octal&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows integral values in the octal format.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show Domains&amp;#039;&amp;#039;&lt;br /&gt;
*:This option turns &amp;#039;&amp;#039;&amp;#039;ON/OFF&amp;#039;&amp;#039;&amp;#039; displaying the domains after facts names.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show Addresses&amp;#039;&amp;#039;&lt;br /&gt;
*:This option turns &amp;#039;&amp;#039;&amp;#039;ON/OFF&amp;#039;&amp;#039;&amp;#039; displaying the addresses after facts names.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&lt;br /&gt;
*:This command allows search fact by name.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Copy Tree&amp;#039;&amp;#039;&lt;br /&gt;
*:This command copies the contents of the window to the clipboard.&lt;br /&gt;
&lt;br /&gt;
=== Breakpoints Window ===&lt;br /&gt;
----&lt;br /&gt;
==== Introduction ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window shows all breakpoints, which have been set in the program being debugged.&lt;br /&gt;
&lt;br /&gt;
You can set a breakpoint onto any executable line in program source files (or in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window, where a breakpoint can be set on any instruction of the program being debugged).&lt;br /&gt;
&lt;br /&gt;
There are two kinds of breakpoints: hard and soft. Hard breakpoints are active in any debugging mode. Soft breakpoints are active in normal debugging mode but disabled in a special mode of quick debugging, called &amp;#039;&amp;#039;Fast Forward Mode&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==== Breakpoints Window Contents ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window for each breakpoint includes &amp;#039;&amp;#039;&amp;#039;Status&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Source&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Line&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Count&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Comment&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039;, where:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Status&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows whether the breakpoint is &amp;#039;&amp;#039;hard&amp;#039;&amp;#039; or &amp;#039;&amp;#039;soft&amp;#039;&amp;#039;.&lt;br /&gt;
**&amp;#039;&amp;#039;Hard&amp;#039;&amp;#039;&lt;br /&gt;
**:If a breakpoint is &amp;#039;&amp;#039;hard&amp;#039;&amp;#039; then it will be activated in any debugging mode. A hard breakpoint is marked with the filled circle [[Image:Ide_db_BreakPoints_en.png]] or [[Image:Ide_db_BreakPoints_assembler.png]] (for assembler) or [[Image:Ide_db_BreakPoints_shifted.png]] (for relocated breakpoint).&lt;br /&gt;
**&amp;#039;&amp;#039;Soft&amp;#039;&amp;#039;&lt;br /&gt;
**:If a breakpoint is &amp;#039;&amp;#039;soft&amp;#039;&amp;#039; then it will be activated only in normal (not Fast Forward) debugging mode. A soft breakpoint is marked with the hollow circle [[Image:Ide_db_BreakPoints_dis.png]] or [[Image:Ide_db_BreakPoints_assembler_disabled.png]] (for assembler).&lt;br /&gt;
**&amp;#039;&amp;#039;Invalid&amp;#039;&amp;#039;&lt;br /&gt;
**:A breakpoint is invalid when it is set on a line, which does not contain executable code. An invalid breakpoint is marked with the crossed hollow circle [[Image:Ide_db_BreakPoints_invalid.png]].&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Source&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This column shows the source string:&lt;br /&gt;
*:&amp;lt;vipbnf&amp;gt;&amp;lt;SourceName&amp;gt;&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
*:where:&lt;br /&gt;
*:&amp;#039;&amp;#039;SourceName&amp;#039;&amp;#039;&lt;br /&gt;
*:The description of a predicate in the address space of whose clauses the breakpoint is set:&lt;br /&gt;
*:*If the breakpoint is set in Prolog sources, then &amp;#039;&amp;#039;SourceName&amp;#039;&amp;#039; is the filename in which the breakpoint is set. It is displayed with the format:&lt;br /&gt;
*::&amp;lt;vipbnf&amp;gt;&amp;lt;FileName&amp;gt; &amp;#039;(&amp;#039; &amp;lt;Path&amp;gt; &amp;#039;)&amp;#039;&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
*::The &amp;#039;&amp;#039;Path&amp;#039;&amp;#039; can use {{ide|Make Facility#Build Symbols|Build script symbols}}.&lt;br /&gt;
*:* If the breakpoint is set in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window, then &amp;#039;&amp;#039;SourceName&amp;#039;&amp;#039; has the format:&lt;br /&gt;
*::&amp;lt;vipbnf&amp;gt;--- assembler: &amp;lt;AddressValue&amp;gt;&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
*::&amp;#039;&amp;#039;AddressValue&amp;#039;&amp;#039; is the hexadecimal address of the breakpoint in the assembler code of the predicate in which the breakpoint is set.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Line&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:When the breakpoint is set in a Prolog source file, then this column displays the number of the line the breakpoint is set on. &amp;lt;br /&amp;gt; When the breakpoint is set in the Disassembly window, then the number of the line is equal to 0.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Count&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This column displays {{ide|Debugger#Breakpoint Properties|counts}} of breakpoints.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Comment&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This column displays {{ide|Debugger#Breakpoint Properties|comment strings}} of breakpoints.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This column displays the script text of a breakpoint. The script is performed each time the program reaches the breakpoint.&lt;br /&gt;
&lt;br /&gt;
==== Breakpoints in Prolog and Disassembly Windows ====&lt;br /&gt;
&lt;br /&gt;
Breakpoints can be set in Prolog source files and in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window:&lt;br /&gt;
&lt;br /&gt;
* In Prolog sources valid breakpoints can be set only on lines containing executable instructions. That is, breakpoints can be set only in predicate clauses on lines containing predicate calls, otherwise the breakpoints that are set on non-clause lines would be marked as invalid. The breakpoints that are set on clause lines that do not contain predicate calls would be shifted to the lines containing such calls (if any), but the initial line would be marked with [[Image:Ide_db_BreakPoints_shifted.png]]. Valid breakpoints are marked with red circles [[Image:Ide_db_BreakPoints_en.png]] or [[Image:Ide_db_BreakPoints_dis.png]] in Prolog sources and are shown in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window as blue circles [[Image:Ide_db_BreakPoints_assembler.png]] or [[Image:Ide_db_BreakPoints_assembler_disabled.png]]. If a Prolog clause has several assembler implementations (when the clause has several flow patterns), then each breakpoint in Prolog sources can generate several breakpoints in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window.&lt;br /&gt;
* Breakpoints that are set in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window are marked with red circles [[Image:Ide_db_BreakPoints_en.png]] or [[Image:Ide_db_BreakPoints_dis.png]]. Such breakpoint can be later overwritten by a breakpoint (marked with blue circles [[Image:Ide_db_BreakPoints_assembler.png]] or [[Image:Ide_db_BreakPoints_assembler_disabled.png]]) that is set in Prolog sources on the same address as the breakpoint set in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window.&amp;lt;br /&amp;gt; Notice that after modification and recompilation of the project some breakpoints that are set in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window can be cleared (if other instructions are placed at breakpoint addresses.)&lt;br /&gt;
&lt;br /&gt;
All breakpoints which are set in a program are seen in the &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window.&lt;br /&gt;
&lt;br /&gt;
==== Breakpoint Properties ====&lt;br /&gt;
&lt;br /&gt;
Each breakpoint has properties, which can be modified in the &amp;#039;&amp;#039;&amp;#039;Breakpoint Properties&amp;#039;&amp;#039;&amp;#039; dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_BreakPoint_Properties.png]]&lt;br /&gt;
&lt;br /&gt;
In this dialog:&lt;br /&gt;
&lt;br /&gt;
The top line contains:&lt;br /&gt;
&lt;br /&gt;
* If the breakpoint is set in Prolog sources, then the top line has format:&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;&amp;lt;vipbnf&amp;gt;File: &amp;lt;FileName&amp;gt; Line: &amp;lt;LineNumber&amp;gt;&amp;lt;/vipbnf&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:&amp;#039;&amp;#039;FileName&amp;#039;&amp;#039; is the name of the Prolog source file in which the breakpoint is set.&lt;br /&gt;
*:&amp;#039;&amp;#039;LineNumber&amp;#039;&amp;#039; is the number of the line on which the breakpoint is set.&lt;br /&gt;
&lt;br /&gt;
* If the breakpoint is set in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window, then the top line has format:&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;&amp;lt;vipbnf&amp;gt;Breakpoint Address:&amp;lt;Address&amp;gt;&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
*:&amp;#039;&amp;#039;Address&amp;#039;&amp;#039; is the breakpoint address in the program memory as it is seen in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Count&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Value&amp;#039;&amp;#039;&lt;br /&gt;
:Shows the current number of activations of the breakpoint since its creation. The user cannot modify this value. This value increases by 1 each time when the program reaches the breakpoint.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Hard&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:This check box controls the &amp;#039;&amp;#039;Hard/Soft&amp;#039;&amp;#039; state of the breakpoint. When you turn a breakpoint to Hard, then it will be activated in any debugging mode. When you turn a breakpoint to Soft, then it will be activated only in normal (not Fast Forward) debugging mode.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Comment&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Comment string&amp;#039;&amp;#039;&lt;br /&gt;
:In this edit box you can type in a &amp;#039;&amp;#039;Comment string&amp;#039;&amp;#039;. By default it has the value of the corresponding line in the source file.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Script text&amp;#039;&amp;#039;&lt;br /&gt;
:In this box you can type in a &amp;#039;&amp;#039;Script text&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note.&amp;#039;&amp;#039;&amp;#039; If a module has been built without debug information (this can be done by changing &amp;lt;vp&amp;gt;/debug:full&amp;lt;/vp&amp;gt; to &amp;lt;vp&amp;gt;/nodebug&amp;lt;/vp&amp;gt; in the command line compiler options in the &lt;br /&gt;
{{ide|Project Settings#Build Options Tab|build script rules}} for &amp;lt;vp&amp;gt;pro-&amp;gt;obj:&amp;lt;/vp&amp;gt; and &amp;lt;vp&amp;gt;pack-&amp;gt;obj:&amp;lt;/vp&amp;gt;) then you will not be able to set a breakpoint in the Prolog sources of the module.&lt;br /&gt;
&lt;br /&gt;
Notice that it does not matter in which window you remove a breakpoint (in Prolog sources, in the &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window or in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window). In any case, removing a breakpoint deletes the breakpoint from the program.&lt;br /&gt;
&lt;br /&gt;
==== Pop-up Menu ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window has the pop-up context menu:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_BreakPoints_pop_up.png]]&lt;br /&gt;
&lt;br /&gt;
To activate this menu, select a breakpoint and press the right mouse button. This menu contains items:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Go to Source&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:If the breakpoint is set in the Prolog sources, then the &amp;#039;&amp;#039;&amp;#039;Go to Code&amp;#039;&amp;#039;&amp;#039; activates the Prolog source code editor, and moves the cursor to the Prolog code corresponding to the specified breakpoint. If the breakpoint is set in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window, then the &amp;#039;&amp;#039;&amp;#039;Go to Code&amp;#039;&amp;#039;&amp;#039; moves the view to this breakpoint in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window. The same action is performed by double-click the breakpoint or by pressing the &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; on the breakpoint.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Invokes the {{ide|Debugger#Breakpoint Properties|&amp;#039;&amp;#039;&amp;#039;Breakpoint Properties&amp;#039;&amp;#039;&amp;#039;}} dialog for the selected breakpoint.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Toggle (Turn to Hard/Soft)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Switches the &amp;#039;&amp;#039;Hard/Soft&amp;#039;&amp;#039; state of the selected breakpoints.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Deletes the selected breakpoints.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Turn to Hard All&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Sets the state of all breakpoints that are set in the program to &amp;#039;&amp;#039;Hard&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Turn to Soft All&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Sets the state of all breakpoints that are set in the program to &amp;#039;&amp;#039;Soft&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Remove All&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Removes all breakpoints that are set in the program.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window is auto-updated for any breakpoint updating.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window can be activated either by &amp;#039;&amp;#039;&amp;#039;Ctrl+Alt+B&amp;#039;&amp;#039;&amp;#039; or from the IDE menu &amp;#039;&amp;#039;&amp;#039;View | Breakpoints&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Threads Window ===&lt;br /&gt;
----&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Threads&amp;#039;&amp;#039;&amp;#039; window shows information about the process being debugged and its threads.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Threads&amp;#039;&amp;#039;&amp;#039; window looks like following:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Threads.png]]&lt;br /&gt;
&lt;br /&gt;
Names displayed in the header of the window columns are the following:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;TID&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This column displays thread identifiers of all threads created by the process being debugged.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Current&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This column identifies the current thread by the &amp;lt;vp&amp;gt;*&amp;lt;/vp&amp;gt; sign. In the {{ide|Debugger#Variables Window|Variables}} window you can see only variables of predicates executed in the current thread.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;State&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Displays states of threads. States can be &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Running&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Stopped&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Suspend&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*:&amp;lt;br/&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Running&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  The thread has been started, it is not suspended (see &amp;lt;vp&amp;gt;thread::suspend/0-&amp;gt;&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt; syncObject::wait/0-&amp;gt;&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;syncObject::wait/1-&amp;gt;&amp;lt;/vp&amp;gt;) or terminated (see &amp;lt;vp&amp;gt;thread::terminate/1&amp;lt;/vp&amp;gt;).&lt;br /&gt;
*:&amp;lt;br/&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Suspend&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  The thread is in suspended state (see &amp;lt;vp&amp;gt;thread::createSuspended/3&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;thread::suspend/0-&amp;gt;&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;syncObject::wait/0-&amp;gt;&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;syncObject::wait/1-&amp;gt;&amp;lt;/vp&amp;gt;).&lt;br /&gt;
*:&amp;lt;br/&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Stopped&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; The thread was created and then stopped on a breakpoint, but it is not suspended (see &amp;lt;vp&amp;gt;thread::suspend/0-&amp;gt;&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;syncObject::wait/0-&amp;gt;&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;syncObject::wait/1-&amp;gt;&amp;lt;/vp&amp;gt;). If you set suspended state to a &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Stopped&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; thread, then it turns into the &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Suspend&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; state.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Time&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Thread creation time.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;User time&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Processor time in the user-mode used by the thread.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Kernel Time&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Processor time in the kernel-mode used by the thread.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Priority&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The priority level of the thread. Here can be displayed the following numbers &amp;lt;vp&amp;gt;2, 1, 0, -1, -2&amp;lt;/vp&amp;gt;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Predicate&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This field contains the name of the currently executed thread&amp;#039;s predicate (if it is possible to determine it).&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Displayed Number&lt;br /&gt;
! Priority Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Highest&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The thread can be scheduled before threads with any other priority.&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;AboveNormal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The thread can be scheduled after threads with &amp;#039;&amp;#039;&amp;#039;Highest&amp;#039;&amp;#039;&amp;#039; priority and before those with &amp;#039;&amp;#039;&amp;#039;Normal&amp;#039;&amp;#039;&amp;#039; priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Normal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The thread can be scheduled after threads with &amp;#039;&amp;#039;&amp;#039;AboveNormal&amp;#039;&amp;#039;&amp;#039; priority and before those with &amp;#039;&amp;#039;&amp;#039;BelowNormal&amp;#039;&amp;#039;&amp;#039; priority. Threads have Normal priority by default.&lt;br /&gt;
|-&lt;br /&gt;
| -1&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;BelowNormal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The thread can be scheduled after threads with &amp;#039;&amp;#039;&amp;#039;Normal&amp;#039;&amp;#039;&amp;#039; priority and before those with &amp;#039;&amp;#039;&amp;#039;Lowest&amp;#039;&amp;#039;&amp;#039; priority.&lt;br /&gt;
|-&lt;br /&gt;
| -2&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Lowest&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The thread can be scheduled after threads with any other priority.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pop-up Menu&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Threads&amp;#039;&amp;#039;&amp;#039; window has the pop-up context menu. The same commands can be activated from the &amp;#039;&amp;#039;&amp;#039;Thread&amp;#039;&amp;#039;&amp;#039; sub-menu of the IDE task menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Threads_popup.png]]&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Goto Source&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Opens the text editor and places the cursor onto the predicate, which created the selected thread.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Set Current&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Sets the selected thread as current.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Resume&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Resumes the run of the selected thread.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Suspend&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Suspends the selected thread.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Copies the contents of the line selected in the &amp;#039;&amp;#039;&amp;#039;Threads&amp;#039;&amp;#039;&amp;#039; window to the clipboard.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Copy All&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Copies the contents of the &amp;#039;&amp;#039;&amp;#039;Threads&amp;#039;&amp;#039;&amp;#039; window to the clipboard.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Threads&amp;#039;&amp;#039;&amp;#039; window is updated after changing any displayed parameter.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Threads&amp;#039;&amp;#039;&amp;#039; window can be activated either by &amp;#039;&amp;#039;&amp;#039;CTRL+Alt+H&amp;#039;&amp;#039;&amp;#039; or from the IDE menu &amp;#039;&amp;#039;&amp;#039;View | Threads&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Disassembly Window ===&lt;br /&gt;
----&lt;br /&gt;
==== Disassembly Window Contents ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window shows the assembly language interpretation of the inspected code.&lt;br /&gt;
&lt;br /&gt;
The disassembly starts from the specified top address toward the upper memory and prints each instruction on a new line.&lt;br /&gt;
&lt;br /&gt;
Each line is printed by the pattern:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vipbnf&amp;gt;&amp;lt;LineMarkers&amp;gt; &amp;lt;Address&amp;gt; [ &amp;lt;HexCode&amp;gt; ] &amp;lt;AssemblerCommand&amp;gt;&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;LineMarkers&amp;#039;&amp;#039;&lt;br /&gt;
:Are the {{ide|Debugger#Debug Menu Commands|&amp;#039;&amp;#039;instruction pointer&amp;#039;&amp;#039;}} [[Image:Ide_db_InstructionPointer.png]] and the breakpoint[[Image:Ide_db_BreakPoints_en.png]] (or [[Image:Ide_db_BreakPoints_dis.png]]) markers, which can mark this line.&lt;br /&gt;
&amp;#039;&amp;#039;Address&amp;#039;&amp;#039;&lt;br /&gt;
:The start address of the instruction code.&lt;br /&gt;
&amp;#039;&amp;#039;HexCode&amp;#039;&amp;#039;&lt;br /&gt;
:This is the hexadecimal instruction code. This field can be shown/hidden from the pop-up menu of the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window by checking the &amp;#039;&amp;#039;&amp;#039;Show OpCodes&amp;#039;&amp;#039;&amp;#039; item.&lt;br /&gt;
&amp;#039;&amp;#039;AssemblerCommand&amp;#039;&amp;#039;&lt;br /&gt;
:This is the assembler command corresponding to the instruction code. Assembler commands have the Intel standard assembler abbreviation. If a certain address is resolved to an external name, then this name will be printed in the command column.&lt;br /&gt;
:&amp;lt;br/&amp;gt;The instruction, which will be executed at the next trace step, is marked with the [[Image:Ide_db_InstructionPointer.png]] &amp;#039;&amp;#039;Instruction pointer&amp;#039;&amp;#039; in the &amp;#039;&amp;#039;LineMarkers&amp;#039;&amp;#039; field.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_DisAsm_View.png]]&lt;br /&gt;
&lt;br /&gt;
==== Pop-up Menu ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window has the pop-up context menu with the followin commands:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Go To Address&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Invokes the &amp;#039;&amp;#039;&amp;#039;Go to Address&amp;#039;&amp;#039;&amp;#039; dialog&lt;br /&gt;
*:[[Image:Ide_db_DisAsm_Go2Address.png]]&lt;br /&gt;
*:to type in the address of the instruction, which should be displayed in the top line of the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window. The &amp;#039;&amp;#039;Address&amp;#039;&amp;#039; should be specified in the hexadecimal format. This dialog allows typing symbolic external link names and symbolic CPU register names.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Go To EIP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Updates the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window and places the cursor at the address of the instruction on which the program execution is suspended.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Breakpoint…&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Allows handling the breakpoint [[Image:Ide_db_BreakPoints_en.png]] (or [[Image:Ide_db_BreakPoints_dis.png]]) for the assembler instruction pointed by the cursor. It has the following sub-commands:&lt;br /&gt;
*:[[Image:Ide_db_DisAsm_PopUp.png]]&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Toggle Breakpoint&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Sets or removes a breakpoint at the instruction with the address pointed by the cursor.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Enable / Disable&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:&amp;#039;&amp;#039;Enables / Disables&amp;#039;&amp;#039; the breakpoint pointed by the cursor. This item is disabled if there is no breakpoint at the address pointed by the cursor.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Invokes the &amp;#039;&amp;#039;&amp;#039;Breakpoint Properties&amp;#039;&amp;#039;&amp;#039; dialog for the breakpoint pointed by the cursor. This item is disabled if there is no breakpoint at the address pointed by the cursor.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Go To Source&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Activates the IDE source code editor and sets the cursor at the predicate whose assembler instruction is pointed by the cursor in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window. (When it is possible.)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Copies lines selected in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window to the clipboard. A selection can be performed with the &amp;#039;&amp;#039;&amp;#039;Shift+Up Arrow&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Shift+Down Arrow&amp;#039;&amp;#039;&amp;#039; key combinations.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Show OpCodes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Checking and unchecking this item hides/shows hex images of operation (instruction) codes (&amp;#039;&amp;#039;&amp;#039;OpCodes&amp;#039;&amp;#039;&amp;#039;). These hex instruction codes are shown in the &amp;#039;&amp;#039;HexCode&amp;#039;&amp;#039; field.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Source Annotation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Checking OFF/ON this item hides/shows object names, corresponding to predicate entry points. Each object name is printed on a new line before the corresponding instruction line.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Show Hints&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows additional information about the instruction being executed.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window is updated after each trace step of the debugger.&lt;br /&gt;
&lt;br /&gt;
==== Disassembly Window Commands ====&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Trace Into&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F11&amp;#039;&amp;#039;&amp;#039;) command&lt;br /&gt;
*:Tracing in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window with the &amp;#039;&amp;#039;&amp;#039;Step Into&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F7&amp;#039;&amp;#039;&amp;#039;) command performs execution of one assembler instruction (including entering into procedures if any). That is, if the &amp;#039;&amp;#039;&amp;#039;Step Over&amp;#039;&amp;#039;&amp;#039; command will execute a &amp;lt;vp&amp;gt;call&amp;lt;/vp&amp;gt; instruction as one trace step, then the &amp;#039;&amp;#039;&amp;#039;Step Into&amp;#039;&amp;#039;&amp;#039; command will go into the called procedure. It usually executes disassembler instructions line after line.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Step Over&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F10&amp;#039;&amp;#039;&amp;#039;) command&lt;br /&gt;
*:Tracing in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window with the &amp;#039;&amp;#039;&amp;#039;Step Over&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F10)&amp;#039;&amp;#039;&amp;#039; command performs execution of one assembler instruction (including execution of &amp;lt;vp&amp;gt;call&amp;lt;/vp&amp;gt; instructions). So the &amp;#039;&amp;#039;&amp;#039;Step Over&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F10&amp;#039;&amp;#039;&amp;#039;) command works almost the same way as the &amp;#039;&amp;#039;&amp;#039;Trace Into&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F11&amp;#039;&amp;#039;&amp;#039;) command except for execution of &amp;lt;vp&amp;gt;call&amp;lt;/vp&amp;gt; instructions. In difference to the &amp;#039;&amp;#039;&amp;#039;Trace Into&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F11&amp;#039;&amp;#039;&amp;#039;) command, it tries to perform &amp;lt;vp &amp;gt;call&amp;lt;/vp&amp;gt; instructions as one step and reaches the next line only if the called code returns to that line.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Run to Cursor&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;CTRL+F10&amp;#039;&amp;#039;&amp;#039;) command&lt;br /&gt;
*:Tracing in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window with the &amp;#039;&amp;#039;&amp;#039;Run to Cursor&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;CTRL+F10&amp;#039;&amp;#039;&amp;#039;) command works in the following way. The debugger places an invisible breakpoint at the address corresponding to the instruction specified by the cursor and performs the &amp;#039;&amp;#039;&amp;#039;Debug Run&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F5&amp;#039;&amp;#039;&amp;#039;) command. It depends only upon the program code whether the program will reach this instruction or will never reach it.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window can be activated:&lt;br /&gt;
&lt;br /&gt;
* by &amp;#039;&amp;#039;&amp;#039;Shift+Alt+1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* by &amp;#039;&amp;#039;&amp;#039;Ctrl+D&amp;#039;&amp;#039;&amp;#039; from the traceable source code. The topmost line of the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window displays the address of the disassembler instruction corresponding to the predicate pointed by the cursor in the source code.&lt;br /&gt;
* from the IDE menu &amp;#039;&amp;#039;&amp;#039;View | Disassembly&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If the tracing code has no debug information, then the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window is opened initially (when the debugger starts) and the instruction pointer [[Image:Ide_db_InstructionPointer.png]] points to the executing assembler instruction.&lt;br /&gt;
&lt;br /&gt;
=== Registers Window ===&lt;br /&gt;
----&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Registers&amp;#039;&amp;#039;&amp;#039; window shows current values of the CPU (Central Processor Unit) registers:&lt;br /&gt;
&lt;br /&gt;
* General registers&lt;br /&gt;
* Segment registers&lt;br /&gt;
* Flags&lt;br /&gt;
* Floating-point registers&lt;br /&gt;
&lt;br /&gt;
A register value is printed:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:Red&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;red&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, if it is changed from the last program trace step&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:Blue&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;blue&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, otherwise.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Registers_fpu.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Floating Point&amp;#039;&amp;#039;&amp;#039; command from context pop-up menu can be used to turn ON/OFF the displaying of Floating-point registers.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Registers&amp;#039;&amp;#039;&amp;#039; window can be activated either by &amp;#039;&amp;#039;&amp;#039;Ctr+ Alt+G&amp;#039;&amp;#039;&amp;#039; or from the IDE menu &amp;#039;&amp;#039;&amp;#039;View | Registers&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Modules Window ===&lt;br /&gt;
----&lt;br /&gt;
The Modules Window shows all the modules currently loaded in this debug session. It shows the filename, path, the base address range, the code address range and the type of debug information.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Modules.png]]&lt;br /&gt;
&lt;br /&gt;
=== Memory Dump Window ===&lt;br /&gt;
----&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window shows the virtual memory dump of the program being debugged. Memory dump lines have the length, which is determined by the window width. The number of printed lines window height.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Information Displayed in the Memory Dump Window&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Each line in the &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window is printed by the pattern:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vipbnf&amp;gt;&amp;lt;Address&amp;gt; | [ &amp;lt;HexValues&amp;gt; ] [ &amp;lt;ASCIIcharacters&amp;gt; ] [ &amp;lt;UnicodeCharacters&amp;gt;]&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Address&amp;#039;&amp;#039;&lt;br /&gt;
:This is the hexadecimal address of the first byte of the memory displayed in this line.&lt;br /&gt;
&amp;#039;&amp;#039;HexValues&amp;#039;&amp;#039;&lt;br /&gt;
:&amp;lt;vipbnf&amp;gt;&amp;lt;HexValues&amp;gt; : &amp;lt;HexValue&amp;gt; [ &amp;lt;HexValues&amp;gt; ]&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
:This is the hexadecimal format of the memory dump. Each hex value can be an image of one, two, four or eight continued memory bytes (this is contolled by the &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window content pop-up menu).&lt;br /&gt;
&amp;#039;&amp;#039;ASCIIcharacters&amp;#039;&amp;#039;&lt;br /&gt;
:&amp;lt;vipbnf&amp;gt;&amp;lt;ASCIIcharacters&amp;gt; : &amp;lt;ASCIIcharacter&amp;gt; [ &amp;lt;ASCIIcharacters&amp;gt; ]&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
:This is the same memory dump but in the format of ASCII characters (a character represenrs one byte). Unprintable characters are printed as dots.&lt;br /&gt;
&amp;#039;&amp;#039;UnicodeCharacters&amp;#039;&amp;#039;&lt;br /&gt;
:&amp;lt;vipbnf&amp;gt;&amp;lt;UnicodeCharacters&amp;gt; : &amp;lt;UnicodeCharacter&amp;gt; [ &amp;lt;UnicodeCharacters&amp;gt; ]&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
:This is the same memory dump in the format of Unicode characters (a character represents two bytes). Unprintable characters are printed as dots.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Memory_view1.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window title shows the module name, which memory is displayed in the window. If the module name cannot be determined, then the title displays &amp;#039;&amp;#039;Unknown module&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Content Pop-up Menu&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window has the pop-up context menu which contains commands:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Go To Address&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Ctrl+G&amp;#039;&amp;#039;&amp;#039;. Invokes the &amp;#039;&amp;#039;&amp;#039;Go to Address&amp;#039;&amp;#039;&amp;#039; dialog&lt;br /&gt;
*:[[Image:Ide_db_DisAsm_Go2Address.png]]&lt;br /&gt;
*: to type a new top address in hex format. This dialog allows typing symbolic external link names and symbolic CPU register names. Double-click in the &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window area also activates the &amp;#039;&amp;#039;&amp;#039;Go to Address&amp;#039;&amp;#039;&amp;#039; dialog.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Go To &amp;#039;&amp;#039;Ptr&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Ctrl+Shift+G&amp;#039;&amp;#039;&amp;#039;. Updates the &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window starting the first line from the address shown as &amp;#039;&amp;#039;Ptr&amp;#039;&amp;#039; (address defined by the memory contents of four or eight continued bytes at which the cursor is pointing if one of &amp;#039;&amp;#039;&amp;#039;4-byte Integer&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;8-byte Integer&amp;#039;&amp;#039;&amp;#039; is selected).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Undo Go to&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Alt+Left Arrow&amp;#039;&amp;#039;&amp;#039;. Updates the &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window view to start from the previously used top (the first line) address.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Redo Go to&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Alt+Right Arrow&amp;#039;&amp;#039;&amp;#039;. This operation is the counterpart to the &amp;#039;&amp;#039;&amp;#039;Undo Go to&amp;#039;&amp;#039;&amp;#039;. It updates the &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window view to start from the &amp;quot;next&amp;quot; top address, which was used before the &amp;#039;&amp;#039;&amp;#039;Undo Go to&amp;#039;&amp;#039;&amp;#039; command was implemented.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Set Memory Breakpoint&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This operation sets a memory breakpoint at address from the left pane.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Remove Memory Breakpoint&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This operation removes a previously set a memory breakpoint.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Copies the selected lines to the clipboard. To select a line, click on it while holding the &amp;#039;&amp;#039;&amp;#039;shift&amp;#039;&amp;#039;&amp;#039; key. You can select multiple lines at one time.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Copy &amp;#039;&amp;#039;Ptr&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Ctrl+C&amp;#039;&amp;#039;&amp;#039;. Copies hexadecimal representation of the specified address (four or eight bytes) to the clipboard.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Refresh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Refresh the &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window contents.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Write Block&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This command opens the &amp;#039;&amp;#039;&amp;#039;Write Memory Block&amp;#039;&amp;#039;&amp;#039; dialog:&lt;br /&gt;
*:[[Image:Ide_db_Memory_BlockWrite.png]]&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Filename&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Here you should type in the name of a file in which the specified memory block should be saved.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Start Address&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Here you should specify a hexadecimal start address of the memory block.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Length&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Here you should specify a hexadecimal length in bytes of the memory block.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Show Hex&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows the column, which displays the memory dump in the hexadecimal format. This is the {{ide|Debugger#Debugger Views|&amp;#039;&amp;#039;HexValues&amp;#039;&amp;#039;}} column in the right pane.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Show ASCII&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows the column, which displays the &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ASCII&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; format of the memory dump. This is the {{ide|Debugger#Debugger Views|&amp;#039;&amp;#039;ASCIIcharacters&amp;#039;&amp;#039;}} column in the right pane.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Show Unicode&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows the column, which displays the &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Unicode&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; format of the memory dump. This is the {{ide|Debugger#Debugger Views|&amp;#039;&amp;#039;UnicodeCharacters&amp;#039;&amp;#039;}} column in the right pane.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Update Speed...&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Defines the rate of the Memory Dump window updating:&lt;br /&gt;
*:[[Image:iDE_db_Memory_menu1.png]]&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;High&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Performs automatic updating with the high rate.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Normal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Performs automatic updating with normal rate.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Low&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Performs automatic updating with low rate.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Manual&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:No automatic updating.&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window can be activated either by &amp;#039;&amp;#039;&amp;#039;CTRL+Alt+M&amp;#039;&amp;#039;&amp;#039; or from the IDE menu &amp;#039;&amp;#039;&amp;#039;View | Memory Dump&amp;#039;&amp;#039;&amp;#039;.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Debugger&amp;diff=3547</id>
		<title>Ide/Debugger</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Debugger&amp;diff=3547"/>
		<updated>2013-04-18T09:31:11Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ideNavbar|Debugger}}&lt;br /&gt;
== Visual Prolog Debugger ==&lt;br /&gt;
&lt;br /&gt;
Visual Prolog Debugger is a powerful tool for finding errors in programs. Sometimes correcting errors in programs takes about 90% of the total development time. This proves that good tools for debugging are very important.&lt;br /&gt;
&lt;br /&gt;
Visual Prolog Debugger can debug MS Windows 32/64-bit Graphical User Interface and Console applications and DLLs.&lt;br /&gt;
&lt;br /&gt;
Visual Prolog Debugger provides ability to trace program execution. In the debugger one can set breakpoints, step through the source code (with viewing traced code both on Prolog and disassembler levels). The debugger allows inspecting variables used in the currently traced clause, viewing and retracting facts, viewing memory dumps, viewing the stack of predicate calls, viewing breakpoints inserted into the program, viewing registers, etc.&lt;br /&gt;
&lt;br /&gt;
Visual Prolog Debugger is the IDE tool, which can be run with the &amp;#039;&amp;#039;&amp;#039;Debug | Run&amp;#039;&amp;#039;&amp;#039; menu command, with the &amp;#039;&amp;#039;&amp;#039;F5&amp;#039;&amp;#039;&amp;#039; hot key, or with the [[Image:Ide_db_Run.png]] toolbar button.&lt;br /&gt;
&lt;br /&gt;
== Generation of Debugging Information ==&lt;br /&gt;
&lt;br /&gt;
Generation of the information for Visual Prolog Debugger is controlled by copmiler&amp;#039;s option &lt;br /&gt;
{{ide|IDE Tools#Command Line Options|/debug:full}}. By default, the Visual Prolog IDE always generates debugging information while compiling project modules.&lt;br /&gt;
&lt;br /&gt;
== Starting Visual Prolog Debugger ==&lt;br /&gt;
&lt;br /&gt;
When you start Visual Prolog Debugger (with the &amp;#039;&amp;#039;&amp;#039;Debug | Run&amp;#039;&amp;#039;&amp;#039; menu command, or with the &amp;#039;&amp;#039;&amp;#039;F5&amp;#039;&amp;#039;&amp;#039; hot key, or with the [[Image:Ide_db_Run.png]] toolbar button), then the IDE builds (if it is needed) the project, runs the target executable under the debugger, and breaks the program execution at the entry point of the goal section:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Start.png]]&lt;br /&gt;
&lt;br /&gt;
If in the &amp;#039;&amp;#039;&amp;#039;Run Arguments&amp;#039;&amp;#039;&amp;#039; edit control (in the &amp;#039;&amp;#039;&amp;#039;Build Options&amp;#039;&amp;#039;&amp;#039; tab of the &amp;#039;&amp;#039;&amp;#039;Project Settings&amp;#039;&amp;#039;&amp;#039; dialog) you have specified a string with command line arguments, then this string is passed to the program.&lt;br /&gt;
&lt;br /&gt;
== Debug Menu Commands ==&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Debug&amp;#039;&amp;#039;&amp;#039; menu is used to control execution of the program being debugged.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_DebugMenu.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Debug Menu&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Run (F5)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This command continues running the application. Issuing this command, when the IDE does not debug an application, builds (if needed) the application and starts its execution under the debugger. This command is often used in conjunction with setting of breakpoints.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Run Skipping Soft Breakpoints (Ctrl+Shift+F10)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This command continues running the application without breaks at &amp;#039;&amp;#039;Soft Breakpoint&amp;#039;&amp;#039; (see {{ide|Debugger#Breakpoints Window|Breakpoints Window}} for more details).&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Stop Debugging (Shift+F5)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This command stops the program execution. The IDE becomes active in the ordinary mode.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Break Program&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:When a program is executed (the program instructions are executed and the debugger is waiting till the program stops and returns control to the debugger), then with this command it is possible to break the program execution and to return control to the debugger. Then it is possible to inspect the call stack to see what the program is actually doing or to set a breakpoint where to catch the execution. Notice that this command is disabled while the debugger is active (when the program instructions are not executed).&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Restart&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This command restarts the application execution under the debugger.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Attach process...&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:It commands the debugger to attach to a process.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Step Over (F10)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:It instructs the debugger to execute the next line of code. If the line contains a predicate call, &amp;#039;&amp;#039;&amp;#039;Step Over&amp;#039;&amp;#039;&amp;#039; executes the entire predicate, then halts at the first line outside the predicate.&lt;br /&gt;
*:&amp;lt;br/&amp;gt;If this command is used, then when you reach a predicate call, the predicate is executed without stepping through the predicate clauses (without entering into source code of the predicate).&lt;br /&gt;
*:&amp;lt;br/&amp;gt;Use &amp;#039;&amp;#039;&amp;#039;Step Over&amp;#039;&amp;#039;&amp;#039; if you want to avoid stepping into predicates.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Step Into (F11)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Step Into&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Step Over&amp;#039;&amp;#039;&amp;#039; differ in only one aspect — how they handle predicate calls.&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Step Into&amp;#039;&amp;#039;&amp;#039; instructs the debugger to execute the next line of code.&lt;br /&gt;
*:If the line contains a predicate call, &amp;#039;&amp;#039;&amp;#039;Step Into&amp;#039;&amp;#039;&amp;#039; executes only the call itself, then halts at the first line of code inside the predicate.&lt;br /&gt;
*:&amp;lt;br/&amp;gt; &amp;#039;&amp;#039;&amp;#039;Step Into&amp;#039;&amp;#039;&amp;#039; if you want entering into clauses of each called predicate.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Step out of (Shift+F11)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This command accomplishes execution of clauses of the currently executing predicate and calls the next predicate.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Run to Cursor (CTRL+F10)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:It commands the debugger to run the application until it reaches the location where the cursor is set. This location can be both in Visual Prolog source code or in Disassembly window.&lt;br /&gt;
*:&amp;lt;br/&amp;gt;Place the cursor on a line and activate this command; the application will start execution until the line pointed by the cursor (if it can come to this predicate call). The &amp;#039;&amp;#039;Instruction Pointer&amp;#039;&amp;#039; will point to this line.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Go to Executing Predicate Source (Ctrl+E)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:If you have moved in the program source windows and have lost the &amp;#039;&amp;#039;Instruction Pointer&amp;#039;&amp;#039;, then you may execute this command. It sets the cursor to the line containing the currently executing predicate (pointed by the &amp;#039;&amp;#039;Instruction Pointer&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Break on Exception&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:When this option is checked ON and if an exception occurs, then execution of program is stopped. Then you will be able to use the &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; window to locate your predicate in which the exception occurs. See how to {{ide|Debugger#How to Use Break on Exception|Use Break on Exception}} for more information.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Toggle Breakpoint (F9)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Using this command you can set a breakpoint to any executable line in program source files.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Remove All Breakpoints&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This command removes all previously set breakpoints.&lt;br /&gt;
&lt;br /&gt;
== How to Use Break on Exception ==&lt;br /&gt;
&lt;br /&gt;
Some times, it is difficult to locate which your source code predicate generates an exception. In such situation the &amp;#039;&amp;#039;&amp;#039;Break on Exception&amp;#039;&amp;#039;&amp;#039; option can be helpful.&lt;br /&gt;
&lt;br /&gt;
Start to debug your program. When its execution will be close to the expected exception, turn ON the &amp;#039;&amp;#039;&amp;#039;Break on Exception&amp;#039;&amp;#039;&amp;#039; option. (It can be inconvenient to turn the &amp;#039;&amp;#039;&amp;#039;Break on Exception&amp;#039;&amp;#039;&amp;#039; option from the begin of the debugger execution since this can bother you with some otherwise masked exceptions.)&lt;br /&gt;
&lt;br /&gt;
When an exception occurs, Debugger catches it and execution of a debugged program is stopped.&lt;br /&gt;
&lt;br /&gt;
Then you will be able to use the &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; window to locate the predicate in which the exception occurs and to inspect the sequence of calls which lead the exception. The topmost in the &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; window line corresponds to the last executed predicate. You can double click a line in this window to inspect a clause of the correspondent predicate. If there are no available sources for the &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; window entry, the Debugger will show the machine instructions in the &amp;#039;&amp;#039;&amp;#039;Disassembler&amp;#039;&amp;#039;&amp;#039; window.&lt;br /&gt;
&lt;br /&gt;
== Debugger Views ==&lt;br /&gt;
&lt;br /&gt;
Several debugger windows can be opened from the &amp;#039;&amp;#039;&amp;#039;View&amp;#039;&amp;#039;&amp;#039; menu:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_ViewWndows.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The View Sub-menu&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
The windows, which can be used in the debugger (debugger views), are:&lt;br /&gt;
&lt;br /&gt;
*{{ide|Debugger#Run Stack Window|Run Stack}} (&amp;#039;&amp;#039;&amp;#039;CTRL+Alt+C&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
*{{ide|Debugger#Variables Window|Variables for Current Clause}} (&amp;#039;&amp;#039;&amp;#039;CTRL+Alt+V&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
*{{ide|Debugger#Facts Window|Facts}} (&amp;#039;&amp;#039;&amp;#039;CTRL+Alt+F&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
*{{ide|Debugger#Breakpoints Window|BreakPoints}} (&amp;#039;&amp;#039;&amp;#039;CTRL+Alt+B&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
*{{ide|Debugger#Threads Window|Threads}} (&amp;#039;&amp;#039;&amp;#039;CTRL+Alt+H&amp;#039;&amp;#039;&amp;#039;)]&lt;br /&gt;
*{{ide|Debugger#Modules Window|Modules}}&lt;br /&gt;
*{{ide|Debugger#Disassembly Window|Disassembly}} (&amp;#039;&amp;#039;&amp;#039;CTRL+Alt+D&amp;#039;&amp;#039;&amp;#039;)]&lt;br /&gt;
*{{ide|Debugger#Registers Window|Registers}} (&amp;#039;&amp;#039;&amp;#039;CTRL+Alt+G&amp;#039;&amp;#039;&amp;#039;)]&lt;br /&gt;
*{{ide|Debugger#Memory Dump Window|Memory Dump}} (&amp;#039;&amp;#039;&amp;#039;CTRL+Alt+M&amp;#039;&amp;#039;&amp;#039;)]&lt;br /&gt;
&lt;br /&gt;
Also the following two windows, which are not only debugger windows (debugger views), can also be used while debugging:&lt;br /&gt;
&lt;br /&gt;
*{{ide|Debugger#Project Tree|Project Tree}} &lt;br /&gt;
*{{ide|Debugger#Source Code Windows|Source Code Windows}} &lt;br /&gt;
&lt;br /&gt;
=== Project Tree ===&lt;br /&gt;
----&lt;br /&gt;
When the debugger is started, you can click the &amp;#039;&amp;#039;&amp;#039;View | Project Window&amp;#039;&amp;#039;&amp;#039; to display the Project Files Tree (the {{ide|Project Tree|Project window}}) and the structure of the project files can be examined by exploring the project tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_ProjectWin.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Project Tree View&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
In this view, it is possible to double-click files (the project consists of) and double-click individual predicates. The result will be that a source code editor opens up with the caret pointing to the clicked item.&lt;br /&gt;
&lt;br /&gt;
=== Source Code Windows ===&lt;br /&gt;
----&lt;br /&gt;
When the IDE starts debugging a project, it automatically runs the target executable under the debugger, and breaks the program execution at the &amp;lt;vp&amp;gt;goal&amp;lt;/vp&amp;gt; section entry point. The debugger opens the correspondent (containing the &amp;lt;vp&amp;gt;goal&amp;lt;/vp&amp;gt; section) Visual Prolog source file in the IDE text editor.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_StartDebugging.png|center|frame|&amp;#039;&amp;#039;&amp;#039;The Source Code View&amp;#039;&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
Notice the blue arrow [[Image:Ide_db_ArrowBlue.png]] pointing to the executing predicate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;mainExe::run(main::run).&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This arrow is the &amp;#039;&amp;#039;Instruction Pointer&amp;#039;&amp;#039;, which always points to the currently executing predicate in source code windows. That is, you can follow the &amp;#039;&amp;#039;Instruction Pointer&amp;#039;&amp;#039; moving to trace execution of the program.&lt;br /&gt;
&lt;br /&gt;
The debugger changes the color of the &amp;#039;&amp;#039;Instruction Pointer&amp;#039;&amp;#039; arrow when it executes a predicate, which fails or which raises an exception.&lt;br /&gt;
&lt;br /&gt;
If you have moved in the program source windows and have lost the &amp;#039;&amp;#039;Instruction Pointer&amp;#039;&amp;#039;, then you can easy find it with the menu command &amp;#039;&amp;#039;&amp;#039;Debug | Go to Executing Predicate Source (Ctrl+E)&amp;#039;&amp;#039;&amp;#039;. It sets the cursor to the line containing the currently executing predicate (to the line pointed by the &amp;#039;&amp;#039;Instruction Pointer&amp;#039;&amp;#039;).&lt;br /&gt;
{{:ide/Debugger/Debugger Views}}&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Debugger/Debugger_Views&amp;diff=3546</id>
		<title>Ide/Debugger/Debugger Views</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Debugger/Debugger_Views&amp;diff=3546"/>
		<updated>2013-04-18T07:49:23Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
=== Run Stack Window ===&lt;br /&gt;
----&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; consists of three kinds of items:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; item – marked with [[Image:Ide_db_RunStack_up.png]]. It describes ordinary executable clauses, which do not produce backtrack points and are not trapped.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;BackTrack&amp;#039;&amp;#039;&amp;#039; item – marked with [[Image:Ide_db_RunStack_dn.png]].It describes a clause of a nondeterministic predicate. The next clause of this predicate can be executed when a program failure of this clause occurs. Such items occur when a clause of a predicate, which creates a &amp;#039;&amp;#039;&amp;#039;backtrack&amp;#039;&amp;#039;&amp;#039; point (can produce more than one solution) is called.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;TrapTrack&amp;#039;&amp;#039;&amp;#039; item – marked with [[Image:Ide_db_RunStack_rh.png]] or [[Image:Ide_db_RunStack_dn_rh.png]]. They describe a continue item (clause), which will be resumed in any case independently whether an error condition occurs or no. For example, such item is created when a predicate call is trapped with the &amp;lt;vp&amp;gt;trap/3&amp;lt;/vp&amp;gt; predicate. The [[Image:Ide_db_RunStack_rh.png]] icon is used to mark trapped clauses of deterministic predicates. The [[Image:Ide_db_RunStack_dn_rh.png]] icon is used to mark trapped clauses of nondeterministic predicates.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;BackTrack&amp;#039;&amp;#039;&amp;#039; (marked with [[Image:Ide_db_RunStack_dn.png]]) and &amp;#039;&amp;#039;&amp;#039;TrapTrack&amp;#039;&amp;#039;&amp;#039; items (marked with [[Image:Ide_db_RunStack_dn_rh.png]]) are backtracking points. The clause, marked by one of these items, will be resumed and the program execution will be continued after the corresponding failure or an error occurs.&lt;br /&gt;
&lt;br /&gt;
The typical example of the &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; window is presented in the following picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_RunStack.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pop-up Menu&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; window has the pop-up context menu:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_RunStack_menu.png]]&lt;br /&gt;
&lt;br /&gt;
For each selected item in the tree, this menu contains items:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Refresh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:It refreshes all the &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; window contents, rebuilds the tree.&lt;br /&gt;
*:&amp;lt;br/&amp;gt;It also refreshes the {{ide|Debugger#Variables Window|&amp;#039;&amp;#039;&amp;#039;Variables&amp;#039;&amp;#039;&amp;#039;}} window (if it is displayed).&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Go To Code&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Activates the Prolog source editor and places the cursor at the Prolog clause corresponding to the item selected in the &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; window. If the item does not correspond to a Prolog module with debug information, then the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window will be opened and the cursor will be placed onto the corresponding assembler instruction. The same action is caused by double-click a predicate call in the &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; window.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Copy Line&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:It copies the selected line contents to the clipboard.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Show Domains&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This option turns ON/OFF displaying domains of variables.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Show Values&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This option turns ON/OFF displaying values of variables.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Run Stack&amp;#039;&amp;#039;&amp;#039; window can be activated by the IDE menu &amp;#039;&amp;#039;&amp;#039;View | Run Stack&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Variables Window ===&lt;br /&gt;
----&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Variables&amp;#039;&amp;#039;&amp;#039; window can be activated either by &amp;#039;&amp;#039;&amp;#039;Ctrl+Alt+V&amp;#039;&amp;#039;&amp;#039; or from the IDE menu &amp;#039;&amp;#039;&amp;#039;View | Variables for Current Clause&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Variables Window Contents&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Variables&amp;#039;&amp;#039;&amp;#039; window displays the tree of all program variables and facts from the traced clause, which are already created by the program at the current tracing step. These are: all variables and all object facts (fact variables), which are created in the clause before the executing instruction, and all class facts (fact variables), which can be used in this clause (declared in this class implementation).&lt;br /&gt;
&lt;br /&gt;
The top line of the window displays the declaration of the predicate, whose clause is executed.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Vars_Top.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Variables&amp;#039;&amp;#039;&amp;#039; window content is updated after every trace step.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pop-up Context Menu&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Variables in the Current Clause&amp;#039;&amp;#039;&amp;#039; window has the following pop-up context menu:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Vars_Menu.png]]&lt;br /&gt;
&lt;br /&gt;
This menu contains items:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Insert into Watch Window&amp;#039;&amp;#039;&lt;br /&gt;
*:Opens the &amp;#039;&amp;#039;&amp;#039;Watch Window&amp;#039;&amp;#039;&amp;#039; and moves there selected variable.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&lt;br /&gt;
*:This command copies the contents of the line selected in the &amp;#039;&amp;#039;&amp;#039;Variables&amp;#039;&amp;#039;&amp;#039; window to the clipboard.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show as Hexadecimal&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows integral values in the hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show as Decimal&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows integral values in the decimal format.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show as Octal&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows integral values in the octal format.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show Domains&amp;#039;&amp;#039;&lt;br /&gt;
*:This option turns &amp;#039;&amp;#039;&amp;#039;ON/OFF&amp;#039;&amp;#039;&amp;#039; displaying the domains after variable names.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show Variable Addresses&amp;#039;&amp;#039;&lt;br /&gt;
*:This option turns &amp;#039;&amp;#039;&amp;#039;ON/OFF&amp;#039;&amp;#039;&amp;#039; displaying the addresses after variable names.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&lt;br /&gt;
*:This command allows search variable by name.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Copy Tree&amp;#039;&amp;#039;&lt;br /&gt;
*:This command copies the contents of the window to the clipboard.&lt;br /&gt;
&lt;br /&gt;
=== Facts Window ===&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Class Facts&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Facts&amp;#039;&amp;#039;&amp;#039; window always shows the current contents of all &amp;#039;&amp;#039;&amp;#039;class&amp;#039;&amp;#039;&amp;#039; fact databases defined in the program being debugged.&lt;br /&gt;
&lt;br /&gt;
Simple example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Facts_View.png]]&lt;br /&gt;
&lt;br /&gt;
Pressing &amp;#039;&amp;#039;&amp;#039;CTRL+ALT+F&amp;#039;&amp;#039;&amp;#039; opens &amp;#039;&amp;#039;&amp;#039;Facts&amp;#039;&amp;#039;&amp;#039; window:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Facts_View3.png]]&lt;br /&gt;
&lt;br /&gt;
Clicking icons opens sub-trees:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Facts_View4.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Facts&amp;#039;&amp;#039;&amp;#039; window automatically goes to the fact that is selected in the text editor (if any):&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Facts_View11.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Facts_View41.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Objects Facts&amp;#039;&amp;#039;&amp;#039; you cat look like a components of object variables in the {{ide|Debugger#Variables Window|&amp;#039;&amp;#039;&amp;#039;Variables&amp;#039;&amp;#039;&amp;#039; window}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pop-up Context Menu&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Facts Window&amp;#039;&amp;#039;&amp;#039; has the following pop-up context menu:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Vars_Menu.png]]&lt;br /&gt;
&lt;br /&gt;
This menu contains items:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Insert into Watch Window&amp;#039;&amp;#039;&lt;br /&gt;
*:Opens the &amp;#039;&amp;#039;&amp;#039;Watch Window&amp;#039;&amp;#039;&amp;#039; and moves there selected fact.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&lt;br /&gt;
*:This command copies the contents of the line selected in the &amp;#039;&amp;#039;&amp;#039;Facts&amp;#039;&amp;#039;&amp;#039; window to the clipboard.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show as Hexadecimal&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows integral values in the hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show as Decimal&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows integral values in the decimal format.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show as Octal&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows integral values in the octal format.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show Domains&amp;#039;&amp;#039;&lt;br /&gt;
*:This option turns &amp;#039;&amp;#039;&amp;#039;ON/OFF&amp;#039;&amp;#039;&amp;#039; displaying the domains after facts names.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Show Addresses&amp;#039;&amp;#039;&lt;br /&gt;
*:This option turns &amp;#039;&amp;#039;&amp;#039;ON/OFF&amp;#039;&amp;#039;&amp;#039; displaying the addresses after facts names.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Find&amp;#039;&amp;#039;&lt;br /&gt;
*:This command allows search fact by name.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;Copy Tree&amp;#039;&amp;#039;&lt;br /&gt;
*:This command copies the contents of the window to the clipboard.&lt;br /&gt;
&lt;br /&gt;
=== Breakpoints Window ===&lt;br /&gt;
----&lt;br /&gt;
==== Introduction ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window shows all breakpoints, which have been set in the program being debugged.&lt;br /&gt;
&lt;br /&gt;
You can set a breakpoint onto any executable line in program source files (or in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window, where a breakpoint can be set on any instruction of the program being debugged).&lt;br /&gt;
&lt;br /&gt;
There are two kinds of breakpoints: hard and soft. Hard breakpoints are active in any debugging mode. Soft breakpoints are active in normal debugging mode but disabled in a special mode of quick debugging, called &amp;#039;&amp;#039;Fast Forward Mode&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==== Breakpoints Window Contents ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window for each breakpoint includes &amp;#039;&amp;#039;&amp;#039;Status&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Source&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Line&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Count&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Comment&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039;, where:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Status&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows whether the breakpoint is &amp;#039;&amp;#039;hard&amp;#039;&amp;#039; or &amp;#039;&amp;#039;soft&amp;#039;&amp;#039;.&lt;br /&gt;
**&amp;#039;&amp;#039;Hard&amp;#039;&amp;#039;&lt;br /&gt;
**:If a breakpoint is &amp;#039;&amp;#039;hard&amp;#039;&amp;#039; then it will be activated in any debugging mode. A hard breakpoint is marked with the filled circle [[Image:Ide_db_BreakPoints_en.png]] or [[Image:Ide_db_BreakPoints_assembler.png]] (for assembler) or [[Image:Ide_db_BreakPoints_shifted.png]] (for relocated breakpoint).&lt;br /&gt;
**&amp;#039;&amp;#039;Soft&amp;#039;&amp;#039;&lt;br /&gt;
**:If a breakpoint is &amp;#039;&amp;#039;soft&amp;#039;&amp;#039; then it will be activated only in normal (not Fast Forward) debugging mode. A soft breakpoint is marked with the hollow circle [[Image:Ide_db_BreakPoints_dis.png]] or [[Image:Ide_db_BreakPoints_assembler_disabled.png]] (for assembler).&lt;br /&gt;
**&amp;#039;&amp;#039;Invalid&amp;#039;&amp;#039;&lt;br /&gt;
**:A breakpoint is invalid when it is set on a line, which does not contain executable code. An invalid breakpoint is marked with the crossed hollow circle [[Image:Ide_db_BreakPoints_invalid.png]].&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Source&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This column shows the source string:&lt;br /&gt;
*:&amp;lt;vipbnf&amp;gt;&amp;lt;SourceName&amp;gt;&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
*:where:&lt;br /&gt;
*:&amp;#039;&amp;#039;SourceName&amp;#039;&amp;#039;&lt;br /&gt;
*:The description of a predicate in the address space of whose clauses the breakpoint is set:&lt;br /&gt;
*:*If the breakpoint is set in Prolog sources, then &amp;#039;&amp;#039;SourceName&amp;#039;&amp;#039; is the filename in which the breakpoint is set. It is displayed with the format:&lt;br /&gt;
*::&amp;lt;vipbnf&amp;gt;&amp;lt;FileName&amp;gt; &amp;#039;(&amp;#039; &amp;lt;Path&amp;gt; &amp;#039;)&amp;#039;&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
*::The &amp;#039;&amp;#039;Path&amp;#039;&amp;#039; can use {{ide|Make Facility#Build Symbols|Build script symbols}}.&lt;br /&gt;
*:* If the breakpoint is set in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window, then &amp;#039;&amp;#039;SourceName&amp;#039;&amp;#039; has the format:&lt;br /&gt;
*::&amp;lt;vipbnf&amp;gt;--- assembler: &amp;lt;AddressValue&amp;gt;&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
*::&amp;#039;&amp;#039;AddressValue&amp;#039;&amp;#039; is the hexadecimal address of the breakpoint in the assembler code of the predicate in which the breakpoint is set.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Line&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:When the breakpoint is set in a Prolog source file, then this column displays the number of the line the breakpoint is set on. &amp;lt;br /&amp;gt; When the breakpoint is set in the Disassembly window, then the number of the line is equal to 0.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Count&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This column displays {{ide|Debugger#Breakpoint Properties|counts}} of breakpoints.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Comment&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This column displays {{ide|Debugger#Breakpoint Properties|comment strings}} of breakpoints.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This column displays the script text of a breakpoint. The script is performed each time the program reaches the breakpoint.&lt;br /&gt;
&lt;br /&gt;
==== Breakpoints in Prolog and Disassembly Windows ====&lt;br /&gt;
&lt;br /&gt;
Breakpoints can be set in Prolog source files and in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window:&lt;br /&gt;
&lt;br /&gt;
* In Prolog sources valid breakpoints can be set only on lines containing executable instructions. That is, breakpoints can be set only in predicate clauses on lines containing predicate calls, otherwise the breakpoints that are set on non-clause lines would be marked as invalid. The breakpoints that are set on clause lines that do not contain predicate calls would be shifted to the lines containing such calls (if any), but the initial line would be marked with [[Image:Ide_db_BreakPoints_shifted.png]]. Valid breakpoints are marked with red circles [[Image:Ide_db_BreakPoints_en.png]] or [[Image:Ide_db_BreakPoints_dis.png]] in Prolog sources and are shown in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window as blue circles [[Image:Ide_db_BreakPoints_assembler.png]] or [[Image:Ide_db_BreakPoints_assembler_disabled.png]]. If a Prolog clause has several assembler implementations (when the clause has several flow patterns), then each breakpoint in Prolog sources can generate several breakpoints in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window.&lt;br /&gt;
* Breakpoints that are set in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window are marked with red circles [[Image:Ide_db_BreakPoints_en.png]] or [[Image:Ide_db_BreakPoints_dis.png]]. Such breakpoint can be later overwritten by a breakpoint (marked with blue circles [[Image:Ide_db_BreakPoints_assembler.png]] or [[Image:Ide_db_BreakPoints_assembler_disabled.png]]) that is set in Prolog sources on the same address as the breakpoint set in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window.&amp;lt;br /&amp;gt; Notice that after modification and recompilation of the project some breakpoints that are set in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window can be cleared (if other instructions are placed at breakpoint addresses.)&lt;br /&gt;
&lt;br /&gt;
All breakpoints which are set in a program are seen in the &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window.&lt;br /&gt;
&lt;br /&gt;
==== Breakpoint Properties ====&lt;br /&gt;
&lt;br /&gt;
Each breakpoint has properties, which can be modified in the &amp;#039;&amp;#039;&amp;#039;Breakpoint Properties&amp;#039;&amp;#039;&amp;#039; dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_BreakPoint_Properties.png]]&lt;br /&gt;
&lt;br /&gt;
In this dialog:&lt;br /&gt;
&lt;br /&gt;
The top line contains:&lt;br /&gt;
&lt;br /&gt;
* If the breakpoint is set in Prolog sources, then the top line has format:&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;&amp;lt;vipbnf&amp;gt;File: &amp;lt;FileName&amp;gt; Line: &amp;lt;LineNumber&amp;gt;&amp;lt;/vipbnf&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:&amp;#039;&amp;#039;FileName&amp;#039;&amp;#039; is the name of the Prolog source file in which the breakpoint is set.&lt;br /&gt;
*:&amp;#039;&amp;#039;LineNumber&amp;#039;&amp;#039; is the number of the line on which the breakpoint is set.&lt;br /&gt;
&lt;br /&gt;
* If the breakpoint is set in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window, then the top line has format:&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;&amp;lt;vipbnf&amp;gt;Breakpoint Address:&amp;lt;Address&amp;gt;&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
*:&amp;#039;&amp;#039;Address&amp;#039;&amp;#039; is the breakpoint address in the program memory as it is seen in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Count&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Value&amp;#039;&amp;#039;&lt;br /&gt;
:Shows the current number of activations of the breakpoint since its creation. The user cannot modify this value. This value increases by 1 each time when the program reaches the breakpoint.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Hard&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:This check box controls the &amp;#039;&amp;#039;Hard/Soft&amp;#039;&amp;#039; state of the breakpoint. When you turn a breakpoint to Hard, then it will be activated in any debugging mode. When you turn a breakpoint to Soft, then it will be activated only in normal (not Fast Forward) debugging mode.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Comment&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Comment string&amp;#039;&amp;#039;&lt;br /&gt;
:In this edit box you can type in a &amp;#039;&amp;#039;Comment string&amp;#039;&amp;#039;. By default it has the value of the corresponding line in the source file.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Script text&amp;#039;&amp;#039;&lt;br /&gt;
:In this box you can type in a &amp;#039;&amp;#039;Script text&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note.&amp;#039;&amp;#039;&amp;#039; If a module has been built without debug information (this can be done by changing &amp;lt;vp&amp;gt;/debug:full&amp;lt;/vp&amp;gt; to &amp;lt;vp&amp;gt;/nodebug&amp;lt;/vp&amp;gt; in the command line compiler options in the &lt;br /&gt;
{{ide|Project Settings#Build Options Tab|build script rules}} for &amp;lt;vp&amp;gt;pro-&amp;gt;obj:&amp;lt;/vp&amp;gt; and &amp;lt;vp&amp;gt;pack-&amp;gt;obj:&amp;lt;/vp&amp;gt;) then you will not be able to set a breakpoint in the Prolog sources of the module.&lt;br /&gt;
&lt;br /&gt;
Notice that it does not matter in which window you remove a breakpoint (in Prolog sources, in the &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window or in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window). In any case, removing a breakpoint deletes the breakpoint from the program.&lt;br /&gt;
&lt;br /&gt;
==== Pop-up Menu ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window has the pop-up context menu:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_BreakPoints_pop_up.png]]&lt;br /&gt;
&lt;br /&gt;
To activate this menu, select a breakpoint and press the right mouse button. This menu contains items:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Go to Source&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:If the breakpoint is set in the Prolog sources, then the &amp;#039;&amp;#039;&amp;#039;Go to Code&amp;#039;&amp;#039;&amp;#039; activates the Prolog source code editor, and moves the cursor to the Prolog code corresponding to the specified breakpoint. If the breakpoint is set in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window, then the &amp;#039;&amp;#039;&amp;#039;Go to Code&amp;#039;&amp;#039;&amp;#039; moves the view to this breakpoint in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window. The same action is performed by double-click the breakpoint or by pressing the &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; on the breakpoint.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Invokes the {{ide|Debugger#Breakpoint Properties|&amp;#039;&amp;#039;&amp;#039;Breakpoint Properties&amp;#039;&amp;#039;&amp;#039;}} dialog for the selected breakpoint.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Toggle (Turn to Hard/Soft)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Switches the &amp;#039;&amp;#039;Hard/Soft&amp;#039;&amp;#039; state of the selected breakpoints.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Deletes the selected breakpoints.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Turn to Hard All&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Sets the state of all breakpoints that are set in the program to &amp;#039;&amp;#039;Hard&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Turn to Soft All&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Sets the state of all breakpoints that are set in the program to &amp;#039;&amp;#039;Soft&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Remove All&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Removes all breakpoints that are set in the program.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window is auto-updated for any breakpoint updating.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Breakpoints&amp;#039;&amp;#039;&amp;#039; window can be activated either by &amp;#039;&amp;#039;&amp;#039;Ctrl+Alt+B&amp;#039;&amp;#039;&amp;#039; or from the IDE menu &amp;#039;&amp;#039;&amp;#039;View | Breakpoints&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Threads Window ===&lt;br /&gt;
----&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Threads&amp;#039;&amp;#039;&amp;#039; window shows information about the process being debugged and its threads.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Threads&amp;#039;&amp;#039;&amp;#039; window looks like following:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Threads.png]]&lt;br /&gt;
&lt;br /&gt;
Names displayed in the header of the window columns are the following:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;TID&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This column displays thread identifiers of all threads created by the process being debugged.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Current&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This column identifies the current thread by the &amp;lt;vp&amp;gt;*&amp;lt;/vp&amp;gt; sign. In the {{ide|Debugger#Variables Window|Variables}} window you can see only variables of predicates executed in the current thread.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;State&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Displays states of threads. States can be &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Running&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Stopped&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Suspend&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*:&amp;lt;br/&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Running&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  The thread has been started, it is not suspended (see &amp;lt;vp&amp;gt;thread::suspend/0-&amp;gt;&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt; syncObject::wait/0-&amp;gt;&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;syncObject::wait/1-&amp;gt;&amp;lt;/vp&amp;gt;) or terminated (see &amp;lt;vp&amp;gt;thread::terminate/1&amp;lt;/vp&amp;gt;).&lt;br /&gt;
*:&amp;lt;br/&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Suspend&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  The thread is in suspended state (see &amp;lt;vp&amp;gt;thread::createSuspended/3&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;thread::suspend/0-&amp;gt;&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;syncObject::wait/0-&amp;gt;&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;syncObject::wait/1-&amp;gt;&amp;lt;/vp&amp;gt;).&lt;br /&gt;
*:&amp;lt;br/&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Stopped&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; The thread was created and then stopped on a breakpoint, but it is not suspended (see &amp;lt;vp&amp;gt;thread::suspend/0-&amp;gt;&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;syncObject::wait/0-&amp;gt;&amp;lt;/vp&amp;gt;, &amp;lt;vp&amp;gt;syncObject::wait/1-&amp;gt;&amp;lt;/vp&amp;gt;). If you set suspended state to a &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Stopped&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; thread, then it turns into the &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Suspend&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; state.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Time&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Thread creation time.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;User time&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Processor time in the user-mode used by the thread.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Kernel Time&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Processor time in the kernel-mode used by the thread.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Priority&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The priority level of the thread. Here can be displayed the following numbers &amp;lt;vp&amp;gt;2, 1, 0, -1, -2&amp;lt;/vp&amp;gt;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Predicate&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This field contains the name of the currently executed thread&amp;#039;s predicate (if it is possible to determine it).&lt;br /&gt;
&lt;br /&gt;
{|{{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! Displayed Number&lt;br /&gt;
! Priority Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Highest&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The thread can be scheduled before threads with any other priority.&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;AboveNormal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The thread can be scheduled after threads with &amp;#039;&amp;#039;&amp;#039;Highest&amp;#039;&amp;#039;&amp;#039; priority and before those with &amp;#039;&amp;#039;&amp;#039;Normal&amp;#039;&amp;#039;&amp;#039; priority.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Normal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The thread can be scheduled after threads with &amp;#039;&amp;#039;&amp;#039;AboveNormal&amp;#039;&amp;#039;&amp;#039; priority and before those with &amp;#039;&amp;#039;&amp;#039;BelowNormal&amp;#039;&amp;#039;&amp;#039; priority. Threads have Normal priority by default.&lt;br /&gt;
|-&lt;br /&gt;
| -1&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;BelowNormal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The thread can be scheduled after threads with &amp;#039;&amp;#039;&amp;#039;Normal&amp;#039;&amp;#039;&amp;#039; priority and before those with &amp;#039;&amp;#039;&amp;#039;Lowest&amp;#039;&amp;#039;&amp;#039; priority.&lt;br /&gt;
|-&lt;br /&gt;
| -2&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Lowest&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| The thread can be scheduled after threads with any other priority.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pop-up Menu&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Threads&amp;#039;&amp;#039;&amp;#039; window has the pop-up context menu. The same commands can be activated from the &amp;#039;&amp;#039;&amp;#039;Thread&amp;#039;&amp;#039;&amp;#039; sub-menu of the IDE task menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Threads_popup.png]]&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Goto Source&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Opens the text editor and places the cursor onto the predicate, which created the selected thread.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Set Current&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Sets the selected thread as current.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Resume&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Resumes the run of the selected thread.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Suspend&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Suspends the selected thread.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Copies the contents of the line selected in the &amp;#039;&amp;#039;&amp;#039;Threads&amp;#039;&amp;#039;&amp;#039; window to the clipboard.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Copy All&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Copies the contents of the &amp;#039;&amp;#039;&amp;#039;Threads&amp;#039;&amp;#039;&amp;#039; window to the clipboard.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Threads&amp;#039;&amp;#039;&amp;#039; window is updated after changing any displayed parameter.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Threads&amp;#039;&amp;#039;&amp;#039; window can be activated either by &amp;#039;&amp;#039;&amp;#039;CTRL+Alt+H&amp;#039;&amp;#039;&amp;#039; or from the IDE menu &amp;#039;&amp;#039;&amp;#039;View | Threads&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Disassembly Window ===&lt;br /&gt;
----&lt;br /&gt;
==== Disassembly Window Contents ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window shows the assembly language interpretation of the inspected code.&lt;br /&gt;
&lt;br /&gt;
The disassembly starts from the specified top address toward the upper memory and prints each instruction on a new line.&lt;br /&gt;
&lt;br /&gt;
Each line is printed by the pattern:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vipbnf&amp;gt;&amp;lt;LineMarkers&amp;gt; &amp;lt;Address&amp;gt; [ &amp;lt;HexCode&amp;gt; ] &amp;lt;AssemblerCommand&amp;gt;&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;LineMarkers&amp;#039;&amp;#039;&lt;br /&gt;
:Are the {{ide|Debugger#Debug Menu Commands|&amp;#039;&amp;#039;instruction pointer&amp;#039;&amp;#039;}} [[Image:Ide_db_InstructionPointer.png]] and the breakpoint[[Image:Ide_db_BreakPoints_en.png]] (or [[Image:Ide_db_BreakPoints_dis.png]]) markers, which can mark this line.&lt;br /&gt;
&amp;#039;&amp;#039;Address&amp;#039;&amp;#039;&lt;br /&gt;
:The start address of the instruction code.&lt;br /&gt;
&amp;#039;&amp;#039;HexCode&amp;#039;&amp;#039;&lt;br /&gt;
:This is the hexadecimal instruction code. This field can be shown/hidden from the pop-up menu of the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window by checking the &amp;#039;&amp;#039;&amp;#039;Show OpCodes&amp;#039;&amp;#039;&amp;#039; item.&lt;br /&gt;
&amp;#039;&amp;#039;AssemblerCommand&amp;#039;&amp;#039;&lt;br /&gt;
:This is the assembler command corresponding to the instruction code. Assembler commands have the Intel standard assembler abbreviation. If a certain address is resolved to an external name, then this name will be printed in the command column.&lt;br /&gt;
:&amp;lt;br/&amp;gt;The instruction, which will be executed at the next trace step, is marked with the [[Image:Ide_db_InstructionPointer.png]] &amp;#039;&amp;#039;Instruction pointer&amp;#039;&amp;#039; in the &amp;#039;&amp;#039;LineMarkers&amp;#039;&amp;#039; field.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_DisAsm_View.png]]&lt;br /&gt;
&lt;br /&gt;
==== Pop-up Menu ====&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window has the pop-up context menu with the followin commands:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Go To Address&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Invokes the &amp;#039;&amp;#039;&amp;#039;Go to Address&amp;#039;&amp;#039;&amp;#039; dialog&lt;br /&gt;
*:[[Image:Ide_db_DisAsm_Go2Address.png]]&lt;br /&gt;
*:to type in the address of the instruction, which should be displayed in the top line of the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window. The &amp;#039;&amp;#039;Address&amp;#039;&amp;#039; should be specified in the hexadecimal format. This dialog allows typing symbolic external link names and symbolic CPU register names.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Go To EIP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Updates the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window and places the cursor at the address of the instruction on which the program execution is suspended.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Breakpoint…&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Allows handling the breakpoint [[Image:Ide_db_BreakPoints_en.png]] (or [[Image:Ide_db_BreakPoints_dis.png]]) for the assembler instruction pointed by the cursor. It has the following sub-commands:&lt;br /&gt;
*:[[Image:Ide_db_DisAsm_PopUp.png]]&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Toggle Breakpoint&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Sets or removes a breakpoint at the instruction with the address pointed by the cursor.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Enable / Disable&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:&amp;#039;&amp;#039;Enables / Disables&amp;#039;&amp;#039; the breakpoint pointed by the cursor. This item is disabled if there is no breakpoint at the address pointed by the cursor.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Invokes the &amp;#039;&amp;#039;&amp;#039;Breakpoint Properties&amp;#039;&amp;#039;&amp;#039; dialog for the breakpoint pointed by the cursor. This item is disabled if there is no breakpoint at the address pointed by the cursor.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Go To Source&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Activates the IDE source code editor and sets the cursor at the predicate whose assembler instruction is pointed by the cursor in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window. (When it is possible.)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Copies lines selected in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window to the clipboard. A selection can be performed with the &amp;#039;&amp;#039;&amp;#039;Shift+Up Arrow&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Shift+Down Arrow&amp;#039;&amp;#039;&amp;#039; key combinations.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Show OpCodes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Checking and unchecking this item hides/shows hex images of operation (instruction) codes (&amp;#039;&amp;#039;&amp;#039;OpCodes&amp;#039;&amp;#039;&amp;#039;). These hex instruction codes are shown in the &amp;#039;&amp;#039;HexCode&amp;#039;&amp;#039; field.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Source Annotation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Checking OFF/ON this item hides/shows object names, corresponding to predicate entry points. Each object name is printed on a new line before the corresponding instruction line.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Show Hints&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows additional information about the instruction being executed.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window is updated after each trace step of the debugger.&lt;br /&gt;
&lt;br /&gt;
==== Disassembly Window Commands ====&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Trace Into&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F11&amp;#039;&amp;#039;&amp;#039;) command&lt;br /&gt;
*:Tracing in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window with the &amp;#039;&amp;#039;&amp;#039;Step Into&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F7&amp;#039;&amp;#039;&amp;#039;) command performs execution of one assembler instruction (including entering into procedures if any). That is, if the &amp;#039;&amp;#039;&amp;#039;Step Over&amp;#039;&amp;#039;&amp;#039; command will execute a &amp;lt;vp&amp;gt;call&amp;lt;/vp&amp;gt; instruction as one trace step, then the &amp;#039;&amp;#039;&amp;#039;Step Into&amp;#039;&amp;#039;&amp;#039; command will go into the called procedure. It usually executes disassembler instructions line after line.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Step Over&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F10&amp;#039;&amp;#039;&amp;#039;) command&lt;br /&gt;
*:Tracing in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window with the &amp;#039;&amp;#039;&amp;#039;Step Over&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F10)&amp;#039;&amp;#039;&amp;#039; command performs execution of one assembler instruction (including execution of &amp;lt;vp&amp;gt;call&amp;lt;/vp&amp;gt; instructions). So the &amp;#039;&amp;#039;&amp;#039;Step Over&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F10&amp;#039;&amp;#039;&amp;#039;) command works almost the same way as the &amp;#039;&amp;#039;&amp;#039;Trace Into&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F11&amp;#039;&amp;#039;&amp;#039;) command except for execution of &amp;lt;vp&amp;gt;call&amp;lt;/vp&amp;gt; instructions. In difference to the &amp;#039;&amp;#039;&amp;#039;Trace Into&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F11&amp;#039;&amp;#039;&amp;#039;) command, it tries to perform &amp;lt;vp &amp;gt;call&amp;lt;/vp&amp;gt; instructions as one step and reaches the next line only if the called code returns to that line.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Run to Cursor&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;CTRL+F10&amp;#039;&amp;#039;&amp;#039;) command&lt;br /&gt;
*:Tracing in the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window with the &amp;#039;&amp;#039;&amp;#039;Run to Cursor&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;CTRL+F10&amp;#039;&amp;#039;&amp;#039;) command works in the following way. The debugger places an invisible breakpoint at the address corresponding to the instruction specified by the cursor and performs the &amp;#039;&amp;#039;&amp;#039;Debug Run&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;F5&amp;#039;&amp;#039;&amp;#039;) command. It depends only upon the program code whether the program will reach this instruction or will never reach it.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window can be activated:&lt;br /&gt;
&lt;br /&gt;
* by &amp;#039;&amp;#039;&amp;#039;Shift+Alt+1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* by &amp;#039;&amp;#039;&amp;#039;Ctrl+D&amp;#039;&amp;#039;&amp;#039; from the traceable source code. The topmost line of the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window displays the address of the disassembler instruction corresponding to the predicate pointed by the cursor in the source code.&lt;br /&gt;
* from the IDE menu &amp;#039;&amp;#039;&amp;#039;View | Disassembly&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If the tracing code has no debug information, then the &amp;#039;&amp;#039;&amp;#039;Disassembly&amp;#039;&amp;#039;&amp;#039; window is opened initially (when the debugger starts) and the instruction pointer [[Image:Ide_db_InstructionPointer.png]] points to the executing assembler instruction.&lt;br /&gt;
&lt;br /&gt;
=== Registers Window ===&lt;br /&gt;
----&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Registers&amp;#039;&amp;#039;&amp;#039; window shows current values of the CPU (Central Processor Unit) registers:&lt;br /&gt;
&lt;br /&gt;
* General registers&lt;br /&gt;
* Segment registers&lt;br /&gt;
* Flags&lt;br /&gt;
* Floating-point registers&lt;br /&gt;
&lt;br /&gt;
A register value is printed:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:Red&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;red&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, if it is changed from the last program trace step&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:Blue&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;blue&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;, otherwise.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Registers_fpu.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Floating Point&amp;#039;&amp;#039;&amp;#039; command from context pop-up menu can be used to turn ON/OFF the displaying of Floating-point registers.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Registers&amp;#039;&amp;#039;&amp;#039; window can be activated either by &amp;#039;&amp;#039;&amp;#039;Ctr+ Alt+G&amp;#039;&amp;#039;&amp;#039; or from the IDE menu &amp;#039;&amp;#039;&amp;#039;View | Registers&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Modules Window ===&lt;br /&gt;
----&lt;br /&gt;
The Modules Window shows all the modules currently loaded in this debug session. It shows the filename, path, the base address range, the code address range and the type of debug information.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Modules.png]]&lt;br /&gt;
&lt;br /&gt;
=== Memory Dump Window ===&lt;br /&gt;
----&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window shows the virtual memory dump of the program being debugged. Memory dump lines have the length, which is determined by the window width. The number of printed lines window height.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Information Displayed in the Memory Dump Window&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Each line in the &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window is printed by the pattern:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vipbnf&amp;gt;&amp;lt;Address&amp;gt; | [ &amp;lt;HexValues&amp;gt; ] [ &amp;lt;ASCIIcharacters&amp;gt; ] [ &amp;lt;UnicodeCharacters&amp;gt;]&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Address&amp;#039;&amp;#039;&lt;br /&gt;
:This is the hexadecimal address of the first byte of the memory displayed in this line.&lt;br /&gt;
&amp;#039;&amp;#039;HexValues&amp;#039;&amp;#039;&lt;br /&gt;
:&amp;lt;vipbnf&amp;gt;&amp;lt;HexValues&amp;gt; : &amp;lt;HexValue&amp;gt; [ &amp;lt;HexValues&amp;gt; ]&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
:This is the hexadecimal format of the memory dump. Each hex value can be an image of one, two, four or eight continued memory bytes (this is contolled by the &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window content pop-up menu).&lt;br /&gt;
&amp;#039;&amp;#039;ASCIIcharacters&amp;#039;&amp;#039;&lt;br /&gt;
:&amp;lt;vipbnf&amp;gt;&amp;lt;ASCIIcharacters&amp;gt; : &amp;lt;ASCIIcharacter&amp;gt; [ &amp;lt;ASCIIcharacters&amp;gt; ]&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
:This is the same memory dump but in the format of ASCII characters (a character represenrs one byte). Unprintable characters are printed as dots.&lt;br /&gt;
&amp;#039;&amp;#039;UnicodeCharacters&amp;#039;&amp;#039;&lt;br /&gt;
:&amp;lt;vipbnf&amp;gt;&amp;lt;UnicodeCharacters&amp;gt; : &amp;lt;UnicodeCharacter&amp;gt; [ &amp;lt;UnicodeCharacters&amp;gt; ]&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
:This is the same memory dump in the format of Unicode characters (a character represents two bytes). Unprintable characters are printed as dots.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_db_Memory_view1.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window title shows the module name, which memory is displayed in the window. If the module name cannot be determined, then the title displays &amp;#039;&amp;#039;Unknown module&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Content Pop-up Menu&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window has the pop-up context menu which contains commands:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Go To Address&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Ctrl+G&amp;#039;&amp;#039;&amp;#039;. Invokes the &amp;#039;&amp;#039;&amp;#039;Go to Address&amp;#039;&amp;#039;&amp;#039; dialog&lt;br /&gt;
*:[[Image:Ide_db_DisAsm_Go2Address.png]]&lt;br /&gt;
*: to type a new top address in hex format. This dialog allows typing symbolic external link names and symbolic CPU register names. Double-click in the &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window area also activates the &amp;#039;&amp;#039;&amp;#039;Go to Address&amp;#039;&amp;#039;&amp;#039; dialog.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Go To &amp;#039;&amp;#039;Ptr&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Ctrl+Shift+G&amp;#039;&amp;#039;&amp;#039;. Updates the &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window starting the first line from the address shown as &amp;#039;&amp;#039;Ptr&amp;#039;&amp;#039; (address defined by the memory contents of four or eight continued bytes at which the cursor is pointing if one of &amp;#039;&amp;#039;&amp;#039;4-byte Integer&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;8-byte Integer&amp;#039;&amp;#039;&amp;#039; is selected).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Undo Go to&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Alt+Left Arrow&amp;#039;&amp;#039;&amp;#039;. Updates the &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window view to start from the previously used top (the first line) address.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Redo Go to&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Alt+Right Arrow&amp;#039;&amp;#039;&amp;#039;. This operation is the counterpart to the &amp;#039;&amp;#039;&amp;#039;Undo Go to&amp;#039;&amp;#039;&amp;#039;. It updates the &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window view to start from the &amp;quot;next&amp;quot; top address, which was used before the &amp;#039;&amp;#039;&amp;#039;Undo Go to&amp;#039;&amp;#039;&amp;#039; command was implemented.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Set Memory Breakpoint&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This operation sets a memory breakpoint at address from the left pane.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Remove Memory Breakpoint&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This operation removes a previously set a memory breakpoint.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Copy&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Copies the selected lines to the clipboard. To select a line, click on it while holding the &amp;#039;&amp;#039;&amp;#039;shift&amp;#039;&amp;#039;&amp;#039; key. You can select multiple lines at one time.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Copy &amp;#039;&amp;#039;Ptr&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Ctrl+C&amp;#039;&amp;#039;&amp;#039;. Copies hexadecimal representation of the specified address (four or eight bytes) to the clipboard.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Refresh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Refresh the &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window contents.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Write Block&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:This command opens the &amp;#039;&amp;#039;&amp;#039;Write Memory Block&amp;#039;&amp;#039;&amp;#039; dialog:&lt;br /&gt;
*:[[Image:Ide_db_Memory_BlockWrite.png]]&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Filename&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Here you should type in the name of a file in which the specified memory block should be saved.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Start Address&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Here you should specify a hexadecimal start address of the memory block.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Length&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Here you should specify a hexadecimal length in bytes of the memory block.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Show Hex&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows the column, which displays the memory dump in the hexadecimal format. This is the &amp;#039;&amp;#039;HexValues&amp;#039;&amp;#039; column in the right pane.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Show ASCII&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows the column, which displays the &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ASCII&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; format of the memory dump. This is the &amp;#039;&amp;#039;ASCIIcharacters&amp;#039;&amp;#039; column in the right pane.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Show Unicode&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Shows the column, which displays the &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Unicode&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; format of the memory dump. This is the &amp;#039;&amp;#039;UnicodeCharacters&amp;#039;&amp;#039; column in the right pane.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Update Speed...&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:Defines the rate of the Memory Dump window updating:&lt;br /&gt;
*:[[Image:iDE_db_Memory_menu1.png]]&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;High&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Performs automatic updating with the high rate.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Normal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Performs automatic updating with normal rate.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Low&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:Performs automatic updating with low rate.&lt;br /&gt;
*:*&amp;#039;&amp;#039;&amp;#039;Manual&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:*:No automatic updating.&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Memory Dump&amp;#039;&amp;#039;&amp;#039; window can be activated either by &amp;#039;&amp;#039;&amp;#039;CTRL+Alt+M&amp;#039;&amp;#039;&amp;#039; or from the IDE menu &amp;#039;&amp;#039;&amp;#039;View | Memory Dump&amp;#039;&amp;#039;&amp;#039;.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Creating_new_Project_Items/Creating_a_COM_Package&amp;diff=3545</id>
		<title>Ide/Creating new Project Items/Creating a COM Package</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Creating_new_Project_Items/Creating_a_COM_Package&amp;diff=3545"/>
		<updated>2013-04-18T07:23:28Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How to Import an Existing COM Component&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
=== Terminology Used in COM ===&lt;br /&gt;
&lt;br /&gt;
The Component Object Model (COM) is a way for software components to communicate with each other. It is a binary standard that allows any two components to communicate regardless of what machine they are running on (as long as the machines are connected), what operating systems the machines are running (as long as they support COM), and what language the components are written in. COM provides location transparency: it does not matter whether components are in DLLs or in EXEs. COM components are binary units of code that include packaging and registration code and that create COM objects. Each COM component, in the COM programming model, is a programming structure encapsulating both data and functionality. It is defined and allocated as a single unit and the only public access to the COM data and functionality is through the programming interfaces.&lt;br /&gt;
&lt;br /&gt;
Each COM is simply a program module: a DLL or an EXE file. It can contain one or more COM &amp;#039;&amp;#039;components&amp;#039;&amp;#039;. (In Microsoft MSDN terminology &amp;#039;&amp;#039;components&amp;#039;&amp;#039; are &amp;#039;&amp;#039;coclasses&amp;#039;&amp;#039;.) Each component knows about several interfaces. (In MSDN terminology - each component can support several interfaces.) Each component supports the default interface &amp;#039;&amp;#039;&amp;#039;iUnknown&amp;#039;&amp;#039;&amp;#039;. Using the &amp;#039;&amp;#039;&amp;#039;iUnknown::queryInterface/2-&amp;gt;&amp;#039;&amp;#039;&amp;#039; predicate from the &amp;#039;&amp;#039;&amp;#039;iUnknown&amp;#039;&amp;#039;&amp;#039; interface, one can retrieve references to all interfaces known to a component. Each interface can provide several predicates (methods).&lt;br /&gt;
&lt;br /&gt;
The main aim of importing a COM component into your project is using predicates defined in this COM component. Therefore, the COM package generated for an imported COM component has to provide some wrapper (glue code) to methods implemented in the COM component. That is, the generated COM package must provide declarations of correspondent interfaces, predicates, and domains.&lt;br /&gt;
&lt;br /&gt;
=== How to Create a New COM Package ===&lt;br /&gt;
&lt;br /&gt;
To create a COM package providing the interface (wrapper) to some COM component, you should activate the &amp;#039;&amp;#039;&amp;#039;File | New&amp;#039;&amp;#039;&amp;#039; IDE command. Then in the left pane of the opened &amp;#039;&amp;#039;&amp;#039;Create Project Item&amp;#039;&amp;#039;&amp;#039; dialog you should select &amp;#039;&amp;#039;&amp;#039;COM Package&amp;#039;&amp;#039;&amp;#039;. Then the dialog accepts the following shape:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_How_COMPackage.png|center|frame|Creating &amp;#039;&amp;#039;&amp;#039;New COM Package&amp;#039;&amp;#039;&amp;#039; Dialog]]&lt;br /&gt;
&lt;br /&gt;
After you fill in all required COM package settings, you can press the &amp;#039;&amp;#039;&amp;#039;Create&amp;#039;&amp;#039;&amp;#039; button. Then the IDE creates the package subdirectory, the package header file (&amp;lt;vp&amp;gt;XML.ph&amp;lt;/vp&amp;gt; for the above picture), and the package implementation file (&amp;lt;vp&amp;gt;XML.pack&amp;lt;/vp&amp;gt; for the above picture). They appear in the project tree in the Project Window after the created package is compiled.&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Name:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; edit control you should type in the name (&amp;lt;vp&amp;gt;XML&amp;lt;/vp&amp;gt; on the picture) of the COM package (wrapping package) being created.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Parent Directory&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Parent Directory&amp;#039;&amp;#039;&amp;#039; you should type in or select (using the &amp;#039;&amp;#039;&amp;#039;Browse&amp;#039;&amp;#039;&amp;#039; button) the &amp;#039;&amp;#039;parent directory&amp;#039;&amp;#039; for the package. The package will be placed into the subdirectory of this &amp;#039;&amp;#039;parent directory&amp;#039;&amp;#039;. If you specify a non-existing name, then this directory will be created. By default, &amp;#039;&amp;#039;&amp;#039;Parent Directory&amp;#039;&amp;#039;&amp;#039; displays the directory selected in the project tree when you activate this dialog. If this directory is one of the project subdirectories, then its path is displayed relatively to the project root directory. If &amp;#039;&amp;#039;&amp;#039;Parent Directory&amp;#039;&amp;#039;&amp;#039; is empty, than it is equal to the project root directory.&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Parent Directory&amp;#039;&amp;#039;&amp;#039; the IDE creates the new subdirectory with the name correspondent to the specified package name. (It is &amp;lt;vp&amp;gt;XML&amp;lt;/vp&amp;gt; for the above picture.). The package will be placed into this subdirectory.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Source&amp;#039;&amp;#039;&amp;#039; Group Box&lt;br /&gt;
&lt;br /&gt;
Controls in this group box are used to specify a COM module (&amp;#039;&amp;#039;&amp;#039;DLL&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;EXE&amp;#039;&amp;#039;&amp;#039;) from which a component should be imported. It contains the following controls:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Type Library&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:When this option is checked ON, then in the edit control you should specify a file that contains the &amp;#039;&amp;#039;type library&amp;#039;&amp;#039; describing the COM component.&lt;br /&gt;
*:Press the &amp;#039;&amp;#039;&amp;#039;Load&amp;#039;&amp;#039;&amp;#039; button to activate the &amp;#039;&amp;#039;&amp;#039;Load Type Library File&amp;#039;&amp;#039;&amp;#039; dialog using which you can find and insert the name of the type library file into the edit control.&lt;br /&gt;
*:&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;Attention!&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt; Notice that you &amp;#039;&amp;#039;&amp;#039;HAVE to&amp;#039;&amp;#039;&amp;#039; press the &amp;#039;&amp;#039;&amp;#039;Load&amp;#039;&amp;#039;&amp;#039; button to enforce the IDE to load the COM information from the specified type library even if you directly type in the type library filename into the edit control.&lt;br /&gt;
*:&amp;lt;br /&amp;gt;If a COM client (our program importing COM server components) needs using COM server predicates, then the client application must have information about predicates in COM server components. Predicates often return values and accept parameters. The COM client requires declarations of all these predicates (and domains) in order to use them. This information can be made known in several ways. The Microsoft recommended way is to create a type library. (Remember that type libraries do not provide Prolog declarations.) Type library information can be stored in files with the following filename extensions: &amp;#039;&amp;#039;&amp;#039;.tlb&amp;#039;&amp;#039;&amp;#039; (type library itself), &amp;#039;&amp;#039;&amp;#039;.olb&amp;#039;&amp;#039;&amp;#039; (multiple type libraries or foreign object libraries), &amp;#039;&amp;#039;&amp;#039;.dll&amp;#039;&amp;#039;&amp;#039; (COM DLLs can embed type library resources), &amp;#039;&amp;#039;&amp;#039;.exe&amp;#039;&amp;#039;&amp;#039; (COM EXEs can embed type library resources), &amp;#039;&amp;#039;&amp;#039;.ocx&amp;#039;&amp;#039;&amp;#039; (ActiveX controls).&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;TypeLib ID&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:When this option is checked ON, then in the edit control you should specify the &amp;#039;&amp;#039;&amp;#039;TypeLib ID&amp;#039;&amp;#039;&amp;#039; of the &amp;#039;&amp;#039;type library&amp;#039;&amp;#039; for the COM component that you wish to import. The &amp;#039;&amp;#039;&amp;#039;TypeLib ID&amp;#039;&amp;#039;&amp;#039; is a universally unique identifier (UUID) under which the type library is registered in the Windows system registry. (See &amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039; for more information.) The &amp;#039;&amp;#039;&amp;#039;TypeLib ID&amp;#039;&amp;#039;&amp;#039; should be specified as a string of hexadecimal numbers with the following format:&lt;br /&gt;
*: &amp;lt;vipbnf&amp;gt;{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
*:Then you &amp;#039;&amp;#039;&amp;#039;MUST&amp;#039;&amp;#039;&amp;#039; press the &amp;#039;&amp;#039;&amp;#039;Load&amp;#039;&amp;#039;&amp;#039; button to enforce the IDE to load COM information from the type library registered with this &amp;#039;&amp;#039;&amp;#039;TypeLib ID&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*:In the system registry database you can find all registered &amp;#039;&amp;#039;&amp;#039;TypeLib ID&amp;#039;&amp;#039;&amp;#039;s under:&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;&amp;lt;vipbnf&amp;gt;HKEY_CLASSES_ROOT\TypeLib = {TypeLib ID}&amp;lt;/vipbnf&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:When this option is checked ON, then in the edit control you should specify the &amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039; of the COM component that you wish to import. The &amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039; should be specified as a string of hexadecimal numbers with the following format:&lt;br /&gt;
*:&amp;lt;vipbnf&amp;gt;{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
*:Then you &amp;#039;&amp;#039;&amp;#039;MUST&amp;#039;&amp;#039;&amp;#039; press the &amp;#039;&amp;#039;&amp;#039;Load&amp;#039;&amp;#039;&amp;#039; button to enforce the IDE to load COM information from the COM module that embeds the COM component with the specified &amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*:&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;&amp;#039;Note.&amp;#039;&amp;#039;&amp;#039; Really a COM module can embed several COM components. If you wish to import one of these COM components, then you can specify a CLSID registered to any COM component in this COM module. (Later you will be able to specify the required COM component (or interface) in the list box in the  &amp;#039;&amp;#039;&amp;#039;Import&amp;#039;&amp;#039;&amp;#039; group box.)&lt;br /&gt;
*:&amp;lt;br /&amp;gt;In MSDN terminology, &amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039; is a class identifier. In the Visual Prolog PFC terminology (see the COM package description in the PFC) &amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039; is a COM component identifier.&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039; is a universally unique identifier (UUID) that identifies the type of a COM component. Each COM component has its &amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039; in the Windows system registry database so that it can be loaded and used by other applications. For example, a spreadsheet can create worksheet components, chart components, and macrosheet components. Each of these components has its own &amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039; that uniquely identifies this component to the system. That is, if your COM module (COM server or COM container) allows linking to its embedded components, then you need to register the special &amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039; for each COM component embedded into the COM module.&lt;br /&gt;
*:The &amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039; is stored in the Windows registry database under the following registry key:&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;&amp;lt;vipbnf&amp;gt;HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID = {CLSID}&amp;lt;/vipbnf&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:The &amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039; is a 128-bit number (in the hexadecimal format) within a pair of curly braces. Typically, &amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039;s (and other UUID values) are represented as strings of hexadecimal numbers with the following format:&lt;br /&gt;
*:&amp;lt;vipbnf&amp;gt;{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
*:For example,&lt;br /&gt;
*:&amp;lt;vipbnf&amp;gt;{4208fb66-e22a-11d1-a7d7-00a0c982c00d}&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
*:You can use the &amp;#039;&amp;#039;&amp;#039;UUIDGEN.exe&amp;#039;&amp;#039;&amp;#039; tool to create a new UUID.&lt;br /&gt;
*:When you find a &amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039; you can find the associated &amp;#039;&amp;#039;&amp;#039;PROGID&amp;#039;&amp;#039;&amp;#039; under the following registry sub-key:&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;&amp;lt;vipbnf&amp;gt;HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{CLSID}\ProgID = &amp;lt;programatic identifier&amp;gt;&amp;lt;/vipbnf&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:See the &amp;#039;&amp;#039;&amp;#039;PROGID&amp;#039;&amp;#039;&amp;#039; options description below.&lt;br /&gt;
*:&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;&amp;#039;Universally unique identifier (UUID)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:&amp;lt;br /&amp;gt;The universally unique identifier (UUID) is also known as the globally unique identifier (GUID). The UUID, or GUID, is a unique, 128-bit value used to identify objects. Objects can be OLE servers, interfaces, client objects, etc. Beginning from this moment objects will be identified with UUIDs.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;PROGID&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:When this option is checked ON. In the edit control you should specify the &amp;#039;&amp;#039;&amp;#039;PROGID&amp;#039;&amp;#039;&amp;#039; of the COM module from which you wish to import the COM component. The &amp;#039;&amp;#039;&amp;#039;PROGID&amp;#039;&amp;#039;&amp;#039; should be specified as a string of the following format:&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;&amp;lt;Program&amp;gt;.&amp;lt;Component&amp;gt;.&amp;lt;Version&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:&amp;lt;br /&amp;gt;Words are separated by dots as in &amp;lt;vp&amp;gt;Word.Document.6&amp;lt;/vp&amp;gt;. (Blank spaces cannot be used.)&lt;br /&gt;
*:Then you &amp;#039;&amp;#039;&amp;#039;MUST&amp;#039;&amp;#039;&amp;#039; press the &amp;#039;&amp;#039;&amp;#039;Load&amp;#039;&amp;#039;&amp;#039; button to enforce the IDE to load COM information from the COM module registered with this &amp;#039;&amp;#039;&amp;#039;PROGID&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;PROGID&amp;#039;&amp;#039;&amp;#039;s are versioned programmatic identifiers. &amp;#039;&amp;#039;&amp;#039;PROGID&amp;#039;&amp;#039;&amp;#039;s present human-readable versions of class identifiers (&amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039;) used to identify COM components. &amp;#039;&amp;#039;&amp;#039;PROGID&amp;#039;&amp;#039;&amp;#039; is a registry entry that can be associated with &amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039;. Like &amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;PROGID&amp;#039;&amp;#039;&amp;#039; identifies a COM component but with less precision because it is not guaranteed to be globally unique. The &amp;#039;&amp;#039;&amp;lt;vp&amp;gt;Version&amp;lt;/vp&amp;gt;&amp;#039;&amp;#039; portion is optional but strongly recommended. Using &amp;#039;&amp;#039;&amp;lt;vp&amp;gt;Version&amp;lt;/vp&amp;gt;&amp;#039;&amp;#039;, even if there is only one version of the &amp;#039;&amp;#039;&amp;#039;PROGID&amp;#039;&amp;#039;&amp;#039;, helps to avoid conflicts. It enables different versions of a component coexist without overwriting &amp;#039;&amp;#039;&amp;#039;PROGID&amp;#039;&amp;#039;&amp;#039;s. If you do not specify a version for a &amp;#039;&amp;#039;&amp;#039;PROGID&amp;#039;&amp;#039;&amp;#039;, the default &amp;#039;&amp;#039;&amp;lt;vp&amp;gt;Version&amp;lt;/vp&amp;gt;&amp;#039;&amp;#039; &amp;lt;vp&amp;gt;= 1&amp;lt;/vp&amp;gt;.&lt;br /&gt;
*:How to find &amp;#039;&amp;#039;&amp;#039;PROGID&amp;#039;&amp;#039;&amp;#039; entries in the registry is described in the &amp;#039;&amp;#039;&amp;#039;CLSID&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;IID&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*:When this option is checked ON, then in the edit control you should specify the &amp;#039;&amp;#039;&amp;#039;IID&amp;#039;&amp;#039;&amp;#039; of the COM component interface that you wish to import.&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;IID&amp;#039;&amp;#039;&amp;#039; is a universally unique identifier (UUID) that uniquely identifies a particular COM interface. &amp;#039;&amp;#039;&amp;#039;IID&amp;#039;&amp;#039;&amp;#039; should be specified as a string of hexadecimal numbers with the following format:&lt;br /&gt;
*:&amp;lt;vipbnf&amp;gt;{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
*:Then you &amp;#039;&amp;#039;&amp;#039;MUST&amp;#039;&amp;#039;&amp;#039; press the &amp;#039;&amp;#039;&amp;#039;Load&amp;#039;&amp;#039;&amp;#039; button to enforce the IDE to load COM information from the COM module that embeds the interface with the specified &amp;#039;&amp;#039;&amp;#039;IID&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*:Really you can specify an &amp;#039;&amp;#039;&amp;#039;IID&amp;#039;&amp;#039;&amp;#039; registered to any interface embedded into the same COM module that embeds the interface you wish to import. (Later you will be able to specify the required COM component (or interface) in the list box in the &amp;#039;&amp;#039;&amp;#039;Import&amp;#039;&amp;#039;&amp;#039; group box.)&lt;br /&gt;
*:In the system registry database you can find all registered &amp;#039;&amp;#039;&amp;#039;IID&amp;#039;&amp;#039;&amp;#039;s under:&lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;&amp;lt;vipbnf&amp;gt;HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface&amp;lt;/vipbnf&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/Creating_new_Project_Items/Creating_a_Class&amp;diff=3540</id>
		<title>Ide/Creating new Project Items/Creating a Class</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/Creating_new_Project_Items/Creating_a_Class&amp;diff=3540"/>
		<updated>2013-04-17T10:44:13Z</updated>

		<summary type="html">&lt;p&gt;GalinaTchekmareva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Ide]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How to Create a New Class?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The declaration of a class defines how the class appears to the surroundings. The surroundings can see and use only those constants, domains, and predicates that are declared in the class declaration. If the class states an interface as the construction type, then the class can construct objects of that type. Everything mentioned in the class declaration belongs to the class, rather than to objects it constructs. Any class declaration must have the accompanying class implementation. The definitions of the predicates declared in the class declaration should be provided by the class implementation.&lt;br /&gt;
&lt;br /&gt;
To create a new class and to add it into one of packages registered in the project you should activates the &amp;#039;&amp;#039;&amp;#039;File | New&amp;#039;&amp;#039;&amp;#039; IDE command. Then in the left pane of the opened &amp;#039;&amp;#039;&amp;#039;Create Project Item&amp;#039;&amp;#039;&amp;#039; dialog you should select &amp;#039;&amp;#039;&amp;#039;Class&amp;#039;&amp;#039;&amp;#039;. Then the dialog accepts the following shape:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ide_How_NewClass.png|center|frame|The &amp;#039;&amp;#039;&amp;#039;New Class&amp;#039;&amp;#039;&amp;#039; Dialog]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Name:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; edit control you should type in a class name (the &amp;#039;&amp;#039;&amp;#039;newClassName&amp;#039;&amp;#039;&amp;#039; on the picture).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Package:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:In the &amp;#039;&amp;#039;&amp;#039;Package&amp;#039;&amp;#039;&amp;#039; list button you should select one of the packages registered in the project (the &amp;lt;vp&amp;gt;NewPackage.pack&amp;lt;/vp&amp;gt; on the picture). The created class will be included into this package. The created files of this class will be placed into the selected package subdirectory. This subdirectory name is displayed after the package name; it is &amp;lt;vp&amp;gt;(NewPackage\)&amp;lt;/vp&amp;gt; in the picture.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;In namespace&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:The &amp;#039;&amp;#039;&amp;#039;In namespace&amp;#039;&amp;#039;&amp;#039; check box controls whether the class will be put into the namespace (e.g. namespace1\newClassName). This allows the same interface/class name to be declared/defined in several name spaces in the same program.&lt;br /&gt;
&lt;br /&gt;
After you fill in all required settings for the class, you can press the &amp;#039;&amp;#039;&amp;#039;Create&amp;#039;&amp;#039;&amp;#039; button. Then the IDE creates the class declaration and the class implementation (if &amp;#039;&amp;#039;&amp;#039;New Interface&amp;#039;&amp;#039;&amp;#039; was checked ON) files. These files will appear in the {{ide|Project Tree#The Project Tree|project tree}}  in the &amp;#039;&amp;#039;&amp;#039;Project Window&amp;#039;&amp;#039;&amp;#039; after compilation of the package) and the &amp;lt;vp&amp;gt;#include @&amp;quot;NewPackage\newClassName.cl&amp;quot;&amp;lt;/vp&amp;gt; directive will be added into the correspondent package header or the package implementation file.&lt;br /&gt;
&lt;br /&gt;
Notice that information about a new class does not appear in the project {{ide|Code Experts#Source Browser|browse information}} until the class is compiled. To compile a new class, you can, for example, execute the &amp;#039;&amp;#039;&amp;#039;Compile&amp;#039;&amp;#039;&amp;#039; command for the package containing this class.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
</feed>