Other contributors are Travis W. Beaty, David Cuny, Euman, Wolf Fritz, Matt Lewis, Derek Parnell, Don Phillips, Tone Skoda, Martin Stachon, Mario Steele, Roland Stowasser and Virtual B. Special thanks to Robert Sy for IDE.html improvements,
... Short Discussion About IDE For New Users...
First of all, some basic understandings about Euphoria and IDEEuphoria allows the inclusion of files into another file with the statement 'include filename'. Euphoria calls these files include files but IDE calls them modules. What the included files do for the user is allow frequently used code be stored and used in various programs. Euphoria, itself, has many include files which are in the folder Euphoria\Include. User files may be placed in this same folder for frequently used modules or another of his choice (see Euphoria documentation.) Using Euphoria\Include eliminates the need to duplicate code into many folders. Recent releases of Euphoria also allow adding EuInc in autoexec.bat to indicate other folders to use as include folders. See Euphoria documentation for information. In this discussion, Include Folders will refer to both Euphoria/Include and any folders specified with EuInc.
User may create new modules with any editor of choice. IDE supplies a simple, internal editor which may also be used while in IDE.
Win32lib.ew is an include file which is used by many people to write Window applications. This file and its related TK_? include files are often placed in the Euphoria\include folder. An include Win32lib.ew statement is inserted near the top of an .EXW Window program and routines from it are used to create windows and controls and to manipulate data between the user and these controls. The user may include other files which contain special routines by coding additional Include statements.
IDE is simply a tool to help the user interface with Win32lib.ew. IDE is a work in progress.
IDE considers a project as the collection of Windows, controls, icon files, bitmap files, etc necessary to produce the interactive Window EXW program. Some of these files may be in Euphoria\Include folder. IDE will look for files in the project folder, IDE's folder, in folders specified with EuINC or the Euphoria\Include folder. The project is determined when user selects Menu File/SaveAs or Save his program from within IDE. When user Menu File/Open he opens the main program of his project which happens to be stored as a PRJ file type. The EXW program is never directly opened in IDE. Martin Stachon has begun an EXW to PRJ converter so that IDE may open programs not created by IDE. Look for it on Euphoria's Recent Contributions Page.
Users may also have modules which contain windows and controls of its own which he wants to include in his Window project but not as an additional Window of the program. This might be a Window with routines commonly used throughout many projects and user has created it only once. IDE calls these types of modules by the term Include File or sometimes Include Module. These files may be created with any editor of choice and added to the project. Or IDE and the IDE internal editor may be used to create them. IDE itself has many Include Modules. This was done to keep each portion of IDE small and modular.
Some people place IDE's folder within the Euphoria folder's path and others outside of Euphoria completely. Either method is permitted as long as every file in the IDE distribution zip is kept together. Win32lib.ew must be downloaded from the Win32lib site also found on Euphoria's Recent Contributions Page.
When first started, IDE loads a basic configuration file which has options the user may specify to tailor his version of IDE via Menu Configuration.
Use of IDEA new IDE user might wish to browse the configurable options of IDE and change right away, or wait until he has explored IDE a bit. These options are found under Menu Configuration on IDE's main window. An explanation of all the configuration options may be found elsewhere in this document.
IDE uses single click, double click and right click extensively in Form Design, Properties, Project View and supporting Windows.
Let us assume user has a very simple program to write. It contains a window and some controls. When IDE opens, a first window, Window1, is presented in Form Design and an entry for Window1 is in Project View and a combo in IDE's tool bar. This Window's caption, size, placement and many other attributes may be modified in Properties located at the Top Left under the tool bar of the IDE main window. Explanations of Properties attributes may be found elsewhere in this document. Window1 may also be resized via its resize arrows. User might need to maximize Form Design to access the right side of Window1. To add a control to Window1, use the Tool Box icons located near the Bottom Right. Click an icon and click on Window1 where the control should be located. The control may be moved or resized via mouse, keyboard arrow keys or Properties. An entry is added to Project View for the new control. To access Properties for a control, click the control, use the combo box at the top of Properties or select from Project View.
After all controls are added to Window1, the user may run his program from Menu Generate Program/Run project or pressing F5 key. When the program is run it may be executed as the project or as a temporary file. To run from project it must have previously been created via Menu File/SaveAs. Files of EXW and PRJ file type are generated. The PRJ file is the project file and is used to reload the project on subsequent runs of IDE. The EXW file is the created program. If a project file has not yet been created, IDE will generate a temporary EXW file in IDE's folder. If a project file has been created, user may still request a temporary file from Menu Generate Program/Temporary Run/Temp run or pressing F6 key. If the project exists, the temporary run will be in the project folder. When a temporary run is executed, either because project does not yet exist or because user wants a testing run, IDE will not create a PRJ file. The temporary file will have _TEMP in its name.
So what does the user get? Window1 pops up. But nothing special happens because there is not yet code to manipulate the program and its controls.
Coding is done in IDE's internal editor and requires some knowledge of Win32lib. User accesses the Code Editor via Menu Editors/Code Editor, right click in Window1 or by double clicking the control to which he wishes to supply code. Double click in an empty area of Window1 to access Code Editor for Window1 control. The Code Editor opens with a combo of created controls at Top Left and Win32lib events in a combo in the middle and a Module combo at Top Right. The body of the editor contains a suggested procedure statement, a blank line, an end procedure statement and an onXXX or setHandler event statement. If (General), (Intro) or (Final) event was selected from the Event combo only a blank line will be placed in the body of editor. Add any coding for the selected event. To code other events for this control, use the Event combo box. To switch to another control, return to Form Design and select another control or use the Controls combo box while in Code Editor. Note that currently the Events combo contains all events for all controls. In a future enhancement, the Event combo will contain only events for the selected control. Events may be coded in any order. IDE will generate the events in a preset order and user has no control over this order. When Menu Generate Program/Run project (F5) or Menu Temporary run/Temp run (F6) is next selected, any coding will be passed to the generated EXW. If there are errors, IDE will attempt to locate in editor.
Special editors are found in Menu Editors. They are Menu Editor, Popup Editor and Timer Editor. Also available in Menu View is Initial Values for entering initial text values for List and Combo controls, Window Styles and List View Styles Explorer for testing various styles and extended styles. Menu Editor designs menus for the program; Popup Editor designs right-click popups, Timer Editor specifies any timers, the time interval and in which procedure they are turned on and off and Initial Values allows creation of List and Combo controls text contents. Code Editor may be accessed via double click or right click from any Menu Item, Menu with ! in Caption, Popup Item or Timer Editor. To use these Editors, first click add buttons in the middle of the selected editor's window. Then click on the entry in the item box to select the entry and change the caption and/or name in the edit boxes above, if desired. When Menu Editor is used to create a menu, the Menu and Menu Items are added to Window1 in Form Design. All items are added to Project View. To use Initial Values, enter text and either press enter key or select the Add button to add the entry to the list box below. To change or delete an entry, first select from the list of entries by left click, then select Delete or Change button.
Additional WindowsIf the project program has more Windows, these are added from Menu Edit/New Window. Add controls and coding for additional windows as described above for Window1. User switches back and forth between Windows in Form Design via a combo in IDE's tool bar. IDE does not supply a procedure to open additional Window(s) in the EXW program so user must add code for that in Window1 event code or pertinent control of Window1 event code. Naturally additional Window(s) may be opened from coding associated with any Window and any controls within them. When selecting Menu Generate Program/Run project (F5) or Menu Temporary run/Temp run (F6) the user may step through the Windows of the generated EXW program.
For example a Window may be created that is opened via a Menu Item. User designs for example, Window2 which might contain only text controls, and creates the Menu and its Menu Items for Window1 from Menu Editor. Lets take for an example Menu 'Help' and its Menu Item 'About'. With Window1 currently active in Form Design select Menu Editors/Menu Editor and add a menu and a menu item. In the list box click the menu and change its caption to 'Help' and click the menu item and change its caption to 'About'. Code may not be associated with Menu 'Help'; this is a peculiarity of Win32lib in that top-level Menus may not have code unless the caption contains an !. However all Menu Items may have code. User would double click or right click the Menu Editor item list box 'About' entry. Code Editor will be opened with the Menu Item 'About' and onClick Event. (The reason it goes to onClick is that event is common for many controls so it shows first.) This is the event that is triggered when the user clicks controls such as PushButton and Menu Item. In the body of the code that shows at the blank line add the statement 'openWindow( Window2, Normal )' with other choices being Minimize, Maximize and Modal. Press F5 key to generate and run the EXW code just created. User may test the generated Window program while IDE is running but may not make any changes within IDE that affect the current generated EXW until the EXW program is closed. Click on Menu Item "About" and the second Window will be opened.
This same technique may be used with controls within any Window to open another Window in the program. The primary Window is opened via a WinMain(Window1, Normal) statement where Window1 is the first window in the project. Other choices instead of Normal are Minimize and Maximize. This statement is generated for the EXW and is located at the bottom of the program. If the project program is EW then the WinMain statement is not generated. The file type .EW is used for clarification only. Usually modules with .e contain no controls and .ew does but Euphoria itself does not care.
Modules and Include modulesAs mentioned previously modules and Include Modules may be used with the project program. To add a prewritten module or Include Module to the project use Menu Generate Tools/Manage Include Statements. Selecting this Menu Item will open a Dialog to select the file and add the module name to Project View and to a list of include statements generated for the EXW. This include statement is generated at the top of the EXW. If this location is not satisfactory for the user's program, the statement must be manually added in (General) or (Intro) event and removed from the include statements with Menu Generate Tools/Manage Include Modules.
To create a new module from within IDE, select Code Editor from Menu Editor/Code Editor and under editor's Menu File select New. Write the module and when completed select Menu File/SaveAs. Return to IDE Menu Generate Tools/Manage Include Modules as described above. Modules may be edited and saved with IDE's internal editor.
To create a new Include Module (remember it has Window and controls) is a bit different. User may use IDE to create the Include Module in the same manner as the project program or use any editor of choice. If user creates with another editor, the Include Module is added as above using IDE Menu Generate Tools/Manage Include Modules. However, if IDE creates the module, the difference is that user must specify that the generated EXW will be an EW file type instead of EXW before selecting Menu Generate Program/Run. First select Menu File/New Project and create the Window and controls and any associated coding. Under Menu Generate Tools/Program Information indicate .EW. Save as a new project with Menu File/SaveAs. When Menu Generate Program/Run project (F5) is selected the generated project file is a PRJ file and the generated program file is EW. These two files may be saved in the project folder, the EuInc folder(s) or in Euphoria/Include. Return to IDE Main Menu and open the project PRJ from Menu File/Open Project and select Menu Generate Tools /Manage Include Modules to add the EW module to Project View and to the include statements.
Is There An easier way?Sure. Write the module or Include Module if it doesn't exit. Don't add it to the project but in your program code, usually in the (General) or (Intro) Event simply add an include filename statement for the module or Include Module.
Neither will show in Project View however. But either can still be opened in Code Editor for modifications and saved.
What is Project View used for?Project View is simply an overview of the project showing all Forms:Windows and controls, Modules and Class Modules. Modules are the ones opened via Menu Generate ToolsManage Include Modules and Class Modules are the onEvent-control pairing created with Code Editor. Clicking an entry in Project View either selects the window or control in Form Design and Properties or opens associated code in Code Editor. When clicking a Menu, Menu Item, Popup, PopupItem or Timer the respective Editor will open.
Some controls that might need explanationTab Control and Tab Item Controls:
Most controls used with IDE are pretty easy to use. The exception is Tab Control and Tab Item Control. Tab Control is a holder control for Tab Item controls. There is one Tab Control as parent of many Tab Items. There may be other Tab Controls with child Tab Items in a Window or the project or even on a Tab Item..The Tab Control must be added to Form Design prior to any Tab Items that will be child to it. Drop Tab Items on top of the Tab Control. User may notice that as Tab Items are dropped onto Tab Control, the Tab Control and prior Tab Items are hidden. There is a combo in the IDE tool bar next to the Window combo which shows the active Tab Item -- the one user sees. Whatever Tab Item is showing in the combo is the one receiving additional controls dropped upon the Tab Item.
Controls are added, by dropping, to the Tab Item to which they belong. To switch Tab Items, use either the Tab Item combo in the IDE tool bar or click on the "tab" of the Tab Item, if it shows. As Tab Items are added to a Tab Control, IDE will draw their "tab" until such time as there is no longer room for a new "tab" based on the width of the Tab Item. Note that the Tab Control and all its Tab Items are the same width and height. If user changes one, all are changed. Other Tab Controls are not affected. When there is no longer room to add a new "tab", IDE will draw scroll arrows, however, they do not function.
User may notice that in Project View, the Tab Items are indented under the Tab Control parent. All controls behave in this manner so user can see the relationship between controls and its parent.
Table Control:
Table Control is a psuedo control built to emulate a grid. However Table control may have cells made up of more than one control. User should design Cell One and then right click in the Table Control to access Table Specification window where user can indicate the number of rows and columns and any spacing between. A Table may be created in the generated EXW as an array. IDE allows the user to modify Cell One, but be advised that moving the controls in Cell One and recreating the grid via Table Specifications may lead to some "interesting" results.
Final WordsThis was a simple introduction to IDE. There is much more to be learned about IDE. After twiddling with IDE, user is advised to read the rest of this document for more information about other features and explanations of all windows. This document is not very well organized at this time so plan to spend some time reading.
You might wish to review some sample programs from the Demos package on IDE's home page for ideas and see what other users have done with IDE.
Upon IDE crash please notify Judith Evans via the Topica List or camping@txcyber.com giving the nature of what you were doing and the ex.err message, if available.
Suggestions for improvements are always welcome and anyone who would like to contribute code is welcome to do so.
IDE is still setup to use Win32lib v0.57.9 but if you want to use a later version see some notes at the top of IDE.exw Convert IDE.cfg file format so only 1 file read is necessary. Conversion program provided.
Stand alone editor, editor.exw (separate download), has been modified to use the new format.Removed obsolete messages from IDE_msg.e and added new ones. When createEx a WS_Popup window in the output EXW, IDE will reduce its height by title bar. Added a new control: Child Window.
This is currently a fairly simple window -- no Toolbar, Rebar, Statusbar or TabControl/TabItems allowed.
Child Window may use Windows Style Explorer but user may not change child window type while in W.S.Explorer.
If user changes Property Style for Child Window, user is responsible for coding statements to position and move the window correctly.Changed Property to be on a TabItem Added Events on another TabItem
This feature was added for those users who do not want Project View always active.
Eventually Events will show only those events that actually work with a control. (Code Editor will be fixed as well.)
Select an event and transfer to code editor.
Events with code are flagged.Added multiple Property update(s) for controls of same CLASS.
This allows user to select a control and press Shift+S, select another control and press Shift+S until all controls are selected.
User may abort all selections via Shift+A.
The next changes made in Property will apply to all these controls unless user has pressed Shift+A.
User may make other Property changes for the selected controls.
When property is a checkbox, it will be toggled. Thus if one has been already toggled for a selected control, they will not end up in the same check state (this may not be the final decision concerning checkbox.)
Not applicable to Row, Column and Name properties, or Caption, when TabItem. Not applicable for Window control.
When user has made all updates for the selected controls, he MUST press Shift+A to terminate.The Shift+S -- Shift+A technique may be used to select controls to mass move/resize with Shift+arow keys and Ctrl+arrow keys. Remember to use Shift+A to terminate multiple selection. Added new Code Editor events: w32HAfterEvent, w32HDropDown and w32HCloseUp. Taylored event names in Event Combo to setHandler or onXXX wording. Enabled Find for all Controls-Events code.
Routine will present a list box with all the Class Modules (except the one currently showing in editor) containing the Find Wording.
Selection transfers to Code Editor.Enabled Find for Project which includes all Controls-Events (except the one currently in editor) plus all included modules.
This routine also presents a list box with all the Class Modules and Modules containing Find Wording.
Selection transfers to Code Editor.Added several new Properties for controls:
- "Adjust for Taskbar"
This is a companion to WinPosition and uses a routine by Bryan Broker to adjust the available Screen area by the System Taskbar before placing Bottom and Center windows- "Comment/Code" which will show a comment or short line of code (less than 194 characters or it wraps and may produce error) prior to the control's createEx statement
- "alternate output" Row, Col, Width, Height.
This allows anything without IDE validation and could be used for percentage positioning or positioning with a previously defined variable.
IDE will not try to draw controls by these values and normal Row, Col will be used for moving/positioning control in Design.- TCS_MULTILINE to show all TabControl tabs. See example of this with Menu Configurations.
- MCS_MULTISELECT for MonthCalendar
- PBS_SMOOTH for ProgressBar
- BS_FLAT for PushButton.
- "Def Index" Property.
This property allows pre-setting multiple indexes in List control. Enter 1 to select item 1. Enter 1,3,5 to select item 1, item 3 and item 5, Enter ALL (case will not matter) to select all indexes. 0 is treated as no selection.- Added Thomas Parslow's systray.ew to add window icon in system tray. Accessed from Menu Edit or by checking "systray" in Properties.
This requires user make some change to canned code which is found in a MleText control in the SysTray edit window.- Opened HScroll and WScroll for Min and Max scroll range values.
Minor fix for Code Editor and stand alone editor for Hint processing to replace data in richedit control instead of appending (due to changes in win32lib v0.57.11+ IDE now determines the StatusBar height from system at IDE startup for creating this control. User may still override in Configuration. IDE now determines ScrollBar thumbsize from system at IDE startup for creating this control. User may still override in Configuration. Replaced Form Design scrollbar controls with Window scroll bars. Removed registerfunc for GetLastError since it is now in Win32lib. Save in config file user's selection to create backup file of saved module in code editor. Combined all the Configuration Windows into one Window with each on tabs. Added new configuration items which allow user to indicate:
Automatically start IDE with last project (it must have been saved)
Indicate folder to use for Open and SaveAs Dialogs. This may or may not be the final project folder.
Indicate how the major windows within IDE are positioned and sized, e.g. last position and size, always maximized, maximized if left IDE with the window maximized, closed, undocked. Obviously not all options apply to every window.
Define Project File Type (moved from separate MenuItem.)
Removes several IDE modules; replacing with IDE_config.ewAdded splash window by Mario Steele so user knows "something is happening" as IDE loads. Added new options to Code Editor to add SaveAs Module file to Included Modules list or ask first. Neither is defaulted. User's selection is saved for next run of IDE. Project Modules and any opened modules may be selected from a new combo in Code Editor as well as from Project View. Each entrance into Code Editor refreshes with only Project Modules.
This allows Controls combo, Events combo and Modules combo to all be functioning at the same time.
Currently, however, files must be saved between switching.Change the Generate Program/Run routine to use fully qualified file name in quotes as input to CreateProcess routine instead of the DOS style shortname.
Code for short name is still in routines and I will remove when satisfied no one has a problem. I recall some problems on Win2000, WinME or WinNT prior to using CreateProcess and request those of you using those versons of Windows to give this a good test......
Stand alone editor will use fully qualified file names in quotes as well.Adding a new module to project, from Manage Include Files and SaveAs, automatically adds to new module combo in editor. Allow Form Design window be undocked and moved anywhere on Screen until it is redocked. Undock via Menu Edit/Undock Form or right click popup in Design and select 'Undock Form.' Redock via Menu Edit/Undock Form or right click popup 'Redock Form.' Moved Manage Include Modules from Edit and placed into a new MenuItem "Generate Tools" which also include "Program Information" and Change Control Order. Program Information was "File Types." Grid Hide and Disable are now found under Options. Menu Run is now named Generate Program and contains only Run, Temp Run Rules and Bind. Under Temp Run Rules is Rules and Temp Run as before. Removed the ColorWheel Icon from IDE ToolBar and replaced with Control UnDo. Mario Steele supplied a replacement for the message_box Help About menu item. Roland Stowasser modified to scroll the contributors list. Help Keys menu items were also updated from message_box. In an effort to reduce resource usage, most all support windows are now created on demand and destroyed when closed.
Controls, Form, Design, Property, Project View, Tool Box, Code Editor, Configuration and Help windows are not on demand windows but considered part of base IDE setup. Configuration and Help may be converted at a later time. Routines are not yet centralized; this will be done when I take an overall look at IDE in coming releases.A control copied from another control now has Name and Title constructed from the Name or Title, less trailing numbers, plus next available counter. However List View with quote as last character will continue to have the quote last. Problems!
Sometimes when IDE activates, a window that has not been opened yet by IDE but is createEx'd will show. You will not be able to close it so restart IDE. I wish to thank everyone who gave of their time to help me test this version.
Software ID: IDE
Copyright: (c) 2001 David Cuny, Judith Evans, etal
All rights reserved.
License:
This software is provided 'as-is', without any expressed or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
- The origin of this software must not be misrepresented; you must not claim that you wrote the original software.
- If you use this software in a product, acknowledgement in the product's documentation and binary are required.
- Altered source versions, and works substantially derived from the it, must...
- be plainly marked as such,
- not be misrepresented as the original software,
- you may place your name in the IDE "About" box as a modifier, translator, etc.
- include this notice, unaltered
IDE requires win32lib.ew version v0.57.9 or later. (v0.57.9 is recommended due to bleedthrough problems on TabItems with v0.57.11). 'Help About' shows the user's version of win32lib.ew. If not a version of win32lib containing this information, IDE will fail.
IDE requires RDS database.e for the Help System.
Standalone editor, editor.exw, should be placed into the same folder as IDE. If you elect not to do this then several files must be copied to the folder it is placed into.
When a container control is moved onto a non container control the non container control may be hidden in Design. Even when shown, the control is not added to the container. Container controls are Tab Control, Tab Item, Group, Tool Bar, Status Bar, Table, ReBar and ReBarBand.A user has identified a problem using deleteObject() when a RichEdit control is present. If User encounters an IDE failure or exception, comment this routine in IDE_draw.ew but user may then encounter memory loss.
A user has identified a problem using 'Draw controls with Bitmap, Icon, XPM' in which the Window's desktop changes to Large Fonts when IDE is moved.
This is an alpha of an IDE for Win32LIb. You can create multiple windows, populate with Controls, attach code to those controls and generate an EXW file, or if an Include Module, an EW file.The original concepts and designs of Design Window, Properties, Code Editor, Menu Editor and EXW creation are by David Cuny. You might still find his version in a Win32lib download at http://www.lanset.com/dcuny/euphoria.htm. This author built upon his ideas, added features and provided functionality as requested (and at times code provided) by the Euphoria User Community.
Designer Components:Splash Window
While IDE activates a splash window appears. Moving the mouse across will close it.
Credits:
- Splash Window was contributed by Mario Steele.
MainWindow
This window contains IDE menus, Tool Bar, Design Window, Properties, Project View and Tool Box.
Design Window
This is the window with a grid and scroll bars. This window is a view of the window that the end user will interact with. Controls can be added to it using the Tool Box's icon bar. Initial Grid may be hidden. See Grid Configuration below.
Credits:
- CK Lester provided information as to how Design interacts with Properties and Project View when maximized or resized.
- Martin Stachon provided many solutions to problems with Design Window positioning and faster painting when Design is resized.
- David Cuny supplied a fast grid drawing routine.
Properties
Displays attributes of a particular control, or the Window if an unoccupied spot on the design window is clicked. The tiny button in the upper right corner undocks and redocks Properties. Tab One shows Property information about controls. Property caption and property value panels may be adjusted in width using the mouse over the divider line between them. Tab Two of Properties is a list of Events for the control. Events with code are flagged. Properties and Project View may be resized, and when docked, resize each other. Design Window when maximized will not cover docked Properties or Project View.
Credits:
- The latest Property module was contributed by Martin Stachon.
- Travis Beaty suggested the method used to undock Properties via the little button.
- CK Lester provided much knowledge as to how Properties and Project View resize to one another.
Project View
Project View is a Tree View of the elements of the current Project: Forms, Class Modules and Modules. Design, Properties, Menu Editor, Popup Editor, Timer Editor and Code Editor may be accessed by clicking on one of the elements of Project View. The tiny button in the upper right corner undocks and redocks Project View. Project View and Properties may be resized, and when docked, resize each other. Design Window when maximized will not cover docked Properties or Project View unless it has been undocked. An undocked Design Window when maximized will cover full screen. .
User may elect to start IDE with or without Project View. See Menu Configurations. Option is saved in IDE.cfg file.
Credits:
- Derek Parnell provided routines for manipulating Tree View within ProjectView.
- Travis Beaty suggested the method used to undock ProjectView via the little button.
- CK Lester provided much knowledge as to how Properties and Project View resize to one another.
Tool Box
Icons from the Tool Box can be selected to place controls onto the Design Window. Icons may be dropped once per selection or multiple times. See Icon Behavior below. The tiny button in the upper right corner undocks and redocks Tool Box. The ? Button left of the undock button will open the IDE Help System Window for information about various controls. The Help System information is not complete.
Credits:
- The Help System View was contributed by Roland Stowasser and Virtual B.
- Most Icons for Tool Box were obtained from David Cuny.
- Concepts for Tool Box were submitted by David Cuny.
- Travis Beaty suggested the method used to undock Tool Box via the little button.
Code Editor
The editor allows code to be associated to control-event pairs or with program modules. Use may select to add SaveAs Module file to Included Modules list or be asked first. Neither is defaulted. User's selection, if any, is saved for next run of IDE.
A stand alone editor, editor.exw, is provided as a separate download for use outside IDE. Further enhancements are planned for this editor.
Credits:
- The latest editor, syntax editor, was contributed by Don Phillips.
- Some modifications were made by Martin Stachon, Mario Steele and Roland Stowasser for adaption to IDE.
- Mario Steele suggested adding SaveAs module to the project and the third component of combos for code selection.
Menu Editor
Editor for designing Menu and Menu Items. User may use \t to right align portions of the Menu Item text and ! to treat a Menu as a command button (provided the version of Win32lib used supports this feature).
Credits:
- Menu Editor has been modified from its original design by Roland Stowasser and Martin Stachon.
PopUp Editor
Editor for designing right click PopUps.
Timer Editor
Editor for pseudo control Timer.
Associated with IDE are other windows:Controls Order
This window, selected from Menu Generate Tools/Controls Order or Properties/Control Order, allows reordering the controls for the output EXW (EW). Control order within Design, Properties or Project View is not changed.
Manage Include Modules
This window, selected from Menu Generate Tools/Manage Include Modules, allows the user to add modules and select the order they are included in the generated EXW (EW) file after the statement 'include Win32lib.ew'. Include Modules may also be removed from the Project from this window.
Text may be associated with the include module. This will allow user to add something like 'as XXX' or a comment. To add the appended text, or view previously added text, click the module name in Manage Include Modules and enter the text in the edit box above. Also shown is the full path of the include module.
Message Box Generator
This selection allows user to create a Message Box while using IDE and add to Code Editor via Window clipboard.
Enter information such as number of lines for message text, Icon desired, Button Type. Then click the CREATE button to see and modify the text of the message. COPY button will copy to clipboard and user may then paste into Code Editor.
Credits:
- This module was contributed by Roland Stowasser.
Visual Styles Explorer
This window allows user to try various styles, extended styles and CS_NOCLOSE for Window control and transfer the selection to Properties. Select from Menu Edit or right click on Window.
Credits:
- This module was contributed by Don Phillips.
Visual ListView Styles Explorer, Initial Values, Icons and Column Titles
This series of windows allows user to try various styles, extended styles, headings, icons and data for ListView control and transfer selection to Properties. When a ListView is selected in Properties and Visual ListView Styles Explorer selected from Menu Edit, existing data will be supplied; otherwise default data is shown. User may also right click on ListView control to obtain ListView Styles Explorer.
Credits:
- The original author is unknown.
Initial Values
This window, selected from Menu/ Edit/ Initial Values for List and Combo or right click Properties/<LIST>, allows user to enter initial values for List and Combo Class controls.
Show Window
This window, selected from right click in Design, is a Full Size Design. User may add, move and delete controls as in the smaller Design window; however the mechanism is not friendly. Both versions of Design are maintained when 'Show Full Size' is selected.
Off Screen Window
When a control's X position becomes negative, it can not be fully displayed in the Design Window. Off Screen is accessed via right click in Design. The control is positioned as an offset relative to the right edge of the Off Screen Window whose width is Design width. Controls of this nature are usually Pixmaps but other controls may be placed off screen such that the EXW's user does not see them. If there are not any off screen controls, the right click option is disabled. This window is currently not editable.
IDE Configuration
User selected options from the below configurations are modifiable and may be saved for future runs of IDE.
Documentation LocationIde attempts to locate the files Win32Lib.htm, Ruler.chm and IDE.htm in the folder IDE resides. If not found, the Euphoria folder and sub folders are searched. Multiple copies of the files are entered in a combo box for selection.
If the user has placed the documentation files into folders outside of Euphoria or on another drive, Browse button selections will allow a direct lookup for them using the Open Dialog.
This needs to be done only once or when one of the files is moved.
Default Control Values
Default Name, Title, CX and CY over-rides may be entered for controls dropped onto Design. These values may be used for the current IDE session, saved for future IDE use or replaced with original values.
Grid Configuration
Configure items such as color, pixel size, dot/lines, hide/show, enable/disable. Selections may be saved for future runs of IDE.
Credits:
- David Cuny provided method for fast redrawing of grid after user selects a change.
Backup Before Save
When the project is saved a backup file filename.bak is automatically created. If an existing file of this name exists, it is overwritten. Uncheck this menu item to bypass writing the backup file.
New Controls Local or Global
Allows user to select local or global as default when creating a new control for the project. User may also change existing controls on the project by checking "Change existing controls on this project." Choice may alternatively be changed per control in Properties or Menu, Popup and Timer editors. When 'global' IDE generates 'global constant Name = create ....' statements and when 'local' IDE generates 'constant Name = create ....' statements. The default is initially set to local.
Credits:
- Derek Parnell suggested adding this feature with default 'Local.'
- Mario Steele suggested adding this feature to Menu and Popup Editors.
One Instance of IDE
If checked IDE may not be started if a current instance is running. If unchecked IDE may be restarted but only from the first instance.
Credits:
- Instance processing was contributed by Euman.
Properties Wait For Enter Key
This window shows the attributes from Properties that respond to user input data with a redraw of the control or required value. User may select the attributes that must wait for a press of Enter key or TAB to process entered data. Selections are automatically saved for subsequent runs of IDE.
General Information
This option allows user to:
- Indicate that IDE always start with last project. This implies that the project has been saved.
Opening with last project is bypassed if user has not saved a project or if user starts IDE from a filetype association such as from Windows Explorer.- Indicate the default folder for Open and SaveAs Dialogs. This may or may not be the actual project folder, depending upon user's folder structure. The default folder must already exist.
- Define Project File Type.
The Define Project File Type option allows user to select the three-character file type IDE will use when reading and writing the project file. This applies to all projects. The default is 'prj' and users selection is saved in IDE.cfgWindow Opening Positioning
Indicate how major windows within IDE are opened, e.g. always maximized, maximized only if left IDE with it maximized, at last position and size, closed, undocked. Not all options apply to every window.
If option of 'closed' for an IDE window is selected, none of the other options will be considered.
Credits:
- Andy Drummond and Sasha Zindel suggested allowing user to indicate various Window positioning and state.
- Mario Steele suggested the default folder.
- Unknown user suggested automatic start of last project.
- Andy Drummond suggested Define Project File Type feature.
Notes on IDE WindowsWhen IDE opens, it displays Form Design window, Design window (Window1) with a grid, Properties (optional), Project View (optional) and Tool Box. IDE may be started from 'run' command or, if file associations have been set up, from a project file in Windows Explorer.
The Window being designed is included within its own Form Design Window which may be maximized, resized and undocked. When docked and maximized the window's x,y position depends upon the docking status of Properties and Project View. When either one is docked the Form Design window may not go over or under it but will expand to fill the rest of available area. When Undocked Form Design can be placed anywhere on the Screen. Scrollbars are visible when needed to view the Design window controls. Properties or Project View may be expanded over or under the Form Design in order to view long attribute values. It is users responsibility to move Properties and Project View out of the way of Form Design.
Undock and redock Form Design window via MenuEdit/Undock Form or by right click popup selection Undock Form and Redock Form.
The Form Design window, when docked, may be moved around within the IDE but must remain inside the client area. When moved outside the IDE, IDE tries to reposition the window which may cause some flickering. When the Form Design is maximized and then moved outside the IDE, the IDE sometimes can not recognize that is was moved while in a maximized state and will reposition the window in normal state. The same holds true if the Form Design window is resized with its arrows.
Associated with the Design Window is a project file which is used to reload the Design Window. When closing the IDE Window and there have been changes, there is a query to Save(As) a project file. The user supplies the name of the file and its path from a dialog box. The project file is also written when 'run' is selected from the Menu Generate Program unless the user indicates that a temporary EXW file be generated. An EXW file is also created or an EW file if the module is an Include Module. IDE and the output EXW from Menu Generate Program 'Run' may both be concurrently working. In other words the taskbar or titlebar of each window may be used to swap back and forth between them. Code Editor may be re-opened, however it will jump in front of both IDE and the EXW window. Changes made in IDE in this mode will not affect the currently executing EXW.
Credits:
- Process control module was provided by Tone Skoda.
- Method to determine file processing name by Wolf Fritz.
IDE may not be tiled. IDE will cause an exception when tiled. Probably because of the structures used within IDE for Properties, Tool Box and Form windows and the X and Y relationships to the IDE. This problem is currently being studied.
IDE messages are centrally located in IDE_msg.e module with IDE_msgEnglish.e contents as default. Translations, contributed by IDE users may be found on IDE home page for other languages. Copy the unzipped language module to IDE_msg.e. Other language translations are welcome.
Credits:
- IDE_MsgCzech.zip by Martin Stachon.
- IDE_MsgGerman.zip by Roland Stowasser.
The Control Icons:The following icons are represented in the Tool Box:
Control Default Class Other Classes Bit map * Bitmap Pixmap Icon/Image Icon Static Text * LText CText, RText Edit Text EditText Mle Text MleText Rich Edit RichEdit Menu Menu PopUp PopUp Frame Group Push button * PushButton PictureButton, TogglePicture, ToggleButton, DefPushButton Radio button Radio Check box * CheckBox TriCheckBox Combo box * Combo SortedCombo, SimpleCombo, ComboBoxEx List * List SortedList, DropDownList Horizontal Scrollbar * HScroll HTrackBar Vertical Scrollbar * VScroll VTrackBar Progress Bar ProgressBar Up/Down UpDown Page Control TabControl Tab Item TabItem Calendar MonthCalendar Tree View TreeView List View ListView Tool Bar ToolBar Tool Bar Spacer n/a Status Bar StatusBar Table Table Pseudo control Flat Tool Bar FlatTool Bar Separator Button SepButton for FlatToolBar ReBar ReBar ReBar Band ReBarBand Timer Timer Child Window CWindow * To select a class that is not the default ( for example, CText), use Properties 'Class' once the control has been added to Design Window.
Menu, PopUp and Timer when selected transfer to their respective editors.
Adding ControlsTo add a control to the window, select the icon of the control from the Tool Box by clicking it, and then click the Design Window where you want the control to appear. Menu, PopUp and Timer when selected transfer to their respective editors. If you add a control over an existing control it does not necessarily become the parent but IDE will attempt to draw both controls. This is also true if a control is moved by mouse or Properties over another control.
Properties and Project View may be expanded or contracted in height and width by using their window resize arrows. Neither one may be smaller than their width when IDE opens. When either one is changed in width, the other changes as well. When either one is changed in height, the other adjustss accordingly. These windows stay on top of the IDE when undocked except when openFileName dialog, color Dialog, message boxes, etc appear. When docked and expanding over the Form Design Window they might be hidden by Form Design and it is the users responsibility to resize them or click on them to bring them forward when necessary to work with controls.
Properties and Project View may be undocked and moved anywhere on the Screen. It is not a requirement that they stay within IDE's main window. If they are redocked they return to their original position but retain the latest width, provided it is at least as wide as the when IDE opened. If one of them is already docked when the other is redocked the width of the redocked one will be the width of the currently docked one. If only one is redocked, it returns to the upper portion of the original position but occupies the entire length.
Tool Box may be undocked and moved anywhere on the Screen. It is not a requirement that it stay within IDE's main window. If redocked it returns to the original position.
Properties, Project View and Tool Box may be minimized, closed and (re)opened. To (re)open, select a menu item under 'View.', right click on Design or use a hot key. If Properties or Project View is docked, or undocked and open, when their respective menu item is clicked, their contents are refreshed. When undocked the respective window is moved forward into view if hidden behind another window.
There is an option under 'Options' menu called 'Icon Behavior' which allows changing how the selection of control icons works for the current session. The default is single selection with multiple selection as the option. You can toggle back and forth during the current session by clicking the 'OFF' MenuItem, toggling the "Off"/"On" button on the Tool Bar or answering the question under 'Instructions.' When clicking the 'OFF' MenuItem, the check mark is toggled. If multiple selection is selected be sure to turn it off before clicking on a control to see its Properties.
With multiple selection the control icon selected remains active until de-selected by clicking on it again. This allows multiple additions of the control without having to reselect from the Tool Box. It will not remain active after right clicking, Menu Editor, Popup Editor, Timer Editor, ' Menu Generate Program', error messages or selection of a new Window. To de-select the control for control move or drag, press the control icon again in the Tool Box, press the Esc key, click the "Off" menu item, click the "Off"/"On" Tool Bar button or click somewhere in the Design window where there is not a control. Selecting another control will automatically de-select any prior selection.
Tab Control must be added before its Tab Items. There may be multiple Tab Controls and each one may have any number of Tab Items with their respective controls. Tab Control may be added to an existing Tab Item of another Tab Control.
To add a Tab Item, select the Tab Item icon and click within the Tab Control it belongs with. To add additional Tab Items to the same Tab Control, select the Tab Item and click within the Tab Item which is masking the Tab Control you wish to add to. The second combo box in the Main Window Tool Bar designates the currently selected Tab Item. Dropping a control within the Tab Item adds to the currently selected Tab Item. As new Tab Items are added, the combo box is updated with the Title. Change the combo box for the appropriate Tab Item wanted active to drop a control onto or for move/copy/resize. User may also select the Tab Item by clicking on its "tab" in Design, if it shows, using Properties dropdown list or selecting from Project View.
Tool Bar control is automatically inserted at the top of the Design Window when selected from Tool Box. When the Window is larger than can be displayed, you will not see the Tool Bar after vertical scrolling. There may be only one Tool Bar but its grip handle may be used to resize into rows. Rows are automatically sized. Just drag the Tool Bar grip down and let go and a row will be added. After designing the Tool Bar and its contents, if Window1 is resized smaller, some of its controls may appear to be "lost" if the Tool Bar was completely full.
The exception to these rules is when Tool Bar is dropped onto ReBarBand control. Then multiple Tool Bars are allowed and Tool Bar must stay within ReBarBand.
To add a control to the Tool Bar, select the icon from the Tool Box by clicking on it, and then click on the Tool Bar. The control will be auto positioned within the Tool Bar. Controls may be repositioned by dragging them to a new position. Drop the control a bit under the top of the row you want it on and it will snap into place. To add or move a control between existing controls, drag or drop overlapping each one. Controls may also be added to Tool Bar by moving them into the Tool Bar, positioning a little bit below the top of the row desired. The control will autoposition and snap into place. Removing controls from the Tool Bar causes the remaining controls to automatically reposition.
Status Bar control is automatically inserted at the bottom of the Design Window when selected from Tool Box. When the Window is larger than can be displayed, you will see the Status Bar after vertical scrolling.
To add a control to the Status Bar, select the icon from the Tool Box by clicking on it, and then click on the Status Bar. Controls added to the Status Bar are automatically CY sized. Controls may also be added to Status Bar by moving them into the Status Bar.
Menus can be added by selecting Menu from the Tool Box. or from Menu 'Editors', right click on Design or hot key.
Popups can be added by selecting Popup from the Tool Box or from Menu 'Editors', right click or hot key. Use mouse right button in Design and select 'Show Popup' to see the Popup Items. There may be multiple Popups on a Window and under that condition when selecting 'Show Popup' there will be another window for choosing the Popup Name to show. Click on the Window or a Form Design control to clear the Popup display. There has been no attempt to associate Popups with controls but user may do this in Code Editor. This display is for visual purposes only.
Timers can be added by selecting Timer from the Tool Box. or from Menu 'Editors', right click on Design or hot key.
Credits:
- Dan Moyer provided assistence with multiple selection logic.
To add an additional window to the project, select 'New Window' from the Edit menu. The Window will be added to the currently active window combo box in the Main Window Tool Bar. Properties 'Parent' may be modified for additional windows. If parent is blank, IDE will generate "0" for the parent attribute in the EXW (EW).A dropdown list of available windows may be used in Properties 'Parent' attribute. The dropdown will include a 'blank' entry, all window names defined prior to the selected window and, if an include project, the parent of the first Window. The first window may not have a parent unless the project is an include project. The first window in the include project may have a parent but be aware that using one most likely will cause the generated EW to fail when run in stand alone mode.
Grid Configuration under 'Configuration' Menu allows for changing grid color, grid pixel increments and whether the grid is dots or lines. Formerly grid hide.show and grid disable/enable were also located here but are not found under Menu Options.Changing the grid pixel increment after adding controls may lead to unpredictable behavior. It is recommended that the grid pixel size be determined before adding any controls.
The default status of grid is: blue color, 4 pixel, show grid, grid enabled and grid dots. Changing some of these fields results in a slight delay while IDE builds the new grid.
Chosen values may be saved for the next use of IDE.
When using Properties the grid is temporarily disabled. If a control X or Y is changed, any later move of the control with the mouse will re-snap to the grid if the user has grid enabled.
User may re-order most controls prior to running the EXW. Under Menu Generate Tools select 'Change Control Order For Program' or use Properties 'Control Order' for this option. The initial order of the controls in the list box is the y, x order unless the user has previously re-ordered the controls. Controls within a container are offset by '<'s but may not necessarily be directly under the parent if another controls y, x are between them. Changing the EXW reorder does not change the order in Design, Properties or Project View. Changing the control order does not change the parent of a control. IDE can not change Windows tabbing behavior. If user could not tab to a control, e.g. Group, using Control Order will not force that to happen.User may add and order the 'include module' statements within the EXW. Under Menu Generate Tools select "Manage Include Modules" for this option.
Text may be associated with the include module in Edit/Manage Include Modules. This will allow user to add something like 'as XXX' or a comment. To add the appended text, or view previously added text, click the module name in Manage Include Modules and enter the text in the edit box above.
User may indicate that 'global constant Name = create ....' statements not have the word global by checking 'local' in Properties or changing the default to local in Menu Configuration.
User may indicate to use integer instead of constant in create statements with Properties attribute Create With.
Select Menu Generate Program/Run to produce the EXW or EW file. User may elect to direct the generated EXW to a temporary file. If there are ex.err errors IDE attempts to find the location if in a user written procedure from Code Editor or within the Properties for a particular control. If the ex.err refers to a module IDE will show the error code in that module if the module can be opened and read.
User may elect to create a temporary file instead of the normal project PRJ and EXW files. When electing to use this version of Menu Generate Program, a temporary PRJ file is not created and the existing PRJ file is not modified. User may indicate what to do with the temporary EXW file under Menu Generate Program/Temporary Run Project/Include/Rules and select the run from Menu Generate program/Temporary Run/Run or from a menu item in Rules. The file name will be project name _TEMP.exw or unidentified_TEMP.exw, if the project has not yet been saved. If the file is an Include Module, .EW will be the extension instead of .EXW. The temporary file, if user elects to keep it, is in the project's folder or in IDE's folder if unidentified_TEMP.exw.
The Temporary Run Rules may be saved in IDE.cfg file.
When user requests Menu Generate Program and has not previously saved his project, a temporary run is forced. The GetOpenFile Dialog will not be presented unless the Temporary Run Rules require it.
While viewing generated EXW file, user may return to IDE to make changes. These changes do not take effect in the current running EXW.
Credits
- Interactive processing was contributed by Tone Skoda.
- Deternining file processing name was contributed by Wolf Fritz.
See the Help under Options\Ruler Tool for documentation or view Ruler.chm.
Credits:
- Measuring Tool module was provided by Travis W. Beaty.
Project View contains all the forms and controls for a project, the class module-event pair having code and include module names. User adds include files necessary for the EXW directly into IDE via Menu Generate Tools/Manage Include Modules. Win32lib.ew should not be included this way since it is automatically generated when indicated. The module will be added to Project View under Modules. The module list is saved in the project's PRJ file. Prior to Menu Generate Program the include module list may be reordered by Menu Generate Tools/Manage Include Modules. The included modules are inserted in the EXW after Win32lib.ew.IDE has a feature in which Project View can show open and close icons if they are in the IDE folder. CLSDfold.ico and OPENfold.ico may be found in any recent Win32lib distribution zip and copied to IDE folder if not included in the IDE.zip distribution.
The view will be rebuilt each time UnDo for Controls is selected, a different Window is added, selected or deleted or Project View is selected from Menu View.
Picking a node of the view will result in the Design Form being altered to show selection of that control or window if the control is not Menu, Popup or Timer and the Properties reflecting that control or window and, if a Class Module or Module node was selected, Code Editor for the selected Class Module-event pairing or routines for Module. If the control is Menu, Popup or Timer the respective Editor is opened.
Click on the control in the Design Window that you want to edit, select the control from Properties dropdown or select from Project View. Tab Items may also be selected from IDE's ToolBar Tab Item Combo or their "tab", if showing. The selected control will appear as a rectangle with a triangular "grab icon" in the lower right hand corner. When Tab Control is selected, its rectangle will be a dash line instead of solid. Select a Tab Control with Tab Items via Properties dropdown list or Project View.Unselecting Controls:
To unselect a control, either press the Esc key, click in the Design Window where there are no controls or pick another control from the Tool box.Deleting Controls:
To delete a control, select it and press the Delete key or select it with the right button and choose 'Delete Control.'
To select a Tab Control with Tab Items, use Properties dropdown list, ProjectView or right click in Design. When Tab Control has Tab Items, if the Tab Control is showing in Properties when Delete key is pressed, it will be deleted; if a Tab Item is showing, it is deleted. Do not click anywhere in Design after selecting TabControl in this manner. Simply press the Delete key once TabControl is showing in Properties or right click in Design.
Deleting a Tab Control, Tab Item, Status Bar, Tool Bar, Group, Table, ReBar or ReBarBand automatically deletes its sub controls.
Deleting a control from the Tool Bar results in the remaining controls in the Tool Bar being repositioned.
The Currently Active Window may be deleted using 'Delete Active Window' from the Edit Menu. If the currently active window is the only window, the window is replaced with an empty Window1.
Editing Controls:
Click on a control using the left button, and Properties will be updated for this control or the Window if an unoccupied spot on Design is clicked. If multiple icon usage has been selected, it needs to be turned off before clicking on a control. Control may also be selected via Properties dropdown or ProjectView.
You can change the size of the control with the mouse and the position with the mouse or keyboard arrow keys. Properties may also be used to change size and position.
Resizing Controls with the Mouse:
To resize the control, select it and click and drag the triangular "grab icon" in the lower right hand corner.
Moving Controls with the Mouse:
To move the control, select it and drag it to the new position. Properties may also be used to move to a new location as well as the keyboard arrow keys.
To move a Tab Control and all its Tab Items, select with the left mouse and drag. A Tab Control may not be moved to any other control except to an existing Tab Item. To move a Tab Item, select with the left mouse while holding down the Shift key and drag.
A Tab Item must be moved to an existing Tab Control or to Tab Item if it masks the Tab Control. When moving to a Tab Control with existing Tab Items, they will all be sized to the largest Tab Item. Lift up on the mouse with the cursor within the Tab Control or Tab Item and the moved Tab Item will auto position.
Moving the Tab Item, Group, Table or ReBarBand controls automatically moves controls contained within them.
Controls moved out of a Tab Item, Group or ReBarBand no longer are assigned to a parent, unless moved into another Group, ReBarband or Tab Item. Parenting is carried into the EXW or EW file and x, y positions re-calculated to fit within the parent. The project file retains the original positions for reload purposes.
Controls moved into a Tab Item, Group or ReBarBand will have the Tab Item, Group or ReBarBand assigned as parent. The exception is a Group within a Tab Item. In this case, if a control is moved into the Group, the parent will be the Tab Item although Properties and ProjectView will show the Group as parent. If the Group is subsequently moved out of the Tab Item, the controls within are re-assigned to the Group. The EXW or EW file will assign controls within the Group control to the Group even though the Group is within a Tab Item. The PRJ file retains the original parenting for reload purposes.
Controls in the Tool Bar may be moved around (or out of the Tool Bar) by selecting with the left button, moving where desired and releasing the mouse. Be sure to release it just a bit under the top of the Tool Bar row if moving to a new row. The existing controls in the Tool Bar will auto position to accommodate the insertion.
Multiple controls may be selected for moving and resizing via keyboard arrow keys or for changes in Properties. The controls must all be the same class. Click a control and press Shift+S, then select and press Shift+S for every control you wish to mass change. If you change your mind press Shift+A. Use either keyboard arrow keys to move/resize all the controls or the change made in Properties will apply to all the selected controls. When completed with changes for these controls, press Shift+A to terminate multiple processing. This procedure may not be used with Copy Control or Delete Control.
Copy a Control
To copy a control to another location, press the Ctrl key, select the control to copy and drag to the new location. Any controls within the selected control will also copy. When copying a control or container controls the newly created control will have name and title built from the control's name or title less any trailing numbers plus the next available incrementing number assigned. Any controls child to the copied control will also follow this rule when copied. However if the control is a List View and it has trailing quote the new control will have the quote at the end.
Tool Bar, Status Bar, ReBar and ReBarBand may not be copied.
Editing The Window:
Resize the Design Window in Properties by altering it's attributes or by using the Design Window resize arrows. When the Design Window completely fills the Form Design Window (less the scrollbars), only Properties Width and Height fields may be used to further expand the Design window. A future enhancement will address this issue.
Saving the Design:
Closing IDE, opening another Project file, starting a new Project may generate a PRJ file via a window's dialog. A backup file filename.bak will be automatically created when project is saved. User may elect not to do this by unchecking menu item Configuration/Backup Before Save. When opening project, user may not select Backup Files in the files type dropdown.
Keyboard support
F5 initiates menu 'Run'.
F6 initiates menu 'Temporary Run'.
Delete key deletes selected control.
Ctrl+S triggers Menu SAVE.
F12 triggers the SaveAS Dialog.
Ctrl+O triggers the OPEN.Dialog.
Ctrl+T opens Tool Box or changes to Top Most status if already open.
Ctrl+P opens Properties or changes to Top Most status if already open and undocked.
Ctrl+J opens Project View or changes to Top Most status if already open and undocked.
Ctrl+l opens Initial Values for List and Combo controls.
Ctrl+M opens Menu Editor if not already open.
Ctrl+U opens Popup Editor if not already open.
Ctrl+E opens Code Editor or changes to Top Most status if already open.
Ctrl+W opens Timer Editor if not already open.
Ctrl+Z triggers Undo.
Ctrl+A opens Manage Include Modules.
Keyboard arrow keys may be used to move and resize a selected control by Grid Pixel Size positions. Using arrow keys with Shift will adjust CX and CY and using Ctrl will adjust both CX and CY.
F1, F2 and F3 switch button icons for FlatToolBar
Shift+S after clicking a control selects it for multiple processing. Multiple processing is terminated with Shift+A.
Shift+A terminates or aborts multiple control processing control.
Form Locking
The X, Y, CX and CY values of controls on the Form may be locked to prevent accidental movement with the mouse. This is a menu item under Menu Edit.
Undo Last Action
One level of Undo is provided. This action is found under Menu Edit and right click in Design or on IDE ToolBar. Undo is disabled when selecting Code Editor and upon return to Design is not available until the next control action.
Properties and Project View may be expanded or contacted in height and width by using the window resize arrows. When either one is changed in width, the other changes as well. When either one is changed in height, the other contracts accordingly. These windows, when undocked, stay on top of the IDE except when openFileName dialog, color Dialog, message boxes, etc appear. When expanding over the Design Window it is the users responsibility to resize them out of the way when necessary to work with controls.Properties and Project View may be undocked and moved anywhere on the Screen. It is not a requirement that they stay within IDE. If they are both redocked they return to their original position but retain the latest width provided that width is at least as wide as the width when IDE opens. If only one is redocked, it returns to the upper portion of the original position but occupies the entire length.
Properties displays the following attributes for controls other than Menu, PopUp or Timer:
Label Meaning Control DropDown Contains a list of all controls in a Window with the exception of Menu, Popup, Timer and their subs. Name The identifier given to the control by Win32lib Class * Type of control. Has a drop down list if there are associated classes. Caption** Title displayed in the control. If longer than the control width it is truncated when drawn. Show in EXW If False the Caption does not show in the output EXW. Title Widths ListView column widths. Non editable. Col X coordinate of control in window. If WINDOW class the default value is 'Default'. Any numeric, including zero, may be entered. When negative, controls is considered Off Screen and will only show on Off Screen Window accessed by right click in Design Row Y coordinate of control in window. If WINDOW class the default value is 'Default'. Any positive numeric, including zero, may be entered. Width Width (cx) of control Height Height (cy) of control Alternate Positions Click This property to obtain alternate Row, Col, Width and Height. Note that these properties are not actually used in IDE for positioning and only apply to the output EXW. They might be used for percentage values or for variables previously defined. Row Enter whatever you wish to override the normal Row value and establish Y coordinate in EXW output of control. IDE does not edit this property. Col Enter whatever you wish to override the normal Col value and establish X coordinate in EXW output of control. IDE does not edit this property. Width Enter whatever you wish to override the normal Width value and establish CX coordinate in EXW output of control. IDE does not edit this property. Height Enter whatever you wish to override the normal Height value and establish CY coordinate in EXW output of control. IDE does not edit this property. Row Height Height of a ToolBar and FlatToolBar 'row'. Bar Height will be multiple of this value. Comment/Code Enter whatever you wish as a comment( enter -- ) or a one line of code to preceed the control in EXW output. IDE does not edit this property. SysTray Check this property to indicate Window should show in Window Task Bar and be transferred to a window to enter supplimental data.Also accessable via Menu Edit. WinMainOpen select Normal, Minimize or Maximize from drop down list. For first Window in project. Win Position select an initial position for the first Window in project from 9 commonly used positions. Selecting None will remove a prior selection. Reduce by TaskBar Companion property to Win Position. When selecting Center or Bottom Win Position choices, this Property indicates that the available Screen area be reduced by the Task Bar such that output EXW will not cover it. Control Order EXW control order. Not offered for Window, ToolBar, StatusBar, Menu and Popup Classes. Key into attribute or right click for transfer to Change Control Order Modal Window. <LIST> DropDownList of initial values for List/Combo controls. Right click for transfer to Initial Values Modal Window. Create With Determines whether control statement uses 'constant' create or 'integer'. Select from constant/integer. Local Select flag True if EXW create statement is to eliminate 'global'. Toggle On and Off Ex Style Is used for providing Extended Flags when create. Default value is zero. Extended Style ListView Extended styles. Non editable. Parent Parent of control (Group, Table, Status Bar, Tool Bar, Tab Control or Tab Item). Non editable except for Window Class. User may edit secondary Windows from drop down list of valid parents. When Window is for an .EW program, the primary window may be edited to any Window name, within the current PRJ or not. To make this work user must select from 'File Information' under Menu/Run and indicate .EW file type, at which time the 'parent' property is opened for input. Returning to .EXW file type will automatically remove the primary parent. Style (if Class is Window) Attribute indicating the style for Window. If more than one, separate with comma. From Right Click user may select Style and ExStyle from various window styles shown in another window. The Style, exStyle and classDefault may be viewed by clicking Generate button and passed back to Properties when OK button is clicked. Style Type (if Class is Window) Indicates how style param is to be formatted. Has a drop down list. CCWinStyle Generates classDefaults statement for CCwinstyle param only. Currently used by Visual Styles Explorer. Visible Toggle On or Off if control is visible. Enabled Toggle On and Off if control is enabled. Limit Text Number of characters to limit a text field. Min Value**** Minimum Scroll Value for UpDown, HScroll and VScroll controls. Max Value**** Maximum Scroll Value for UpDown, HScroll and VScroll controls. Buddy [Name] Name of Buddy control associated with UpDown Control. Styles This attributes works like TreeView, Click to expand and contract to view various control styles below:. Upper Case Toggle On and Off. For edit controls. Lower Case Toggle On and Off. For edit controls. Read Only Toggle On and Off. For edit controls. Password Char Toggle On and Off. For edit controls. Numeric Toggle On and Off.For edit controls. MultiLine Toggle On and Off. For PushButton or ToggleButton. H Scroll Toggle On and Off for RichEdit control. Multiple Sel Add LBS_MULTIPLESEL to List Control Style if checked. Toggle On and Off. Extend Sel Add LBS_EXTENDEDSEL to List Control Style if checked. Toggle On and Off. RBBS_BREAK Toggle On and Off if add to ReBarBand. Default is Checked. Clickable Toggle On and Off if add to xText. Default is unchecked. Flat Toggle On and Off if PushButton is to have BS_FLAT appearance. Multiline Toggle On and Off if TabControl is to show all TabItem captions. Smooth Toggle On and Off if ProgressBar is to have PBS_SMOOTH. MultiSelect Toggle On and Off if MonthCalendar is to have MCS_MULTISELECT. Def Select Allows pre-selection of List indexes. Enter 1 for the first index. Enter 1,3,5 for the first, third and fifth item. Enter All (Case does not matter) to select all indexes. 0 will be treated as no selection. Other Flags Attribute indicating extra flags not yet supplied above. If more than one separate with comma. Back Color setWindowbackColor in RGB. Enter value directly or click Button. Suppress drawing window and controls with color by unchecking Menu Item Options/Draw window and controls with color System Color Select from drop down list of all COLOR_ defined within Win32lib. When selected, the choice will generate getSysColor(COLOR_choice) statements in EXW. BTNFACE is the default value and does not override any hard coded value input by User. Icon FileName setIcon file name. Enter file name or click BUTTON to select from Open Dialog. For Window and Icon Classes only except when adding Default ico File Name for FlatToolBar button. Pressing F1 will show the icon. Suppress drawing controls with ico by unchecking MenuItem Options/Draw controls with bitmap and ico. Icon FileNames ListView Ico File Names. Shows drop down list of ico files. Non Editable.Right click to transfer to ListView Explorer window. Hot Icon FName Enter file name or click BUTTON for Open Dialog to select hot ico file for FlatToolBar button. Pressing F2 will show this ico. Suppress drawing controls with ico by unchecking MenuItem Options/Draw controls with bitmap and ico. Dis Icon FName Enter file name or click BUTTON for Open Dialog to select disable ico file for FlatToolBar button. Pressing F3 will show this ico. Suppress drawing controls with ico by unchecking MenuItem Options/Draw controls with bitmap and ico. Bitmap FileName Enter file name or click BUTTON to select from Open Dialog. For Bitmap, TogglePicture and PictureButton Classes only. Suppress drawing controls with ico by unchecking MenuItem Options/Draw controls with bitmap and ico. XPM FileName xpm file name or emulated xpm include file name. Enter file name or click BUTTON to select from Open Dialog. For Toggle Picture and Picture Button Classes only. Suppress drawing controls with ico by unchecking MenuItem Options/Draw controls with bitmap and ico. XPM Member when XPM FileName is an include file, enter the member name of the emulated xpm. Hint Text Text for Hint. Note: Win32lib does not show separate hints for TabItems. Not for ReBarBand control. Hint Font*** Font name for Hints. Enter file name or click BUTTON to select from Font Dialog. For Window Class only. When user has not entered a font, this field will be <Default> for the system default. Hint Font applies to Hints for all controls on the Window. Hint Font Points Points for Hint font above. When using Font Dialog this field is auto filled. Hint Font Italic Toggle True or False if Italic Font. When using Font Dialog and selected, this field is auto filled. Hint Font Bold Toggle True or False if Bold Font. When using Font Dialog and selected, this field is auto filled. Hint Font Underline Toggle True or False if Font Underline. When using Font Dialog and selected, this field is auto filled. Hint Font Stike Toggle True or False if Font Stikeout. When using Font Dialog and selected, this field is auto filled. Font*** Font name for control fonts. Ener file name or click BUTTON to select from Font Dialog. When user has not entered a font, this field will be <Default> for the system default. Not for ReBarBand control. Apparently Win32lib will apply font to all TabItems. If more than one TabItem has a font specified, and they are different, the right most specified font will be used. IDE does not try to draw this correctly. Suppress drawing controls with font by unchecking MenuItem Options/Draw controls with Font. Font Points Points for font above. When using Font Dialog this field is auto filled. Font Italic Toggle True or False if Italic Font. When using Font Dialog and selected, this field is auto filled. Font Bold Toggle True or False if Bold Font. When using Font Dialog and selected, this field is auto filled. Font Underline Toggle True or False if Font Underline. When using Font Dialog and selected, this field is auto filled. Font Strike Toggle True or False if Font Strikeout. When using Font Dialog and selected, this field is auto filled. Font Color For RichEdit Control only. Enter RGB value. May be supplied using Font Dialog or click BUTTON for Color Dialog.
* Use Class drop down to change the class associated with the Tool Box icon to another associated class. See 'Using the Tool Box Icons' section above.** It is recommended that user generate all cells of a Table Control prior to changing individual cell Captions.
*** To return to system font, use the Delete or Backspace key to remove the font name and <Default> will be returned.
(Name), Caption, CX, and CY are derived from a Control List. User may change these values via Menu Configuration/Alter IDE Default Control Settings. The change may be temporary for several controls, the IDE session or Saved for future runs of IDE.
Changing any attribute affects the Design window immediately and is not recoverable except by re-entering. A future release may offer an UnDo feature.
Changing every attribute may not be allowed for some controls.
Some controls default to a specific Style when added to the Design window. Note that the default Style does not contain or_all, parenthesis and brackets.
Style Type contains or_all({entry}), {entry} and entry. Specify which way to format the Style in the EXW or EW output file. Select one of the following: or_all({entry}), {entry} or entry, where entry will be the value coded into the style field. If Style Type is not selected for a Window, {entry} is the default.
Upper Case, Lower Case, Password Char, Read Only and Numeric are only for edit controls. Not all fields are applicable for MleText or RichEdit. MultiLine is for PushButton and ToggleButton only. For RichEdit, H Scroll may be selected. When this flag is picked, WS_HSCROLL is automatically supplied. These styles will be or_all'd with any entries in Other Style.
Limit Text is only for edit controls.
UpDown has an edit control as Buddy. The Buddy is the field that shows the numerical changes as the UpDown is clicked. The Buddy may be identified to Win32Lib via UDS_AUTOBUDDY or setBuddy(). Either method may be used with IDE but to simplify problems using UpDown the default is setBuddy. To facilitate identification of the control that is the Buddy, enter the control's (Name) in Buddy (Name) attribute. When the EXW is generated, the setBuddy statement will be automatically generated for those UpDown controls having supplied "Buddy (Name)" otherwise the user must add UDS_AUTOBUDDY to the UpDown control's " Other Flags." For the counter in the Buddy to increment when up arrow is clicked and decrement when down arrow is clicked, setScrollRange values must be provided. ****When both Min Value and Max Value are zero, the setScrollRange is not created in the output EXW.
Back Color has been added to Properties for Window and other controls that support background color. Click BUTTON will access the Color Dialog. Otherwise the RGB color must be input by user. Default color is ButtonColor for WINDOW and 0 -- no color -- for controls. When the EXW and PRJ files are generated, if Back Color is the value of <Default> for a Window control, the setWindowBackColor statement will not be created and the value in the PRJ file will be 0. For Window Class, System Default property may also be used to further refine Window class. Selecting an entry from the drop down list will produce a getSysColor(COLOR_choice) statement in the EXW program. BTNFACE is the default and does not override any hard coded value input by User.
Caption may specify multiple column heading for ListView. The user must specify quote marks where needed. For example a List View Caption of two columns might be "the heading 1","the heading 2". Quotes may be imbedded within the column name and it would be formatted such: "the heading1 for "things"","the heading 2".
Caption may specify quote marks for PushButton. But no other controls or The Window should contain quote marks in Caption.If the .ico file, .bmp file or xpm file is in the same folder as the resulting EXW program, user may wish to edit Icon FileName and Bitmap FileName to remove drive and parent folder such as C:\euphoria........\xyz.ico to xyz.ico.
Properties supports XPM. There are two types of XPM that IDE can handle. One is a real XPM file such as Close.xpm which has an extension of .xpm and the other is the emulated XPMs such as seen in IDE_xpm.ew include file. (1) When using the real XPM, user adds the XPM file name whatever.xpm via Properties XPM FileName. When EXW is generated IDE adds a canned procedure to convert the XPM file and place onto the button. (2) When using the emulated XPM, user may add XPM include file name, e.g. IDE_xpm.ew, via Menu FILE/Include Module in Project and also in Properties enters the include file name in XPM FileName and indicates the XPM name within the include file in XPM Member. When EXW is generated IDE adds a canned procedure to convert the XPM names and place onto the buttons. If user does not add the include module to IDE, IDE will add it at Menu Generate Program time.
Multiple controls may be selected for changes in Properties. The controls must all be the same class. Click a control and press Shift+S, then select and press Shift+S for every control you wish to mass change. If you change your mind press Shift+A. The next changes made in Properties will apply to all the selected controls. When completed with changes for these controls, press Shift+A to terminate multiple processing. Not for X, Y, Name, Caption (when TabItem) Properties or Window Class.
Associated with Code Editor is a dialog window for selecting the syntax colorization colors, number of columns for tab, number of UnDo allowed and updates for the syntax words by category. Click the 'Tool' bitmap located at the bottom right next to intersection of scroll bars or Menu Item. User may add/remove words, series of words or the complete category.Included with IDE is a program Winlibscan.exw which updates OtherC.ini file, with a collection of Win32lib.ew keywords, to assist the user in upgrading to a new Win32lib.ew release.
Right mouse brings up a popup menu with 'undo/cut/copy/paste/select all' options.
Adding Code To Controls or Module:
Right click, double click a control in the Design window, press hot key, or select a menu item under 'Editors', and the Code Editor Window will appear. If code already exists, selecting from Class Modules in Project View will also open the Code Editor. Clicking a node under Modules will open Code Editor with routines from the included module. To add code for a Menu Item, in Design select the Menu the Menu Item is under and move the mouse down to the Menu Item and release or use Menu Editor and right or double click on the menu item in the bottom box or select from Menu Editor Menu. If a Menu has ! anywhere in its caption, it also may transfer Code Editor but only for the onClick event. Code for PopUps and Timer is done in a similar manner from PopUp Editor and Timer Editor, respectively. Timer Editor will allow only the Window control onTimer event.
User may scroll to selected routines from Module or Control's (General) event via Menu Item ":List Routines". The list box item "All Routines" takes user to the top of the Module or (General) event.
The Code Editor Window has the following fields:
Control Function Control Determines the control that code is being associated. Event Lists all events that can be associated with the control. [At the moment, it simply displays all the events, even if they don't apply to the control.] Module All Included Modules for the Project and files opened during the current editor session.The include module name may also be selected from Project View or Project Module Open in Code Editor. When selected, code is associated with the module instead of control. Edit Displays the code associated with the control/event pair or include module.
Code for Class Modules is temporarily saved internally within IDE when the Control or Event is changed, a different Module is selected, a Module is Opened from Menu Item, 'Run' or 'Temp Run' is requested from Menu or Tool bar or the Code Editor is closed. Module code is not associated with events. An event that has actual control code will be flagged in the event combo box with an asterisk. If code is subsequently removed, so is the asterisk. Events without code are not written to the project file or EXW or EW file. If the event is desired in these files, code a comment. When an event is first presented, a blank line with the cursor, will be inserted after 'procedure......'. Re-selection of the event code will show the cursor positioned at the first line 'procedure ......'.New code for control-event pairs will present a suggested procedure name and final statement. For NEW control-event pairs the initial format will be for setHandler style. If user prefers onXXX style, uncheck the menu item 'Use setHandler' under 'Options' Menu. These may be modified in any way desired except removal. User may replace onXXX with a setHandler statement on previously created control-event code. IDE will not verify accuracy of user modifications of these statements.
Code for Modules is not temporarily saved. It is saved via the Code Editor Module File/Save or SaveAs selection or when switching to a Control or Event selection. NOTE: if a module has an associated PRJ file, modifying the module will not alter the PRJ file. This may present problems when reloading the PRJ file for modifications. A program written by Martin Stachon may facilitate reloading and may be found on Euphoria's Recent Contributions Page.
Options/When SaveAs Module allows adding SaveAs Module file to Included Modules list or asking first. Neither is defaulted. User's selection is saved for next run of IDE.
There is a special event, "(Begin)", that may be used to add comments and/or code prior to all include statements. It acts like "(General)" event. This event is only available for Window class.
There is a special event, "(Intro)", that may be used to add comments and/or code prior to the Window. It acts like "(General)" event. This event is only available for Window class.
There is a special event, "(Final)", which allows user to supply coding AFTER all controls normal event processing. This event is only available for Window class. This event shows right before the normal WinMain(.....) statement in the output EXW or at program end if a .EW program.
NOTE: User may supply a WinMain(.....) statement in the "(Final)" event, in which case IDE does not write the usual WinMain(...) statement. This allows the EXW to begun execution, do some processing and then start Windows via WinMain or use EuCom.
Menu Items 'Find/Replace' allows searching for specified text. Searching begins at the line where the cursor is, either Up or Down as indicated. 'Find' may also be used to locate Control_Event or Project Find Word strings. For these versions of 'Find', a list box contains the Control-Event or modules containing the Find Word string. Selecting one of these transfers the Class Module or module coding to editor.
Menu Item 'Go to line....' will jump to the indicated line in editor. If indicated line is beyond the range of data, a warning message will result. Go to value zero will be ignored.
Menu Item 'Undo' will reverse the last action.
Keyboard Support:
The usual keyboard keys work with the Code Window. Ctrl-Home and Ctrl-End go to the top and bottom of the code. Arrow keys move left, right, up and down. Shift-arrow extends highlighting when selecting text. Page Up and Page Down keys move the editing window up a page and down a page. Backspace removes text.Tab indents 1 line. Ctrl+B will shift multiple selected lines. Ctrl+X, Ctrl+C, Ctrl+V and Ctrl+Z may be used as shortcuts for 'cut', 'copy', 'paste' and UnDo, respectively. Ctrl+D will add comments to line or selected lines. Ctrl+A will select all lines.
F1 when pressed while cursor is within an Euphoria or Win32lib keyword will bring up associated Htm for that keyword.
Mouse Support:
The mouse may be used to select text and position the scrollbars.
Locate Ex.Err Statement
When at all possible, IDE tries to show the procedure generating the ex.err statement in Code Editor. It can not do this when the error is a "create" statement. If the error is associated with a control 'create' statement IDE will change Properties to that control. When the error is in "(General)" event, the entire event is displayed even if the error is in a user written procedure or function within the "(General)" event. If the ex.err refers to an include module, IDE will attempt to locate the error in that module, if the module may be opened and read.
Hints
When keying an Euphoria, Win32lib or module (added to project) global routine, IDE will supply a hint above the current line. The hint will appear as soon as the routine name is completely entered and the following parenthesis keyed. The parenthesis must immediately follow the routine without intervening spaces. As parameters of the routine are keyed, the Hint will jump to the next parameter in its list. When the closing parenthesis is keyed the Hint will be removed. Clicking in the body of Code Editor will also remove the Hint. The Hint may be moved by clicking on the black 'handle' and dragging. Hint will width resize as Editor resizes. When the Hint contains a long list of variables, up and down arrows may be used to scroll or the Hint may be resized.User may select to disable Hints. However, this may be temporarily over ridden if Ctrl+space is pressed. Ctrl+space will also reshow a deleted Hint if Ctrl+space is pressed while cursor is in keyword or after the opening parenthesis.
User may select Hints to appear in Status Bar instead of in body of editor.
Known Problem
Sometimes after ex.err, the error statement is not located properly with the editor.
An Include Module is a module with controls. User indicates prior to Menu SaveAs which file type to use; EXW or EW. This selection is saved in the generated PRJ file. An existing PRJ file that user created while selecting .EW output file type is considered an Include Module.In addition, Menu Generate Tools\Program Information allows electing to include the statements 'Include Win32Lib.ew' and 'without warning' in the EW output file. The default is EXW extension and to include the statements. These are reset to defaults when 'New Project' is chosen from the File Menu. User may elect to suppress 'include Win32lib.ew' in an include file. User may specify the name to use instead of 'Win32lib.ew' for both include files or .exw files. These selections are saved in PRJ file.
Normally 'include Win32Lib.ew' would be used when Menu Generate Program/Run to check for errors. If the statement is not desired in the EW file after checking for errors, simply uncheck the item and select 'Save Project' from the File Menu. If Window1 has been assigned a parent that is not known, the generated EW file will fail when Menu Generate Program.
Anyone who would like to contribute a demo PRJ file that might be useful to other users of IDE, please submit to Judith Evans at e-mail address below.Demos are found in IDE_Demos.zip on IDE's home page http://user.txcyber.com/~camping/judith.html
- Puzzle.prj which demos Table control. Contributed by Roland Stowasser.
- Calculat.prj which demos Table controls and include module. Contributed by Roland Stowasser.
- DataTable1 which uses multiple controls within cells with different sizes. Contributed by Roland Stowasser.
- HelpFileManager by Virtual B and Roland Stowasser which was used for the Help System in IDE.
- MBox.prj, a Message Box Generator, by Roland Stowasser.
What Is Requested For Next Releases
Ability to dock Properties and Tool Box on left or right in IDE, continuation of editor improvements, ability to use plug-ins to modify the code in the editor or provide new IDE capabilities, make the editor event combo correspond to the control such that there is not anything there that doesn't work for that control, grid pseudo control or EuCom Spreadsheet, support of Custom Controls and more......Anyone interested in submitting changes/enhancements to IDE or to request a new feature please contact Judith Evans via the Euphoria Topica list or e-mail address.
E-Mail address: camping@txcyber.com
Specifics Pertaining To Certain Controls:
To add an additional Tab Item, select the icon from the Tool Box by clicking on it, and then click the existing Tab Control or Tab Item in the Design Window. Be sure to click within the Tab Control or Tab Item; don't click on the border.Use the Tab Item combo box next to the Tab Item icon in the Tool Box to select between the Tab Items when adding controls to a Tab Item, deleting a Tab Item or right clicking for the Code Window. User may also click on the "tab" of the Tab Item, is it shows, to select the Tab Item or use Properties dropdown or ProjectView..
When adding additional Tab Items, the new one will be immediately sized to match existing ones. Tab Items on different Tab Controls or Windows may have different sizes. A visual only tab is added to the top of the Tab Item which will change as new Tab Items are added or selected from the Tab Item combo box. If there are more Tab Items than can be accommodated by the size of the Tab Control, small left and right arrows will show next to the last tab that fits within the Tab Control. Dragging the Tab Control larger will automatically show tabs that fit.
Moving the Tab Item moves the Tab Control and all Tab Items. Dragging the resize grab will drag and resize all the Tab Items on the Tab Control. Use the Ctrl key in addition to the mouse to move only the currently selected Tab Item.
Basically the x, y, cx, and cy of Tab Items for a Tab Control on a window are kept the same. Moving/dragging a Tab Item on a Tab Control window does not affect Tab Items on other Tab Controls.
All Tab Items on a Tab Control on a window occupy the same physical location on the window so the IDE simply does not draw the Tab Item and associated controls unless it is an active one. The combo box in the Main Window Tool Bar indicates the currently active Tab Item but each Tab Control retains its own active Tab Item.
A Tab Item must not be moved or added to another control besides a Tab Control or a Tab Item on another Tab Control. When moving a Tab Item be sure to lift up inside the Tab Control or Tab Item.
A Tab Control must not be moved or added to another control besides a Tab Item or The Window. Tab Controls and Tab Items with Tab Controls and Tab Items may be stacked to any depth desired.
Return to List or Return to Table of Contents
The Calendar control appears to be a specific CX, CY and the IDE shows it at 250, 200 and it can not be resized via the Properties window. Resizing from the Design pad is also prevented.
Return to List or Return to Table of Contents
UpDown has an edit control as Buddy. The Buddy is the field that shows the numerical changes as the UpDown is clicked. The Buddy may be identified to Win32Lib via UDS_AUTOBUDDY or setBuddy(). Either method may be used with IDE but to simplify problems using UpDown the default is setBuddy. To facilitate identification of the control that is the Buddy, enter the control's (Name). When the EXW is generated, the setBuddy statement will be automatically generated for those UpDown controls having supplied "Buddy (Name)" otherwise the user must add UDS_AUTOBUDDY to the UpDown control's " Other Flags." The companion Buddy control must be added just prior to adding the UpDown control. This is because IDE builds the window controls in the order they are added to the Design pad, not in x,y position order. Min and Max values may be entered for the UpDown counter. When either value is entered in Properties, IDE generates a setScrollRange statement containing the values.
Return to List or Return to Table of Contents
Controls added to the Status Bar control will be auto-sized. When the Design Window is resized, the Status Bar is automatically resized.
Status Bar may not be copied.
Return to List or Return to Table of Contents
Controls dropped on the Tool Bar are auto positioned and sized. If there is not enough room on the Tool Bar to accommodate the added control, an error message will be displayed. A solution is to use the Tool Bar grab handles and add a new 'row' to the Tool Bar or change the Height Properties value. Drag the grab handle just a bit under the bottom of the Tool Bar and it will add the new 'row' with the correct depth and snap into place. Then the new control may be added.
If the control dropped on the Tool Bar is a Push Button, it will be converted to Picture Button and sized 4 pixels smaller than the ToolBar. It can be resized.
When moving a control in the ToolBar to a new location, drop it a bit below the row you want it in. It will pop into place.
If you want to move a control between other controls, simply move it where it overlaps BOTH controls and a bit below the top of them. When you lift up, the controls are repositioned.
Resizing Design Window will automatically adjust Tool Bar controls. This means they may move from row to row within the Tool Bar. To keep a control "stuck" on a row but relative to other controls, use the Tool Spacer Controls dropped onto the Tool Bar may be a maximum of 30 pixels CY, and Y is the top of the Tool Bar row. If you want to reposition within the CY, you may, but any resizing of the Design Window or moving/resizing may negate your change.
Tool Bar may not be copied.
Return to List or Return to Table of Contents
Tool Spacer, may be used to separate controls in the Tool Bar. Tool Spacer grab handle is very hard to grip because the Tool Spacer is such a narrow control. Tool Spacer is also difficult to right click for Properties Window for the same reason. However, user may utilize the Properties Control dropdown above the (Name) Property.
ToolSpacer is used only in Design Window and is not carried to the EXW file. It is assigned a 'class' of "None" when viewing in the Properties Window.
Return to List or Return to Table of Contents
Table Pseudo Control may be used to create a repeating set of controls on an optional background. The end result is a column and row appearance rather like a grid with the same type of controls in each cell. First the Table control is selected and placed on the Form. The actual control is a LText so that a heading may be supplied. Use Properties to select an optional color background for the Table. Otherwise the background will be the default Window background. If a background is not desired, in Properties remove contents of Caption for the Table and do not supply Color. Cell 1 is then designed. More than one control may be in a Cell and they may be nested, side to side or under one another. However Group, TabControl, TabItem or another Table controls may not presently be added to Table. User has complete freedom designing the Cell. Use Properties to select color and font for the Cell. It is recommended that user not change Captions until all cells are built. Once Cell 1 is designed, it may be replicated by right clicking with the mouse on the Table and selecting Table Specs. Enter the number of columns and rows and any spaces between. Cell 1 CX and CY is replicated. Properties items such as Color and Font are not. If Font is entered for Table it will be used for the Cells as well but may be overridden individually for each Cell. Once built no more controls may be added to Table unless 'rows' and 'cols' are set back to 1 in Table Specs. Change the location of the controls in Cell 1 and all Cells may be changed relatively. When the EXW file is written, each Cell is created unless the user selects to have the Table treated as an array. In that case, only the Table LText background is created and an array named the Table NameArray. Accessing a Table Array must be by indexing NameArray. When Table is treated as an array, user may still use Code Editor with the control names and IDE attempts to translate all occurrences of the control name to its array representation; except in the statements 'procedure xyz()', 'call_proc( xyz,{}) or xyz() since these statement will not accept indexing. User may change row, column, width and height of any cell via Properties but it is highly recommended that the Table Specs not be selected again after this is done since all changes to cells via Table Specs is relative to cell1.
Return to List or Return to Table of Contents
ReBar and ReBarBand control may be used instead of Tool Bar or Flat Tool Bar. User must add ReBar before adding ReBarBand. ReBarBand is 4 pixels smaller than the ReBar control; 2 pixels top and bottom and offset from the left edge of ReBar by 5 pixels. Only one ReBar is allowed per Window but multiple ReBarBands are allowed and may be on the same or subsequent band 'rows'. When user changes Properties Flags/RBBS_BREAK to False, the ReBarBand is on the same 'row' as the prior ReBarBand. True is the default. Only one control may be added to ReBarBand unless the control is added to a Group, ToolBar or FlatToolBar. Control in ReBarBand is offset from the ReBarBand Caption by 5 pixels. The Height of ReBarBand is determined by the height of any controls within and all ReBarBands are the same Height. When controls are dropped or moved to ReBarBand, IDE makes the sizing adjustments. When ReBarBand Caption is removed, the control within is offset from the beginning of the band by 5 pixels. ReBarBand Font is the Font of ReBar and all ReBarBands are the same Font.
It has been very difficult to draw the ReBar and ReBarBand with any accuracy since they are adjusted during EXW run. Therefore controls following the Rebar and ReBarBand may not be exactly where user desires.
Return to List or Return to Table of Contents
Flat Tool Bar control may be used instead of Tool Bar or ReBar. PushButtons placed on Flat Tool Bar require three ico files to provide the default, hot and disabled icon. Default is always necessary and will be used when hot and/or disabled ico file names are not specified. When user has not specified in Properties the default ico file name, a PushButton only is passed to the EXW. IDE supplies the extractIcon and addIcon statements. A special button, Sep Button, supplies a separation between adjacent PushButtons. IDE temporarily changes the Class to PictureButton so that icons may be specified and changes back to PushButton for EXW run. User may rotate between the ico files shown in Design by pressing F1, F2 and F3.
Return to List or Return to Table of Contents
Timer control is a pseudo control for setTimer and killTimer statements and as a vehicle for onTimer[timerId] events. Timer controls are not placed on the Design Form when selected from the Tool Box; instead the Timer Editor Window is opened. Timer Editor Window may also be opened from IDE 'Editors.'
The Timer Editor allows for adding and deleting Timers. Timers are always associated with the Window control but may be turned on and off for any control-onEvent pair. The Editor allows user to select these pairings and will insert the setTimer and killTimer statements in any routines the user adds via Code Editor or will create these control-onEvent routines if the user has not coded them. These routines, generated by IDE, are not reflected in the Code Editor. If user elects not to specify the set and/or kill control-onEvent, then the user must code these statements himself.
Timer Editor also includes a field to specify the time interval for the setTimer statement generated by IDE.
The minimum amount of information required to add a Timer control is the Timer Name which is assigned when user clicks the 'Add' button.