Other contributors are Elliott S. de Andrade, Mike Anon, Mira Balikova, Travis W. Beaty, Brian Broker, Tommy Carlier, Chris Cuvier, CoJaBo, David Cuny, Rajesh Deshpande, Andy Drummond, Euman, Wolf Fritz, Josef Jindra, CK Lester, Matt Lewis, Dan Moyer, C A Newbould, Derek Parnell, Don Phillips, Tone Skoda, Martin Stachon, Mario Steele, Roland Stowasser, Ward Turner, Virtual B, Craig Welch and Sascha Zindel.
C A Newbould made improvements to sections "What is This" and "Nice include files for use with IDE."
If you would like to be a pre-release tester of IDE, contact me and I will gratefully add you to the list.
Suggestions for improvements are always welcome and anyone who would like to contribute code is welcome to do so.
Upon IDE crash please notify Judith Evans via the EuForum or e-mail giving the nature of what you were doing and the ex.err message, if available. Also helpful is the version of Windows(tm) used, Win32lib version, Euphoria version and IDE version.
This is an Integrated Development Environment for writing windows' (GUI) programs using Euphoria and the Win32lib library, on a machine using Microsoft Windows.It works from a Design Window (in other IDEs this might be called a Form Editor) in which you can create one or more windows. You can add to a window a wide range of controls (in other IDEs these might be called widgets). As you build up the design, the IDE writes, in the background, the Euphoria instructions which create the controls and relate them together.
Each element of the design can have Euphoria code attached to it. Creating and editing this code can all be done without leaving the IDE. Central to GUI programming is the association of code to events. All you have to do is double-click on the control to open up the editor for the entry of the code for the routine you want to use when the particular event occurs.
The IDE handles all the code (including those parts which it does for you) within a Project. Projects can hold not only the file holding your code (which will have an 'exw' file type) but also can store module references ('include' files, with either 'e' or 'ew' extensions).
When you have a working design and want to test it you can do this without leaving the IDE's environment.
Notes about this release This release requires Win32lib v0.70.4a or later.
v1.0.4
Bugs Fixed:Caption for RichEdit wasn't being drawn in Design. setIndex for RichEdit control was 1 letter too short when specifing a range to select. This is a difference between IDEWin32lib and Win32lib and showed up when setting RichEdit caption's font in Design. Using &P in both Project and GenerateProgram captions prevented Alt key to work with either. Changed &Project to P&roject. When showing the Win32lib version in Help/About needed to add a space between the digits and date. Code Editor opened at different screen locations when in Configurations option "Closed" was checked but opened properly when not checked. Fixed bug in find/replace where "find/replace" and "find/replace all" changes were lost when project saved immediately after using them. Launch Pass File will now pass file as .exw or .ew depending what has been set up in Generate Tools/Program Information. Corrected error when user changes Timer Name. Fixed crash when attempting to change ReBar font. When changing HintFontName, Properties was still showing old HintFontName. Manage Include Statements always saved even when user clicked Cancel button. There is a problem in Menu, Popup and Timer editors where the use of destroy(a window) crashes. The destroy statement has been removed. Fixed problem with deleting menu from class modules when Name changed or menu/menuitem deleted Fixed problem showing menuitems under TheMenus:window when one of their Name is subset of another. For example if MenuSaveAs is before MenuSave then MenuSaveAs would not show. Fixed problem where setTimer and killTimer statements were not written for Code Editor events which did not have procedure/end procedure unless in General event. Properties showed Position Caption and in +Control Styles showed Caption Position for colored buttons. Only one worked so the other has been removed. Fixed bug in MenuRun and MenuTempRun where ex.err might be in wrong folder if user had changed current directory from the generated exw. Fixed problem with Visual ListViewStyles Explorer caused by using destroy() without validId(). Fixed problem with Visual ListViewStyles Explorer option "Single Click Activate" not being remembered. Improvements and Enhancements:
User may check setCreateFont attribute in Properties for Window class control and enter Font data to create all controls with this font. If a non Window class control has Font data in Properties, then that control will use the Font data specified for that control. Added a new icon for ColoredButton in ToolKit. This icon sets the internal property to treat as a colored button and when Properties are viewed the colored button ones are present. When PushButton icon is selected, the internal property is not set and colored button Properties are not visible. User may change button from a colored button to a normal button and vice-versa via "Color Button?" checkbox after "Class" but both Properties are internally saved so user may change his mind and switch back without loss of data. If control is a colored button user code is parsed and revelent win32lib routine names are changed to coloredbutton.ew ones in the generated exw. allow user to indicate less than 4 grid size in configurations. 4 will remain the default. When passing IDEPassFile.exw to editor of choice, the file will be placed in the project folder. If there is no project folder then the file will be placed in IDE's folder. Changed the tab order in Find. Removed "Direction" group control but retained the "Up" and "Down" radio controls. Find/Replace may be restricted to the current procedure or function. Check the option "Restrict to current routine" to activate. Win32libScan has been rewritten to parse the Win32lib Include folder and find global routine names for coloration in Code Editor and editor.exw. FontName, FontSize, HintFontName and HintFontSize are all initialized to the win32lib default font or size when a control or window is added to Design instead of <Default> Removed line length limitation when generating the exw. Moved some colored button cells under controlStyles. Colored Button routine names are now colorized in Code Editor. But clicking the name does not jump to colored button docs. Instead use new MenuItem under Help to access coloredbuttons.html. Added location of coloredbutton.htm in Configurations. Added ColoredButtons to Help Menu in Code Editor There has been an entry in Project file named "LastEditorEvent" and newly added is "LastEditorNameEvent". Most users do not know the correlation between event number and the w32H name. For most IDE windows: Adjustments to controls placement and size for better language fit. ex.err files now go into the project folder. If there is not a project folder, the ex.err goes into the IDE folder. If IDE is started more than once and user has specified one instance of IDE, a message box will be provided telling user only one instance is allowed. Only one instance of Visual ListView Styles Explorer is allowed. ListView Properties will show the number of columns specified in Visual ListView Styles Explorer. If an empty caption for a column is desired, in Visual Listview Styles Explorer Column Data enter one or more spaces in Title, enter column width if desired and click Add. ListView Test window will now show columns for all user's Headers, not just two. Thanks to Mark Young for pointing me in the right direction. Some projects are so complex that an ex.err file is not easily located so crash_file may be optionally added at the top of the generated exw which puts the ex.err in the project path. Once your project is error free you might wish to eliminate the crash_file statement expecially if you will be distributing to other people. You choose to use crash_file from Menu Generate Tools\Program Information. New Features:
Added color Properties for MonthControl. In order to keep the IDE folder tidy, I now place backups in a backup folder within the IDE folder. Configurations shows the folder name as 'Backups' but user may change to any folder name desired. Do not enter the folder name's path. If the folder does not exist it will be created. A new Configuration's Tab, "Backups", now holds configuration items related to backing up the project. User might wish to move existing backups to the new folder. Code Editor uses a new custom control by Andy Drummond, Formatted List Boxes (FList), to manage the event dropdown. This serves as a demo of using Flist as well as some IDE eye candy. Events with user code will be colored RED in the events dropdown. Last selected event is centered in the list of events so user has the most possible events in sight to choose from without scrolling. Other:
Language translation changes: changed Msg 10,120, 58; added Text 1198-1212; changed Text 872, 893, 894, 1016, 1126, 1149, 1162, 1171; removed Text 826, 827,866, 869, 870 Changed words continue, replace, trim, entry, loop and store which conflict with Euphoria 4.0 thanks to Roland Stowasser. When storing global routine names, IDE now also looks for export keyword.
I wish to thank everyone who offered suggestions and improvements and those who gave of their time to help test this version.
Nice include files to use with IDE
The following is a list of items which are connected, directly or indirectly, with this IDE. Some, or all, may be of interest. They are all entries in Euphoria's Archive.The links below will take you directly to the file download. If you just want further information then put the highlighted text of the entry in the search box on the Euphoria Archive page.
Auto-Scale Controls by Mr. Trick. Automatically sizes controls to the parent window. Design your layout in the IDE, then Autosize to make all your controls move smoothly to occupy all the window. Make Project File by Martin Stachon. Converts an exw to IDE 'prj' file format. This is now a bit outdated but will still do a lot of the conversion for you. onXXX to setHandler IDE Project Convert by Andy Drummond. Old IDE projects used the onXXX event handler system, which is rendered obsolete in favour of the setHandler system. This program will convert your old IDE projects to the new system leaving a minimum of necessary editing to make it work. EuGrid by Phil Russell. An extension to Win32Lib, providing support for grid controls. System Tray Icons by Thomas Parslow. An include file for managing system tray (taskbar notification area) icons. Alpha Blending by Thomas Parslow. An include file for making semi-transparent windows with Windows Alpha Blending. ColoredButtons by Judith Evans. Add the feature Microsoft forgot! This very easy to use include file will add and manage colored buttons; color, press color, caption color, press caption color, graphics, font, hints and more. All button classes supported. Translation Helper for Enhanced IDE by Roland Stowasser. A handy tool for language translators to keep language files updated.
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.70.4a or later. Menu Help/About shows your version of win32lib.ew.
If you are downloading into a new folder and you have used IDE before, please copy IDE.cfg, IDE_HotKey.dat, Launch.cfg, Other.ini, SynFont2.ini and SynMain2.ini from your prior folder. If you do not do this your Configuration and Code Editor options will be missing, any hot keys you registered and any programs started by Launch will be missing.
Standalone editor, editor.exw, should be kept in 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.
Standalone editor no longer requires the latest ide.cfg file. You will get an error message that ide.cfg is not current only when new Configurations entries have been added to IDE which affect Standalone editor.
Standalone editor now works with .ex files.
Credits:
- Change of IDE.cfg requirements was suggested by Andy Drummond.
- Les Rogers discovered differences in the way editor worked between Menu Run and Launch\Run.
Win XP: After adding an icon to FlatToolBar button you can not doubleclick to transfer to Code Editor.
IDE may be started from a Desktop shortcut, Start\Run, clicking IDE.exe (or IDE.exw if you use the source) in Windows Explorer or, after you have saved a project, by clicking the project file in Windows Explorer. When clicking the project file be sure that file type associations have been added to Window(tm) File Types.
Splash Screen
While IDE activates a splash window may appear depending upon the speed of your computer. Moving the mouse across will close the Splash Screen. The Splash Screen will show the progress steps of opening IDE. Some computers may load IDE faster than the Splash Screen can show the steps.
Credits:
- Splash Window was contributed by Mario Steele.
- Elliott S. de Andrade added a text area to show processing steps of loading to Spash Window.
IDE Main Window
This window contains Menu bar, Tool bar, Form Design with initial Window control, Properties, Project View and Icon Tool Box. A Code Editor, Menu Editor, Popup Editor and Timer Editor are associated with the Main Window.
- Project
- New
Starts a new project. If there is an unsaved project active, you will be asked to save. The Form Design window is then cleared.- Open
Presents Windows(tm) Open File Dialog.- Save
Presents Windows(tm) Save File Dialog. Saves selections from Configurations, Code Editor and IDE Option Menues. Current FileName will be added to Recent Project List.- SaveAs
Presents Windows(tm) Save As File Dialog. Saves selections from Configurations, Code Editor and IDE Option Menues. New FileName will be added to Recent Project List.- Exit
Exits IDE. Saves selections from Configurations, Code Editor and IDE Option Menues.
If there is an unsaved project you will be asked to save.- Clear Recent Project List
Clears the list below- The Recent Project List
- View
- Project View
If Project View is docked, or undocked and open, contents are refreshed. When undocked the window is moved forward into view if hidden behind another window. If closed Project View is reopened.- Properties
If Properties is docked, or undocked and open, contents are refreshed. When undocked the window is moved forward into view if hidden behind another window. If closed Properties is reopened.- Icon Tool Box
If Icon Tool Box is docked, or undocked and open, nothing happens. When undocked the window is moved forward into view if hidden behind another window. If closed Icon Tool Box is reopened.- Editors
- Code Editor
Opens the Code Editor.- Menu Editor
Opens the Menu Editor.- Popup Editor
Opens the Popup Editor.- Timer Editor
Opens the Timer Editor.- Xpmmer
Opens the Icon Editor.- Edit
- Control Action Undo
Undo last control add, move, copy, delete in Form Design. Undo does not work across Windows in the project.- New Window
Saves the layout for the existing window and clears Form Design. See Adding An Additional Window.- Delete Active Window
Removes the active window and controls from the project.- New Controls Layer
Adds a new control Layer Tab. The Tab will positioned behind the last active Layer. See Using Layered Controls- All controls in active layer may use setLayer with the exception of controls in EuGrid.
When you select this menu item, you are indicating each control added to this layer will be auto-selected for setLayer. setLayerActive and setLayerEnable are routines in the generated EXW which work only on those controls which have 'may use setlayer' checked in Properties. This menu item ensures all controls have 'may use setlayer' checked with the exception of controls in EuGrid.- Rename Layer
Give your own unique name to a Layer.- Delete active Layer
Removes a Layer and all controls in it. See Using Layered Controls- Form Lock: No Control Move
Sometimes when you click a control in order to check its Properties, the mouse may detect a small movement and move the control which might result in a parenting change. To prevent this from happening select this menu item once your controls are placed as desired. You may cleck and uncheck this item as many times as you wish as you work with your controls. You may also select a control from Properties or Project View.- Initial List for List, Combo
Opens the Initial List for List and Combo controls. You may add contents to List and Combo.- Create Message Box
Opens the Create Message Box Utility- Setup Systray for current Window
Opens the Systray Setup Window- Visual Window Styles Explorer
Opens Window Styles Explorer utility- Visual List View Styles Explorer
Opens Visual List View Styles Explorer utility- Select from Property Templates
Opens Select From Property Templates Window- Options
- Icon Behavior
- Check Off\On toggle
- Instructions
- Ruler Tool
- Open Ruler Tool
Opens the Ruler Measuring Tool which floats on top of the Screen.- Information Ruler Tool
see Ruler.chm located in the \Docs folder- Grid Hide
Hide the grid behind controls in Form Design. Grid specifications are found in Configure IDE .- Grid Disable
When moving and sizing controls, the control placement and dimensions are adjusted to the next 'snap size' which is 4 pixels by default but you may change this value in Configure IDE . You may elect to turn this off by this option.- Undock Form
Allows Form Design Window to move freely about the Main Window.- Undock Properties
Allows Property Window to move freely about the Main Window.- Undock Project View
Allows Project View Window to move freely about the Main Window.- Undock Icon Tool Box
Allows Icon Tool Box Window to move freely about the Main Window.- Draw windows and controls with color
If you have used the 'color' attribute in Properties and want to see how it appears without running the EXW then check this feature.- Draw controls with Font
If you have used the 'font' attribute in Properties and want to see how it appears without running the EXW then check this feature.- Draw controls with Bitmap, Ico, Xpm
If you have added Bitmap, Icon or Xpm to a control and wish to see the control drawn with it, check this feature.- Configure IDE
Change some features of IDE to your needs:
- General Information About IDE
- Describe How Major Windows Open
- Enter Key Processing For Property
- Documentation Location
- Register Additional Styles
- Design Grid Appearance
- Values Used To Create A New Control
Code Editor has its own configuration. See Using Code Editor .
- Generate Tools
Several tools may be used to provide information to the generated EXW- Generate Program
- Temporary Run Project/Include
- Rules
Established what IDE should do with the temporary file created by a Temporary Run- Temp Run
Proceed to making a Temporary Run, See Creating an EXW file for more information- Run Project/Include
If you have not saved your project then Run Project will be a Temporary Run. See Creating an EXW file for more information- Bind Project/Include
You may bind your project from within IDE- Launch
- Instead of using Code Editor pass controls and routines to editor of your choice
- Run ...
Opens Windows(tm) Open File Dialog for you to select a program to execute.- Edit Launcher
Opens the Launcher Edit Window for setting up programs under this Menu Item.- List of programs set up by Edit Launcher
- Help
- Contents
Opens IDE.htm which you have previously located for IDE in Configurations .- Keys
Lists the hotkeys you may use in IDE- About
Opens About
- New Project
- Open Project
- Save Project
- SaveAs Project
- Control Undo
- Configurations
- Delete Active Window
- Run
- Index Copy Active
- Drop Icon Multiple Times
- Active Window Combo
- Active TabItem Combo
Credits:
- Roland Stowasser supplied a fix to keep Tool Bar and Tool Box icons from disappearing from buttons.
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. One Tab Item 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. The other Tab Item of Properties is a list of Events for the control. Events with code are flagged.
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.
- Mario Steel provided useful information for undocking and changing parent window.
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.You may elect to start IDE with or without Project View. See Menu Options/Configure IDE.
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.
- Mario Steel provided useful information for undocking and changing parent window.
How Property and Project View Interact
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 Form Design, Form Design will move out of the way. Form Design may be resized in width as Property or Project View expand and contract in width. A docked Design Window when maximized will not cover docked Properties or Project View.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.
Form Design .
This is a window with a grid, scroll bars, 'Layer 0' Tab and the first Window for the project, for example, Window1. Window1 is a view of the window that the end user will interact with. Controls can be added to it using the Tool Box icons. The Grid may be hidden, disabled or drawn with different colors and lines/dots. See Configurations. Controls may be added to several control layers.. Form Design may be undocked and moved any where within the Main Window. An undocked Design Window when maximized will cover full screen See Using The Design Window for a general overview of using Form Design.
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.
- Derek Parnell and Dan Moyer provided ideas for Layering
- Mario Steel provided useful information for undocking and changing parent window.
- Sascha Zindel suggested moving Form Design out the way of Property or Project View width expansion.
Icon 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. Icon Behavior .The tiny button in the upper right corner undocks and redocks Tool Box. 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.
The ? Button left of the undock button will open the IDE Docs for information about various controls.
Credits:
- Most Icons for Tool Box were obtained from David Cuny or Thomas C. Janes.
- 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. You may select to automatically add the SaveAs file name to Generate Tools/Manage Include Statements and Code Editor's Module combo or be asked first. Your selection, if any, is saved for next run of IDE.A stand alone editor, editor.exw, is provided as a companion to Code Editor. Multiple instances of editor.exw are permitted. Code from editor.exw is not incorporated into IDE except through copy/paste. Further enhancements are planned for this editor. See Using Code 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.
- Brian Broker improved syntax editor for standard behavior.
- Mario Steele suggested adding SaveAs module to the project and the third component of combos for code selection.
- Craig Welch suggested Mouse left double click to select and highlight a word.
Return to Table of Contents
Menu Editor
Menu Editor is used to design Menu and Menu Items. In the Caption use the & symbol to underline the following letter in the generated exw. You may use \t to right align portions of the Menu Item text and ! to treat a Menu as a command button. You may press Shift+Enter key while in either Caption or Name to create a new Menu. You may press Enter key while in either Caption or Name to create a new MenuItem. Pressing Enter or Tab key after changing Name to a new Name will not create new entries but will instead check for changes of Name in code data. You can double click a selected entry and be transferred to Code Editor w32HClick event. You can design more than Menu and MenuItem; you can design Menus under MenuItems and their MenuItems down three levels. If Menu Editor puts error messages in the list you must click the error line to move the entry back up into the Title and Name fields at the top of Menu Editor where you can correct the error.
Credits:
- Menu Editor has been modified from its original design by Roland Stowasser and Martin Stachon.
- Enter key for creating entries was suggested by Greg Haberek.
Return to Table of Contents
Popup Editor
Editor for designing right click PopUps. Works similarily to Menu Editor.Using the popup in your exw is simple. Write a w32HMouse event for the control or window using the popup. For example, if your high order popup entry is Popup_101 and the control using the popup is YourControl you would write something like this:
procedure onMouse_YourControl(integer self, integer event, sequence params)
if params[1]=RightDown then
popup(Popup_101, params[2], params[3])
end if
end procedure
setHandler(YourControl, w32HMouse, routine_id("onMouse_YourControl"))You might need to adjust params[2] and params[3] if the control clicked is not Window class.
Use normal w32HClick routines for PopupItems.Return to Table of Contents
Timer Editor
Editor for pseudo control Timer. Works similarily to Menu Editor.Return to Table of Contents
Icon Editor
XPMmer is a helper Tool to design graphics for PictureButton, TogglePicture and Bitmap class controls. See the Help information within XPMmer for detailed information. Note that the Help information was written for the stand alone Icon Editor (offered on Euphoria's Recent Contributions Page by Andy Drummond) and some features are not offered through the IDE version.XPMmer may also be accessed from Properties for the above class of controls.
"XPMmer XPM" Property cell allows you to design an icon for the control.
"XPMmer Disable XPM" Property cell will allow you to design and create a disabled icon for the control. This property causes a duplicate button be createEx in the generated exw with the disable icon. This control is named the same as the original button control with "D" added. For example if your original button is PushButton2 the generated control is PushButton2D. The disable icon has no setHandler events. You can switch between the two icons in Design via F1 and F2 when the control is selected. If there has not been a disabled icon created, you will see the enabled icon when pressing F2.If you have more than one control with icon and disable icon, using F1 and F2 has the same action for them all. In other words if you press F2 on one of the controls and then select another and it has a disabled icon, that icon will show even thou you had not pressed either F1 or F2 for this control.The generated disable button will be setVisible to false when the exw opens. You control switching the icons by pairs of setVisible statements, set one control True and one False, in the exw when needed. Do not use setEnable of false on either control or your icon may be grayed out. This feature is only available via Properties. Using Menu Editors "Icon Editor" will not create the disable icon.
You can copy XPMmer XPM Object to XPMmer Disable XPM Object on the same control from right click in Object under XPMmer XPM and selecting "Copy to XPMmer Disable XPM" and vice-versa.
You can copy an XPMmer icon to another PictureButton, TogglePicture or Bitmap control. The method is to select in Design the control holding the icon you wish to copy. In Properties select 'XPMmer XPM' or 'XPMmer Disabled XPM' (the one you want to copy) which will open the icon in XPMmer. Make your changes, if any, to the icon showing in the grid. When you are satisfied with the icon, move XPMmer out of the way or Minimize and select the control in Design to which you want the icon copied. Restore XPMmer and exit XPMmer which transfers the icon to the copy-to control. If you prefer you can copy the icon as is and reselect the copy-to control and modify the icon via XPMmer and exit XPMmer.
Credits:
XPMmer was written by Andy Drummond. Andy Drummond suggested the disabled icon. Return to Table of Contents
Message Box Generator
This selection from Menu Edit/Create Message Box allows you to create a Message Box while using IDE and add to Code Editor via Window(tm) 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 you may then paste into Code Editor.
Credits:
- This module was contributed by Roland Stowasser.
Return to Table of Contents
Setup Systray Data
This selection from Menu Edit/Setup Systray allows you to indicate the tray icon,tip text, and button up and down routines. You must have systray.ew on your system in Euphoria\include, your EuInc folder or your project folder and add to Manage Include Statements before F5/F6.Return to Table of Contents
Visual Windows Styles Explorer
This window allows you to try various styles, extended styles and CS_NOCLOSE for window control and transfer the selection to Properties.Special attention should be paid to Child Window. Some selections will produce Class Default style changes and if the Style is modified after using Visual Styles Explorer that field in Properties should be examined. Also remember that following Windows will be using the same styles as changed by Class Defaults and if they are not correct then they may need a Class Default with WS_SYSMENU,WS_MINIMIZEBOX,WS_MAXIMIZEBOX if TitleBar with full system buttons is desired.
Select from Menu Edit or right click on current window in Design.
Credits:
- This module was contributed by Don Phillips.
Return to Table of Contents
Visual ListView Styles Explorer
This series of windows allows you 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. You may also right click on ListView control to obtain Visual ListView Styles Explorer."Fit to Data" means the longest text entry in the column determines the column Header width while "Fit To Data+Header" means the longest of the text entries in the column or the Header determines the column Header width.
Credits:
- The original author is unknown.
Return to Table of Contents
Initial Values for List and Combo controls
This window, selected from Menu Edit/Initial Value for List and Combo or right click Properties/<LIST>, allows you to enter initial values for List and Combo Class controls.Return to Table of Contents
Manage Property Templates allows you to enter data for window or controls and replaces "Register Styles" and "Select From Styles." This feature simply allows you to save keying by adding data you might need for a Property attribute. Data is entered and associated to a unique Key Name. You may add and remove the unique key names and associated data. If "Data" contains several attributes, separate with comma. You may change the Data for a key name. If your data is simple you may use the data value as the key name and IDE will use it instead of the contents of "Data." Selected data is added to the currently active attribute for the currently selected control. Manage Property Templates is pre-loaded with key names LBS_NOINTEGRALHEIGHT and PBS_VERTICAL. Use Menu Edit/Select From Property Templates to add selected data to Properties or right click in selected attribute cell.
Credits:
- Sascha Zindel recommended Property Templates.
Return to Table of Contents
Select From Property Templates
If you have used Manage Property Templates and added data you might use in projects, then you may use Select From Property Templates to add data to a control Properties. IDE does not validate your selection.Return to Table of Contents
Your selected options from the below configurations are modifiable and may be saved for future runs of IDE.
General Information
- 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.
- Define Project Type As
The Define Project File Type option allows you to select the three-character file type IDE will use when reading and writing the project file. This applies to all projects. 'prj' is the default.- Language Preference
All language translations that have been downloaded by you and placed into the Language sub folder will appear in the combo and you may select the one you prefer. Never remove English.lng from Language folder.- Start IDE with last opened or saved project
Check if desired. This implies that the project has been saved. Opening with last project is bypassed if you have not saved a project or if you start IDE from a filetype association such as from Windows Explorer.- Never index when copy a control
There is a feature in IDE to create controls that are indexed to other controls. So when you copy a control a question is asked if you want to index the new control to the one copied from. Some find this particularily annoying and if you do too then check this option.- Backup Project before save
Before the project is saved a backup file projectname.bak is automatically set in the SaveAs dialog. Change the filename as desired. Press the Save button to continue or the Cancel button to not write the file. Uncheck this menu item to never write the backup file. If you never want to change the filename or skip the backup then check "Re-use backup filename" next to this option.- Backup Project after MenuRun if no ex.err or crash file
When checked this item indicates after MenuRun (F5), the project was previously saved, and no ex.err that a backup file projectname.AfterSave.bak be written via the SaveAs dialog. Change the name as desired. Press the Save button to continue or the Cancel button to not write the file. If you never want to change the filename or skip the backup then check "Re-use backup filename" next to this option.
Credits:
- This feature was suggested by Andy Drummond.
- Backup Folder Name
In order to keep IDE folder tidy, a new subfolder "Backups" holds the backup files. You may change the backup folder but it should be a subfolder of IDE.
Do not input the folder name with a path.
Credits:
- This feature was suggested by C K Lester.
- Do Not Minimize IDE During Menu Run
The default behavior is IDE minimizes when you generate the exw via Menu Run or Menu Temp Run. You may restore IDE while the exw is running. If you never want IDE to minimize in this manner then check this item.- When Open or Save(As) Start in Folder
This sets the start folder, for example your project folder or a folder your project is in- Folder Name
Indicate the default folder for Open and SaveAs Dialogs. This may or may not be the actual project folder, depending upon your folder structure. The default folder must already exist. If the above choice is not checked this field is ignored- Browse For Folder Name
Click this button for Folder Browse- When Adding Controls They Are Global or Local
Allows you to select local or global as default when creating a new control for the 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.
- Change existing controls to this selection
You may change existing controls on the project to the above selection.- Default Editor when passing IDE data
The external editor path and name to use when clicking MenuItem 'Generate Program\Pass to editor of your Choice'. If you do not enter this data, IDE's Editor.exw will be used. The external editor must be able to read params. If you edit the data while in the external editor IDE will know nothing about the changes! The passed file will be saved in the Project Folder or IDE's folder if there is no project.
Credits:
- Roland Stowasser suggested saving the passed file in the Project Folder.
Describe How Major Windows Open
Indicate how major windows within IDE are opened when IDE initiates, 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. Selections will be used as soon as Configurations is saved.For Code Editor each time user closes and reopens Code Editor, these rules will apply.
- 'Always Maximize'. Each and every time you open Code Editor it will be maximized. Even if you restore and/or resize the next opening will maximize.
- 'Maximize if left IDE with Code Editor maximized'. If Code Editor was maximized when IDE closed, the next time IDE is opened Code Editor will be maximized. If you restore and/or resize, the next opening will maximize (because it was maximized when IDE was previously closed.) If this option is selected and IDE was closed with Code Editor not maximized, upon next open of IDE, system Default position and size will be used.
- 'Last Position and Size'. Each and every time you open Code Editor it will open at the last position and size you left it when Code Editor closed. The size might be maximized. IDE will only open Code Editor minimized the when IDE opens; afterwards it will not open or reopen minimized; the logic is when you close and reopen Code Editor you want to see it and not have it minimized.
- 'Defaults'. System default position and size will be used.
This window shows the attributes from Properties that respond to your input data with a redraw of the control or required value. You may select the attributes that must wait for a press of Enter key or TAB to process entered data.Name always waits for Enter or Tab key and is disabled as a checked item.
IDE attempts to locate documentation files (Win32Lib's index.htm, Ruler.chm and IDE.htm) in IDE's folder or sub-folders. 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 you have placed the documentation files into folders outside of Euphoria and/or IDE or on another drive, Browse button selections will allow a direct lookup for them using the Open Dialog.
This action only needs to be done once or when one of the files is moved or renamed.
Configure items such as color, pixel size and dot/lines. Options hide/show, enable/disable are located in Menu Options on IDE's main Menu.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.
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 you have grid enabled
Credits:
- David Cuny provided method for fast redrawing of grid after user selects a change.
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
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.
Return to Table of Contents
- File Type for the generated program or module
You check either ew or exw.- Include Win32lib Statement
Generally for an exw you leave this checked; for an include module you decide.- Win32lib Name
If you have renamed Win32lib.ew to something else, then enter the name and supply the following information- Add Crash_file Statement
You may include a crash file statement at the top of the generated EXW by checking this option. The default is False. It is recommended when you generate your final version of the project that you not include the crash file statement if you are going to distribute the exw to others.- Save Win32lib Name:
You may save this new name for all projects by checking 'Save As Default' and each time you start IDE it will use this Win32lib name
You may save this new name for this project by checking 'Save In Project' and each time you start IDE for this project it will use this Win32lib name
Or you may choose not to save the new name at all by checking 'Do Not Save' and each time you start IDE it will use 'Win32lib.ew' for the Win32lib name.- Run Project With Command Line
allows you to add params to the exw statement- Comment data added near top of generated program
- Program Title
- Version
- Author
- Date
- Required Win32lib.ew version
- Description
- Comments
- Ok Button
Click 'OK' when completed with entries
Credits:
- Dan Moyer suggested the Program Comment Data
- Roland Stowasser suggested the crash_file statement be optional.
Return to Table of Contents
Change Control Order For Program
This window allows reordering the controls for the output EXW (EW). Normally you do not need to adjust the control order unless you want your controls to show top to bottom in a different order than what you would see tabbing to them. Then you only need to move these controls around with Change Control Order. You do not need to move them under their parent. Recent releases of IDE, since the introduction of Change Control Order will place them correctly under their parent when the EXW is generated. Conrol order within Design, Code Editor Control list, Properties or Project View is not changed. The first time you use this feature in your project the controls may not be grouped with controls immediately under their parent. You might see controls between a parent and its child control. This is only a visual difference; your generated EXW will be correct. This happens because initially the control list is in the order you created the controls and all IDE does this first time is place the child controls somewhere under the parent. If the order is unsatisfactory, use the up or down buttons to place the controls in proper order. If you save this order, the next time you use it the controls will be listed as you left them, unless you have added or deleted controls since last use of this feature.
- Window Combo
Use the combo to select any window in your project and get a list of controls for that window in the ListBox- Use the 'Move Up' and 'Move Down' buttons to change the order of the controls in the ListBox
- click the OK button when you are completed
- or click Cancel button to keep controls for all windows in the original order
Return to Table of Contents
Use this window to add Modules and select the order they are included in the generated EXW (EW) file after the statement 'include Win32lib.ew'. Previously included Modules may also be removed from the Project using this window.Text may be associated with the included Module. This will allow you to add something such as 'as XXX' or a comment. To add the appended text, or view previously added text, click the Module name in Manage Include Statements and enter the text in the edit box above. Also shown is the full path of the included Module.
Module Path may be altered. This is particularily useful when using a project file created by another person. The Path may be selected from the ... button located next to the path which presents Folder Dialog or via right click in the path field to delete or further modify the path. When using right click in the path the first option is "set path relative" which removes from left to right one element of the path per right click. The second option "delete path" removes the entire path.
When creating the generated EXW and project file, if the module's path is within the project folder, the project folder name is removed from the path.
If you code in Code Editor an include statement for a file added to Manage Include Statements, your include statement will prevail and IDE will not add another. This allows you to use MIS to document project include files but place the "include" statement somewhere other than after "include Win32lib.ew."
- Use the 'Add' button to select a file or files using the Open Dialog
- Use the 'Move Up' and 'Move Down' buttons to reorder the file names
- Optionally alter the path and add appended text
- Press the 'OK' button to save the file information
- Press 'Cancel' to abort
Credits:
- Right click on path was contributed by Roland Stowasser.
- Removing the path was suggested by Andy Drummond
Return to Table of Contents
The projected Temporary Name is shown at the top of the window
There is a box for indicating what to do if the temporary file already exists Your choices are to
- replace
run will reuse the temporary filename- stop
the action will be aborted- be asked for a new filename
opens a dialog for you to enter a filename
There is a box for indicating what to do with the temporary file after the exw is generated. Your choices are to
- keep if bad EXW
- keep if good EXW
- always keep
- never keep
Select Save\Save at the top of the Window to save you selections
Select Run\Run to make a Temporary Run using these rules. See Creating an EXW file for more information
Press 'Close" button to return to Main Window without saving or temporary runReturn to Table of Contents
Pass controls and routines to editor of your choice
Use this option to pass your current controls and routines to an external editor of your choice.You may pass controls and routines to an external editor using this Menu Option. Indicate in Configurations the path and name of the external editor. If you do not enter an external filename editor and you use this Menu Option, IDE will pass to IDE's Editor.exw.
The external editor must be capable of using params as that is the method IDE uses to pass the file name, "IDEPassFile.exw", to the editor. Any changes you make via this editor will not be known to IDE!
IDEPassFile.exw is deleted when IDE closes. If you want to keep the file once in external editor please SaveAs another file name. IDEPassFile.exw is placed in the project folder, or IDE's folder if no project exists.
Credits:
- This feature was suggested by Don Cole
- Placing in project folder was suggested by Roland Stowasser
Return to Table of Contents
You may bind your project from within IDE.
You may select
- Full Debug
- List
- Quiet
- Con
- Out [filename]
- Icon [filename]
See Euphoria documentation for meanings of these options
An edit box shows your binding selections. You may directly key binding options in this field or correct options IDE may add.
You may also indicate the Icon for the Bound exw by entering the file name or using the '...' button to locate the file.
Press 'Bind File/Save Options' button to Bind or 'Close' Button to abort BindReturn to Table of Contents
Select From Registered Templates
If you have registered templates you may select a template for your control. The selected template data is placed in the current cell in Properties. It is your responsibility to use a template with an appropriate cell.Return to Table of Contents
Launch other programs while in IDE
Under Menu Launch are:Pass controls and routines to editor of your choice
"Run" which opens a dialog for you to select a file.
"Edit Launcher" which allows you to set up files to list under the Menu Launch.
Files that were previously set up via Edit Launcher.When parameters are selected in Edit Launcher, the file name will be passed to the launched program.
IDE does not send data to or receive data from programs under Launch.
Suggested files to add to Edit Launch are:
- eTranslate by Roland Stowasser which will pass your generated EXW to the Translator. Look for it on Euphoria Recent Contributions Page.
- exw2prj by Martin Stachon which generates a project file from simple EXW files. Look for it on Euphoria Recent Contributions Page.
Credits:
- Edit Launcher was written and contributed by Roland Stowasser.
Return to Table of Contents
Launcher Edit Window allows you to enter programs that will be accessed from IDE's toolbar.Return to Table of Contents
This window, selected from Menu Help shows all the people who have contributed to IDE. This window may be moved.
Credits:
- Scrolling list was contributed by Roland Stowasser.
- Movable window was contributed by Elliott S. de Andrade.
Return to Table of Contents
Table Specs is used to generated row and column cells for Table control. You use the up/down arrows to change the number of rows and columns and the space between them. You may have the Table control resize to fit around the rows and columns or not. A case where you might not is for a very long group of rows and columns that would not fit your window. You might want scrollbars added to view the rows and columns that do not fit your window. Only the cells that fit in Design show but with a right click in Design you may see them all. IDE will name the cells after cell 1 which is the control dropped onto the Table control. You may ask IDE to keep the cell's new name if you rename it. You may ask for the generated EXW to see the Table as an array.You may use cell setHandler's routine_id in other cells. This method works by Row or Column or All cells. In Table Specs if you select Row from the 'Common SetHandlers' then each row's column1 control's routine_id will be used for all columns of that row. Select Column and each column's row1 controls's routine_id will be used for all rows of that column. Select All and every control will use cell1 routine_id. Selecting None will treat routine_ids as normal. If you have multiple controls in cell1 then each control is treated individually but all controls in cell1 will use the same method.
If you select Row, Column, None or All and OK Table Specs then later open Table Specs and select another option the setHandlers that were previously revised are set back to their original value of Control Name_event. If you manually changed the setHandler statment you must manually change again.
Return to Table of Contents
This window, selected from right click in Design, is a Full Size Design. You 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.Return to Table of Contents
When a control's X position becomes negative, it may 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 end 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. This window is not very useful.Return to Table of Contents
See the Help under Options\Ruler Tool for documentation or view Ruler.chm.
Credits:
- Measuring Tool module was provided by Travis W. Beaty.
Return to Table of Contents
Project View contains all the forms and controls for a project, the class module-event pair having code and include module names. You add include files necessary for the EXW directly into IDE via Menu Generate Tools/Manage Include Statements. Win32lib.ew should not be included 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 Statements. The included modules are inserted in the EXW after Win32lib.ew.The view will be rebuilt each time Menu Edit/UnDo for Controls is selected, a different window is added, selected or deleted or Project View is selected from Menu View.
Clicking a node of the tree 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.
Return to Table of Contents
Properties contains all the data about controls that you may edit. Many of the properties or 'cells' produce immediate results in Form Design such as 'Row', 'Col', 'Width', 'Height', 'Caption' and if you have these checked to affect the drawn control, 'Font', 'Color', 'Bitmap', 'Ico', and 'XPM'When 'Name' is changed you must remember to press either Tab or Enter key to accept the change at which time Code Editor statements are modified for the new 'Name' as well as the Tool bar Window combo, if 'Name' was for a Window class and the list of controls in Properties and Code Editor. There is an option in Code Editor you may chose that does not change Code Editor statements when 'Name' is changed. This means you must change them manually.
You can see a complete list of Properties cells and what the cell does here.
Return to Table of Contents
Resize The Window:
Resize the Design Window in Properties by altering it's attributes or by using the Design Window resize arrows or by clicking in an empty area of Design and using keyboard Shift and left or right arrows.. Scroll bars are removed when not necessary. When the Design window completely fills the Form Design window (less the scrollbars), only Properties Width and Height fields and keyboard Shift and left or right arrows may be used to further expand the Design window. A future enhancement will address this issue.Adding Controls To add a control to the window, select the icon of the control from the Tool Box by clicking it, and then click the Form 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. See more information under Control Parenting.
Controls may move other controls via Control Partnering.
Icon Behavior 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 'OFF' Menu Item, toggling the "Off"/"On" button on the Tool Bar or answering the question under 'Instructions.' When clicking 'OFF' Menu Item, 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 resize, 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 Tab Item. Adding Tab Control automatically adds the first Tab Item 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 an additional Tab Item, select the Tab Item icon and click within the Tab Item which is masking the Tab Control to which you wish to add. The second combo box in the Main Window Tool Bar designates the currently selected Tab Item. As new Tab Items are added, the combo box is updated with the Title. Dropping a control within a Tab Item adds to the currently selected Tab Item. Change the combo box for the appropriate Tab Item wanted active to drop a control onto or for move/copy/resize. You 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 Design Window1 when selected from Tool Box unless dropped onto CWindow, in which case it is positioned at the top of CWindow. When Window1 is larger than can be displayed, you will not see the Tool Bar after vertical scrolling. There may be only one Tool Bar per window but it may be resized into rows. Rows are automatically sized. Just drag the Tool Bar 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 but must be on different ReBarBands and Tool Bar must stay within its parent 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. Use ToolBar Spacer control for adding spaces between controls on Tool Bar.
Status Bar control is automatically inserted at the bottom of Design Window1 or CWindow when selected from Tool Box. When Window1 is larger than can be displayed, you will see the Status Bar after vertical scrolling. When adding Status Bar to the project, it must be dropped onto Window or CWindow and not any child controls. When moving Status Bar to Window or CWindow it must be moved to Window or CWindow and not to a child control.
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, an item in the Popup or a Form Design control to clear the Popup display. There has been no attempt to associate Popups with controls but you may do this in Code Editor. This display is for visual purposes only. The Popup will try to appear at the cursor position where you right clicked in Design. If there are more PopupItems than will fit on the screen, Windows[tm] will reposition.
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 assistance with multiple selection logic.
Control Parenting When adding a control to Design, IDE will establish parenting if the control is placed within TabItem, ToolBar, FlatToolBar, StatusBar, ReBar, ReBarBand, Group, Table or CWindow control.
If you add a control to other controls, for example a PushButton, and desire the PushButton to be the parent you may manually add parenting. Click into the new control and in Properties scroll down to the attribute 'Parent' and use the dropdown list to select the name of the control you wish to be parent to the new control. Notice that a check is entered into the attribute under parent, 'Maint by user,' which indicates the parent is frozen as far as automatic reassignment by IDE to another control except The Window. The dropdown list is comprised of controls the new control is within in the same Layer or Layer 0. If you move the control out of the parent you previously manually selected the parent changes to The Window but the checkbox remains checked. If you further move the control to a traditional IDE container, such as Group, the parent is still The Window but if you uncheck "Maint by user" or select the Group control from the dropdown parent list then Group becomes the parent and the check is removed from "Maint by user." You may also check controls within traditional parent controls such as Group, TabItem, etc which will prevent that control when moved from obtaining a new parent except The Window. Traditional parent controls may themselves be checked in "Maint by user."
Selecting The Window as parent is an alternative method to using Control Layering.
Control Partners Control Partners are controls that follow along when another control moves. The Partner control does not have the moving control as parent and is not 'inside' the moving control. This is simply a feature to facilitate layout Design and does not carry over into the generated exw. To use Control Partnering in Properties locate the 'partners' attribute in Properties and either manually enter the Name of the control or click the button to the right of the cell. When manually entering or adding manually to the list produced by clicking the button, separate entries with a comma.
You select a control by clicking on the control in the Design window, selecting the control from Properties dropdown or selecting 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 and resizing arrows will be supplied. 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 only one Tab Item and Delete key is pressed, IDE will be delete both Tab Item and Tab Control.
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 Menu Edit/Delete Active Window. 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:
To resize the control, select it then drag one of the corners, top, bottom or side. To prevent control from moving while you are finding the hotspot to resize, hold down Shift+R before moving the cursor. Tip: move the mouse from the center of the control outwards toward the border. When the cursor changes from pointer to arrow, press the left mouse and pause a second or two for IDE to catch up and while mouse is still depressed move the mouse.Controls may also be resized by using Shift plus up or down keyboard arrow. Properties may also be used via Width and Height attributes.
Moving Controls
To move the control with the mouse, select it and drag it to the new position. Shift+R prevents moving a control. Properties may also be used to move to a new location as well as the keyboard arrow keys. Controls may also be moved using right click popup options.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 Item on a different 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 Item and the moved Tab Item will auto position.
Moving the Tab Item, Group, Table, CWindow or ReBarBand controls automatically moves controls contained within them.
Controls moved out of a Tab Item, Group, CWindow or ReBarBand no longer are assigned to a parent, unless moved into another Group, ReBarband, CWindow 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, CWindow or ReBarBand will have the Tab Item, Group, CWindow 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. Since version 0.17.0, direct parenting and child information is maintained in the project file and the above discussion refers to the highest parent of a control.
A control and any children may be moved from a window to another window in the project.
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 (except row and column.) 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. Controls may also be copied using right-click options. Any controls within the selected control will also copy unless their Property "Maint By User" is checked. When coping a control whose Property "Maint By User" is checked, the newly created control will not have "Maint By User" checked. 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.If Indexed Copy is Active (the default), after pressing Ctrl key and moving the control, you will be asked if the new control should be indexed to the original. When answering "Yes" this control, and others copied from the original control will create a one dimensional array in the generated EXW. A control created via Copy with indexing may not itself use copy with indexing but may use copy. To suspend this feature, click the Indexed Copy Active icon in the IDE toolbar. When creating controls in this manner, you may continue to write code referring to the Name as shown in Properties and IDE will translate to the proper index when generating the EXW. If the new control is not in the same control (including window) as the original, it will be created without indexing. In the generated EXW the order of the controls is the original and then the copy-indexed in Control Order (TabOrder) and they are named the original control e.g. if original is PushButton2 then it is PushButton2[1] and the copies will be PushButton2[2]..PushButton2[n]. If a control created in the way has a lower row value than the control copied from, the control copied from is still the first index. Group, TabItem, TabControl,CWindow when create an index-copy should not have within it a control that creates an index-copy because IDE can not figure out some of the indexing. A container control when Copied (without index-copy) that has indexed controls will not create the new container with indexed controls. State of Indexed Copy Active button is saved for next IDE run.
Tool Bar, FlatToolBar, Status Bar, ReBar and ReBarBand may not be copied.
Indexed Copy is Active may be set/unset in configurations for future runs of IDE. If you switch Index Copy from toolbar that does not alter configuration 'Never index when copy a control' setting. This allows you to set the 'usual' condition in configuration and switch during control manipulation in Design via the toolbar.
Credits:
Indexed Copy was suggested by Merv McKee. 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. You may elect not to do this by unchecking in Menu/Configure IDE on General Information tab 'Backup Before Save' option.When opening project, you may not select Backup Files from the files type dropdown.Keyboard support
F5 initiates menu 'Run'.
F6 initiates menu 'Temporary Run'.
Delete key deletes selected control.
Ctrl+S will save project unless Code Editor has focus in which case the data in editor is saved.
F12 provides the SaveAS Dialog.
Ctrl+O provides the Open Dialog for 'prj' unless Code Editor has focus in which case Open Dialog for files is provided.
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 performs Undo either control or Code Editor depending upon which has focus. Undo does not work across Windows in the project.
Ctrl+A opens Manage Include Statements or select all Code Editor statements depending upon which has focus.
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. However if Code Editor's Find/Replace has focus, F3 will find again.
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.
Shift+R prevents control from moving as you attempt to resize
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 Tool Bar. Undo is disabled when selecting Code Editor and upon return to Design is not available until the next control action. Code Editor has its own Undo.Undo does not work across Windows in the project.
Using Layered Controls
Controls may be designed that reside at the same location or overlap in a window. Controls may also be designed that do not reside or overlay other controls but that are needed or not due to your specific actions. "Layering" is a visual tool for you to design such controls and via generated routines manipulate whether they show on the Window or not. The set of controls which are not in an extra layer are in the base layer, labeled Layer 0, in the first tabitem above the Design Window. Most of the controls for a Window are in the base level, Level 0. Controls which might overlay, replace or supplement some of the controls in the base layer are in extra layers which you add. Usually the intent is one set or the other is viewable by the program's end user at any time. There is no limit to the number of extra layers associated with a Window. You may add and remove Layer Tabs and change the Layer Tab captions. Controls may be added to the active layer by selecting from Tool Box and dropping on Form Design in the normal way. Or you may move a control from layer to layer via "Layer" in Properties.Normal parenting rules carry across layers.
Select Menu Edit/New Control Layer to add a new layer which is positioned after the active layer tab. IDE will add a new tabitem and show an empty Design Window. Add controls as desired. You should probably uncheck Visible in Properties for all controls in additional layers and set Visible or Enabled as desired from within the exw or use canned functions setLayerVisible or setLayerEnable. Layers may be deleted via Menu Edit which will remove not only the layer tab but controls that were added for that layer or moved to that layer. Menu Edit/Rename Layer allows you to change a particular, or all/any, captions at one time.
Child controls of ToolBar, FlatToolBar, ReBar, ReBarBand, TabControl, TabItem and Table added to a different layer than the parent control may not work correctly. When a Table control is checked to use setLayer, then the individual cells are not evaluated.
A layer is not a new window so all controls in all layers for a window will show in Properties and Project View. Clicking a control that is in a separate layer will shift the view to that layer and then display the selected control and other controls in the layer.
Additional Window controls in the project may also use layering. Information regarding background layers for the current window is not retained when switching or adding a new Window.
Showing multiple layers is possible provided a layer (other than Layer 0) is currently active. If there is one additional layer, Layer 1 will display over Layer 0 from right click Popup selection "Show Multiple Layers." To remove Layer 0, from right click Popup select "Show Foreground Layer." You may also compare additional layers to one another. When there are more layers than Layer 0 and layer 1 and "Show Multiple Layers" is selected from Popup, you may specify the background layer. Multiple background layers may be specified by holding down the Ctrl key when selecting from the List. The active layer is always the foreground layer.
Specifying background layers for the active layer may also be achieved via right click on a non-active layer tab. When Layer 0 is the active layer other layers may not be background layers. Multiple background layers may be specified by holding down the Ctrl key when right clicking. To remove background layers, right click the active layer tab.
When a layer is specified as a background layer, the controls in that layer will be grided (if grid is not hidden) so you may easily distinguish those controls in the active layer. When grided, controls with icon or bitmap images will not draw with them since the grid would be masked. If a control from background layer is completely behind a foreground controls it will be drawn with a red border and no caption.
Control Layer may be changed to another valid layer in Properties. From "Layer" dropdown list select the Layer Caption to which the control should be assigned.
Layer Tab captions may be changed via Edit Menu. New captions will be remembered for next load of the project provided the project is saved.
An example of Layering would be a window which has a group control containing different adio, checkbox, etc under certain conditions. You would place the group control in the base layer, first set of controls for the group in one layer and the extra set in another and manually set the correct Visible/Enable as directed by some action of the program end user. You may use setLayerVisible and/or setLayerEnable and every control in the indicated layer which has "may use setLayer" in Properties checked would be set True or False. A Menu Item in Edit Menu may be used to change all controls, with the exception of controls in EuGrid, in the active layer True/False in "may use setLayer." This MenuItem is also checked when controls are added/moved to/in Design. If the MenuItem is checked then controls added/moved into the active layer will automatically have "may use setLayer" checked. If the MenuItem is not checked, new controls will not be checked and controls moved into the layer will retain their checked state.
You might also design the project such that the group is not in the base layer at all but is in one of the extra layers with the initial set of controls for that group. Upon program end user's action, another group from another layer might be set Visible and the first group set not Visible.Note that older project files (prior to v0.18.9) with Layering did not have the 'May use setLayer' and you will need to check this Property. IDE will auto check this property for controls in layers other than the base layer. Once project is saved these values are remembered upon reload.
Parameters to functions setLayerVisible and setLayerEnable are (integer windowName, object "layerName" and integer state) where windowName is the Name of the Window in Properties, layerName is the exact layer tab caption in quotes or the layer number and state is either True or False. Layer numbers begin with 0. These functions return 0 for success or 1 for failure to find layer name. If window name is not found, a syntax error will occur. Associated with these routines is a sequence sorted by windowName, layerName and controlName. You may find other uses for this sequence. The sequence and setLayer routines are found in the generated exw after all project Window createEx statements.
Credits:
Layering was suggested by Dan Moyer and Derek Parnell. Dan Moyer provided detailed logic for Layer Tab Right Clicking as well as sample code. Tony Steward suggested griding background layers and allowing switching a control between layers which is useful when working with an existing project. Tony Steward suggested ability to rename layer tabitem captions. Andy Drummond suggested routines setLayerVisible and setLayerEnable. Return to Table of Contents Layer Rename
Allows you to rename any Layer. A window will open to allow you to pick the Window and Layer to change. The current Layer Name appears in an edit box; make your change and if press the "Done" button or "Cancel" button to return without making the change.Return to Table of Contents Assigning Parent to Controls
If you add a container control, such as Group, to Layer 0 and place a Button in Layer 1 over the Group, the Button's parent will be Group. When changing a control to another layer if there is a parent already for the control, it is not altered if the parent is in Layer 0 or the same layer; otherwise a new parent is assigned. If there was not a parent and the control falls within another control after switching layers, the parent is changed to the control it falls within if it is a container control or Window1 with a dropdownlist of possible parents.In Properties assigning Parent for controls in layers, except for layer 0, is permitted. When the selected control is part of an additional layer and Parent in Properties is clicked, a dropdownlist of parents from layer 0, or the current layer, and the Window is prepared. Be careful to assign Parent when positioning of the controls in layers are satisfactory because any movement of a control may reassign parenting based on the current layer. In other words if Parent is a control from layer 0 that Parent may be removed and replaced with the Parent in the current layer, if applicable and vice-versa. Child controls in the same layer as the Parent retain their Parent.
Table control is a special case. Normally the Table and its cell controls are in the same layer, however IDE will allow placing on separate layers. Since a cell control within Table may not be moved if another control is placed in a layer other than layer 0 and Table is placed in layer 0 then Table might become Parent to the control when it should not. To help you IDE will prepare all possible parents in the Parent dropdownlist. It must be stressed this will not happen if the Table and the control falling in Table are both in layer 0.
Return to Table of Contents
To add an additional window to the project, select Menu Edit/New Window. 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 module project, the parent of the first window. The first window may not have a parent unless the project is an include module project. The first window in the include module 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.
Return to Table of Contents
Adding Non Traditional Controls
IDE departs from normal Microsoft buttons by allowing color. IDE colored buttons are emulated and managed by coloredbuttons.ew include file. You still add a button to your project and give it all the properties you normally would but in addition you would assign color and other attributes you want. ColoredButtons.ew takes care of everything else for you.Return to Table of Contents
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. You may add/remove words, series of words or the complete category.
Credits:
- Moving Options window contributed by Elliott S. de Andrade.
Included with IDE is a program Winlibscan.exw which updates OtherC.ini file, with a collection of Win32lib.ew keywords, to assist you in upgrading to a new Win32lib.ew release.
Right mouse in the editing pane brings up a popup menu with 'undo/cut/copy/paste/select all' options.
Returning to a line of code when switching between modules and class modules
You may switch between modules and class modules and between themselves via the combos at top of editor as well as Project View and the line of code at the prior cursor position will be shown. Scrolling does not establish cursor position but clicking in a line will.You may also position cursor in a routine name that is a global routine from a module in Manage Include Statements or control-event pair; press F1 and jump to that routine; press ESC to return to the module or Control-Event code. The line returned to is the last cursor position as shown in the status bar. Scrolling or clicking in a line does not establish cursor position. For routines defined and used within control-events, you may press F1 on a routine name to jump to the statement where the routine is declared, move the cursor to another line and F1 on a routine name in that line, so on and so on, and when you may press Esc key multiple times walk backwards to where routines where accessed via F1.
The last cursor position is kept for the duration of the current IDE session and saved in the project file for the next time the project is opened unless ex.err intervenes.
Right click in Code Editor Controls List
A right click in Code Editor Control's list opens a popup. The popup opens a small window of results from the following selections: (1) Present a list of event names that have coding for the control right clicked, (2) Sort the controls list, (3) Show a list of controls from other windows in the project, (4) Show sorted list of controls from other windows in the project. When using option 1 you can select the event from the sorted list. When using option 2 you can select the control from the sorted list. This window closes when a control or event is selected from the normal Code Editor's Controls list or Event dropdown.Using AutoSave
You may activate/deactivate autoSave in Code Editor which will save your project every n minutes you specify. This feature saves your existing project file based on a timer. You activate/deactivate autoSave in in Code Editor MenuItem "Options/Autosave Options" which opens a new window for checking/unchecking "Turn on/off Autosave" and to use the UpDown control to change the Autosave interval minutes or enter them directly in the editbox. 5 Minutes is the default. Your selections are used for all projects and saved each time you change one of them.
Credits:
- AutoSave was written and contributed by Craig Welch.
- Multiple Jump_Return via F1_Esc was suggested by Andy Drummond.
- Jump_Return from module routine to Control_Event code was suggested by Andy Drummond.
- Logic of returning to last cursor position was contributed by Andy Drummond.
- Suggestion to supply user with sorted Controls list was contributed by Tony Steward.
- Suggestion to add Events with code and use a popup window was contributed by Andy Drummond.
Adding Code To Controls or Module:
Right click, double click most controls in the Design window, press hot key, or select from Menu Editors, and the Code Editor Window will appear. Exceptions occur when you have added an image to your control. Not all images accept double click. To invoke Code Editor from these controls, use right click and select Code Editor from the popup list. 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 w32HClick event. Code for PopUps and Timer are done in a similar manner from PopUp Editor and Timer Editor, respectively. Timer Editor will allow only the window control onTimer event.You may scroll to selected routines from Module or Control's (General),(Control General), Intro) and (Final) events via Menu Item List Routines. The list box item "All Routines" takes you to the top of the Module or control-event event.
The Code Editor Window has the following fields:
Control Function Control Determines the control for which code is being associated. Long, thin button Click button to hide Control List and resize the edit panel. Click again to restore. Event Lists all events that can be associated with the control. The events list initially includes all possible events. You may limit your events to selected ones per Class. 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 Module File/Open, 'Run' or 'Temp Run' is requested from MenuGenerate Program 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. These may be modified in any way desired except removal.
Code for Modules is not temporarily saved. It is saved via the Code Editor Menus 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.
Menu Options/When SaveAs Module allows adding SaveAs Module file name to Manage Include Statements and Code Editor's Module Combo or asking first.
There is a special event, "(Begin/Version)", 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.
Credits:
- "Version" was suggested by Dan Moyer to encourage the use of Version information and the idea modified by Virtual B.
There is a special event, "(Intro)", that may be used to add comments and/or code prior to the createEx statements. It acts like "(General)" event. This event is only available for Window class.
There is a special event, "(Final)", which allows you 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: You 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.
You may select by Class those events you wish to see in the Event dropdown. Select Menu Options/ Taylor Events To Control Class and a window will open where you can uncheck by Class the events you do not wish to use. Note: if you already have coding in any window of your project that uses the event you are unchecking, you will be prevented, and the event will be re-checked.
If the Eu community will help me develop standard defaults, I can prep the defaults file.
Credits:
- Aku requested tayloring event list to those allowable per control Class.
Menu Search/Find/Replace (F3,F4) 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 Search/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 Edit/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 hot keys for 'cut', 'copy', 'paste' and 'UnDo', respectively. Ctrl+D will add comments to line or selected lines. If the selected line or lines already has comments then they are removed when Ctrl+D is pressed. Ctrl+A will select all lines.Enhanced keyboard support is provided via F-keys and Shift+F-keys. The key and inserted text must be registered prior to using. See Menu Options/Register Hot Keys. F1, F5, F6 and F12 are reserved for other IDE usage. One use for this feature is for those of you whos keyboards do not easily support some of the brackets and parenthesis used by Euphoria language. Another use might be often used code. Multiple HotKey files are allowed. You can create new hot key files within Register Hot Keys and switch back and forth between them. Note that when switching Code Editor only knows about text for the currently loaded file. In other words you can not use a F-key from one file and others from another but switching does not affect any code already inserted into Code Editor. The default hot key file is used when Code Editor opens, however, you may indicate a different hot key file be used.
F1 when pressed while cursor is within an Euphoria or Win32lib keyword will bring up associated Htm for that keyword.
Starting with Win32lib v58.05, the first time you, during an IDE session, presses F1 on a keyword, a short delay will occur while IDE builds a cross reference table of keyword and win32lib's htm link.
Credits:
- Hot Key support was suggested by Roland Stowasser.
- Editor enhancements by Martin Stachon, Brian Broker and CoJaBo.
- Code for wheelmouse scrolling by Tommy Carlier.
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)" or "(Control General)" event, the entire event is displayed even if the error is in a procedure or function you wrote within the "(General)" or "(Control General)" event. This is also true for "(Begin/Version)", "(Intro)" and "(Final)" events. 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 under the Menus. 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 unless you have previously moved it. When the Hint contains a long list of variables, up and down arrows may be used to scroll or the Hint may be resized.You 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.
You 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.Return to Table of Contents
An Include Module is a module with controls. You write code for an include module exactly as you would for any window in your project.You indicate prior to Menu Project/SaveAs which file type to use; EXW or EW. This selection is saved in the generated PRJ file. An existing PRJ file that you 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 Menu Project/New is selected. You may elect to suppress 'include Win32lib.ew' in an include file. You 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/Temporary 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' from the Project Menu. If Window1 has been assigned a parent that is not known, the generated EW file will fail when Menu Generate Program.
Return to Table of Contents
Associated with the Design Window is a project file which is used to reload the Design Window. When closing IDE with unsaved changes, there is a query to Save(As) a project file. You supply the name of the file and its path from a dialog box. The project file is also written when 'run' is selected from Menu Generate Program unless you indicate 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.
Return to Table of Contents
IDE messages are centrally located in Languages sub folder in the English.lng file by default. Translations, contributed by IDE users may be found on the IDE page for other languages. Place the unzipped language file in Languages sub folder without removing English.lng file. Other language translations are welcome.
Credits:
- IDE_MsgCzech.zip by Martin Stachon, Mira Balikova. Czech is no longer being maintained
- IDE_MsgGerman.zip by Roland Stowasser.
- There is a Spanish translation on Euphoria site's Recent Contributions Page.
Return to Table of Contents
You may re-order most controls prior to running the EXW. Select Menu Generate Tools/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 you have previously re-ordered the controls. Controls within a container are offset by '<'s but may not necessarily be directly under the parent if another control's y, x are between them. Changing the EXW reorder does not change the order in Code Editor Controls combo, Design, Properties or Project View. Changing the control order does not change the parent of a control. IDE can not change Windows(tm) tabbing behavior. If you could not tab to a control, e.g. Group, using Control Order will not force that to happen.You may add and order the 'include' statements within the EXW. Use Menu Generate Tools/Manage Include Statements for this option.
Text may be associated with the include module in Generate Tools/Manage Include Statements. This will allow you to add something such as 'as XXX' or a comment. To add the appended text, or view previously added text, click the module name in Manage Include Statements and enter the text in the edit box above.
You 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 Options/Configure IDE.
You may indicate to use integer instead of constant in create statements with Properties attribute Create With.
You may indicate that an EW instead of EXW generated program be created, an optional Win32lib.ew be used, in Generate Tools/Program Information.
Also available in Program Information are fields for Author, Title, Version, Date, Required Win32lib Version, Comment and Description which is passed to the generated program if supplied. Comment and Description are supplied as comment lines and the others as constants so you may refer to them in your program. You may also specify Command Line data to attach to the generated exw.
Select Menu Generate Program/Run to produce the EXW or EW file. You 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 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.
You 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. You 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 you elect 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 with configuration choices.
When you request 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 the generated exw is running, IDE is minimized by default. You always may restore IDE from taskbar during this time. If you never wants IDE to minimize during Menu Run or Menu Temp Run there is a configuration item which will prevent the default behavior.
While viewing generated EXW file, you may return to IDE to make changes. These changes do not take effect in the currently running EXW.
Credits
- Interactive processing was contributed by Tone Skoda.
- Determining file processing name was contributed by Wolf Fritz.
- Author, Title, Version, Date, Required Win32lib.ew Version were suggested by Dan Moyer.
Return to Table of Contents
The Control Icons:The following icons are represented in the Tool Box.
Click the control class in the list below to obtain further information.
Control Default Class Other Classes Bitmap * Bitmap Pixmap Icon/Image Icon Static Text * LText CText, RText Edit Text EditText Edit Text with Label LabelEdit 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, Mle 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 EuGrid EuGrid * 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.
Return to Table of Contents
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. Color Button Check to allow button to be colored. There might be cases where you do not want the button to initially have color but later on you will assign color. Caption** Title displayed in the control. If longer than the control width it is truncated when drawn (except for LabelEdit).
For LabelEdit control, this is the label caption.Caption on Left Title displayed on left or right.
For LabelEdit control only.Position Caption Allows you to position PushButton, ToggleButton, DefPushButton and CancelButton Caption left justified, centered or right justified. Data For LabelEdit control, this is the initial EditText data. Show in EXW If False the Caption does not show in the output EXW.
For LabelEdit control, if False, this will not show Data in the output EXW but label Caption will show.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. Layer DropDown List of Layer Captions to which control may be assigned. Not shown for Window class control. Table Specs Button to access Table Control Table Specs Window. Will only work after a control has been added to Table Control. setLayerOK Toggles True/False whether or not control can use setLayerVisible and setLayerEnable 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 supplemental data.Also accessible via Menu Edit. You must have systray.ew on your system in Euphoria\include, your EuInc folder or project folder. Use In WinMain Checked for window that is used in WinMain statement. First window in project is the default. WinMainOpen select Normal, Minimize or Maximize from drop down list. For first Window in project. Cursor At Allows you to indicate the control to receive cursor via WinMain statement. For First Window in project. Win Position select an initial position for a 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. Default Indexes 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. 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. Partners Partner controls are controls associated to the selected control and acts in tandem to selected control when selected control moves. Parent Parent of control (Group, Table, Status Bar, Tool Bar, Tab Control, Tab Item or CWindow). Non editable except for Window Class and controls on layers 1-n. You 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 you must select from 'File Information' under Generate Tools\Program Information 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. When control is in layers other than layer 0, Parent contains a combo you may select an appropriate control as parent. Entries in the combo are selected from layer 0, or active layer and the Window.
Maint by user This cell is checked when user has assigned a new parent. Normal re-parenting rules are suspended when checked and control is moved. User may uncheck for IDE to re-establish parenting. Style (if Class is Window, CWindow) Attribute indicating the style for window. If more than one, separate with comma. From Right Click you 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. Note if you remove WS_CHILD from CWindow you will need to position CWindow in parent Window yourself and also position when moving the parent Window,
Style Type (if Class is Window,CWindow) Indicates how style param is to be formatted. Has a drop down list. If Style Type ... is selected and you have Styles separated by commas, you will get an exErr. ClassDefaults Used by Window Styles Explorer and Child Window. You may also indicate style changes in this property, particularily if the Child Window has removed a style that the next window needs. 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, Scroll, Track and Progress bar controls. Max Value**** Maximum Scroll Value for UpDown, Scroll, Track and Progress bar controls. Line Change Small Scroll Change for Scroll and Track bar controls. Page Change Large Scroll Change for Scroll and Track bar controls. Suppress Cell This cell in a Table Control, while showing in Design, is not passed to the generated EXW. 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, ToggleButton, CheckBox and Radio. If TabControlis selected, toggle On and Off if TabControl is to show all TabItem captions. Checked Toggle On and Off. For CheckBox and Radio control. H Scroll Toggle On and Off for RichEdit and MleText 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. Align to Left of Buddy Toggle on and off to show UpDown control at left or right of Buddy.This param is automatically added to Other Styles for UpDown control. Show Horizontal Toggle on and off to show UpDown control horizontally. This param is automatically added to Other Styles for UpDown control. Buddy [Name] Name of Buddy control associated with UpDown Control. Add To Bottom List View Rows are build from top to bottom in the order added. Show Tabs at Bottom TabControl must be selected. Toggle On and Off if TabControl is to show TabItem captions below the TabControl body. Smooth Toggle On and Off if ProgressBar is to have PBS_SMOOTH. MultiSelect Toggle On and Off if MonthCalendar is to have MCS_MULTISELECT. No Integral Height Toggle On and Off if List or SortedList is to have LBS_NOINTEGRALHEIGHT. Check this if the generated exw shows the List control shorter than you indicated. Other Flags Attribute indicating extra flags not yet supplied above. If more than one separate with comma. Style Type (for controls not Window or CWindow class) Indicates how style param is to be formatted. Has a drop down list. Color setWindowbackColor in RGB. Enter value directly or click Button. Presently value 0 for controls other than Window indicates the system BTNFACE color and not the color Black. For EuGrid control, 0 is default color. If you want a control to be Black, try entering -2 or some other negative number. 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 the exw. The selection's color value will be placed in Color. When the getSysColor(COLOR_choice) is 0, the selection will be treated as Black in the exw. Item "User Color" is not selectable and indicates that you manually keyed into Color or used the get color dialog. Tick Bar Color Progress Bar Tick Color (moving bar) in RGB. Enter value directly or click Button. Presently value 0 indicates the system default color and not the color Black. If you want a control to be Black, try entering -2 or some other negative number. Suppress drawing window and controls with color by unchecking Menu Item Options/Draw window and controls with color Month Calendar Colors: MC_Background MC_Text MC_TitleBK MC_TitleText MC_MonthBK MC_TrailingText 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 Visual 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. XPMmer XPM Click to transfer to XPMmer Icon Editor Object If icon was passed from XPMmer Icon Editor to Properties, this cell will hold the name of the control with a suffix _xpm, for example, PictureButton2_xpm. This cell may be erased but any other editing is ignored. Right click to copy this icon to XPMmer Disable Object. XPMmer Disable XPM Click to transfer to XPMmer Icon Editor Object If icon was passed from XPMmer Icon Editor to Properties, this cell will hold the name of the control with a suffix D_xpm, for example, PictureButton2D_xpm. This cell may be erased but any other editing is ignored. Right click to copy this icon to XPMmer Object. This Property when used, is setVisible false when the generated exw opens. When you need to switch the enabled and disabled icons use setVisible statements. 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 Tab Items. Not for ReBarBand control. --as var A variable name may be entered for Hint Text. The variable, a sequence, must be defined and assigned value somewhere in a Code Editor event (Intro is suggested). Hint Font properties for Hint Font follow Open Var Check this Property to show Hint Font variable cells and uncheck to hide. Hint Font*** Font name for Hints. Enter file name or click BUTTON to select from Font Dialog. For Window Class only. When you have not entered a font, this field will be the Win32lib default. Hint Font applies to Hints for all controls on the Window. -- as var A variable may be entered for Hint Font Name. The variable, a sequence, must be defined and assigned value somewhere in a Code Editor event (Intro is suggested). Hint Font Points Points for Hint font above. When using Font Dialog this field is auto filled. -- as var A variable may be entered for Hint Font Points. The variable, an integer, must be defined and assigned value somewhere in a Code Editor event (Intro is suggested). Hint Font Italic Toggle True or False if Italic Font. When using Font Dialog and selected, this field is auto filled. -- as var A variable may be entered for Hint Font Italic. The variable, an integer, must be defined and assigned value of Italic somewhere in a Code Editor event (Intro is suggested). Hint Font Bold Toggle True or False if Bold Font. When using Font Dialog and selected, this field is auto filled. -- as var A variable may be entered for Hint Font Bold. The variable, an integer, must be defined and assigned value of Bold somewhere in a Code Editor event (Intro is suggested). Hint Font Underline Toggle True or False if Font Underline. When using Font Dialog and selected, this field is auto filled. -- as var A variable may be entered for Hint Font Underline. The variable, an integer, must be defined and assigned value of Underline somewhere in a Code Editor event (Intro is suggested). Hint Font Stikeout Toggle True or False if Hint Font Stikeoutout. When using Font Dialog and selected, this field is auto filled. -- as var A variable may be entered for Hint Font Strike. The variable, an integer, must be defined and assigned value of Strikeout somewhere in a Code Editor event (Intro is suggested). ColoredButton: following are properties for colored buttons Color Enter color to asign the button. If no color is assigned COLOR_BTNFACE will be used. Press Color Button color in pressed or in down state. If no color is assigned COLOR_BTNFACE will be used. If the button is a ToggleButton or TogglePicture a special color is used when no color is assigned. Caption Color Caption Color. Default is Black. Caption Press Color Caption Press Color is color of caption when button is pressed or in down state. Default is Black. Border Thickness Pixel width of border around button face. Default value is 1. Caption Pos Left, Right, Center or Unit positioning of caption. Unit considers caption+graphic when placing left, right or center. Graphic Pos Left, Right or Center positioning of graphic. Multiline Toggle on or off to make long Caption multiple lines; either by use of \n or space breaks. Flat Toggle on or off to make button have BS_FLAT appearance. Center Caption Vertically Toggle on or off to make caption vertically centered or at top of button. Font below are properties for Font Open Var Check this Property to show Font variable cells and uncheck to hide. Warning: When using Font Name, Font Pts or Font attributes as variables, Design can not draw your control with Font or warn you if your LabelEdit caption is too large. Font*** Font name for control fonts. Enter file name or click BUTTON to select from Font Dialog. When you have not entered a font, this field will be the Win32lib 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. -- as var A variable may be entered for Font Name. The variable, a sequence, must be defined and assigned value somewhere in a Code Editor event (Intro is suggested). Font Points Points for font above. When using Font Dialog this field is auto filled. Use Font Points to change size of MonthCalendar. -- as var A variable may be entered for Font Points. The variable, an integer, must be defined and assigned value somewhere in a Code Editor event (Intro is suggested). Font Italic Toggle True or False if Italic Font. When using Font Dialog and selected, this field is auto filled. -- as var A variable may be entered for Font Italic. The variable, an integer, must be defined and assigned value of Italic somewhere in a Code Editor event (Intro is suggested). Font Bold Toggle True or False if Bold Font. When using Font Dialog and selected, this field is auto filled. -- as var A variable may be entered for Font Bold. The variable, an integer, must be defined and assigned value of Bold somewhere in a Code Editor event (Intro is suggested). Font Underline Toggle True or False if Font Underline. When using Font Dialog and selected, this field is auto filled. -- as var A variable may be entered for Font Underline. The variable, an integer, must be defined and assigned value of Underline somewhere in a Code Editor event (Intro is suggested). Font Strikeout Toggle True or False if Font Strikeout. When using Font Dialog and selected, this field is auto filled. -- as var A variable may be entered for Font Strikeout. The variable, an integer, must be defined and assigned value of Strikeout somewhere in a Code Editor event (Intro is suggested). Font Color For RichEdit control only. Enter RGB value. May be supplied using Font Dialog or click BUTTON for Color Dialog. -- as var A variable may be entered for Font Color for RichEdit control. The variable, an integer, must be defined and assigned value in RGB format somewhere in a Code Editor event (Intro is suggested). Indexed To This control was created using Indexed Copy. The control in this property is the primary Copied From. Remove Indexing Checking removes Property "Indexed To" from control which removes prior copy-indexing flag. Transparency Allows you to add transparency to Windows on operating systems except Win95 and Win98. If you elect to use this feature you must have alphablend.ew by Thomas Parslow in Euphoria\Include, your EuInc folder or your project folder and add to Manage Include Statements before Menu Run or Menu Temp Run. Transparency may be tested from Properties via right click. This Property will be disabled for Win95 and Win98. EuGrid Specific Refer to EuGrid documentation from Phil Russell's EuGrid distribution obtained from Euphoria's Recent Contributions Page. * 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 you 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 the default font name and size will be returned.
(Name), Caption, CX, and CY are derived from a Control List. You may change these values via Menu Options/Configure IDE/Values Used to Create A New Control. 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 selected, WS_HSCROLL is automatically supplied. These styles will be or_all'd with any entries in Other Styles
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 you 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. Clicking BUTTON will access the Color Dialog. Otherwise the RGB color must be input by you. Default color is ButtonColor for Window class 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, 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 you.
Caption may specify multiple column heading for ListView. You 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 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, you 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, you add 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, you may add XPM include file name, e.g. IDE_xpm.ew, via Menu Generate Tools/Manage Include Statement 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 you do 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.
Credits:
Aku suggested multiple control updates for Properties. Various additions to the Properties list have been suggested by Aku, Bryan Broker, Martin Stachon and Yuugure Chiisana. There are others who have suggested additions to Properties who are not recorded in my notes. I wish to give everyone credit for helping improve IDE so please notify me of your missing name. Return to Table of Contents
Non-Win32lib Routines In Generated EXW
function setLayerVisible(integer windowName,object layerName,integer state)
This function allows you to change the visibility of controls in a layer for a window.
layerName may be alpha or numeric. When alpha layerName is the layer's caption, for example, "Layer 0." If numeric is the layer's number, example 0. Even if you have renamed your layer names, the first layer number is 0.
state is true or falsefunction setLayerEnable(integer windowName,object layerName,integer state)
This function allows you to enable or disable controls in a layer for a window.
layerName may be alpha or numeric. When alpha layerName is the layer's caption, for example, "Layer 0." If numeric is the layer's number, example 0. Even if you have renamed your layer names, the first layer number is 0.
state is true or false.procedure IDEaddXPM(integer IDEctrl, sequence IDEXPM)
This procedure converts an emulated xpm sequence to a dib and adds to a PictureButton or TogglePicture.
IDEctrl is the Name of the PictureButton or TogglePicture.
IDEXPM is a sequence containing the xpm passed from Properties.procedure IDERealXpmToButton(integer IDEctrl, sequence filename)
This routine adds an xpm having a file name to a PictureButton or TogglePicture.
IDEctrl is the Name of the PictureButton or TogglePicture.
filename is the actual file name passed from Properties.Return to Table of Contents
Specifics Pertaining To Certain Controls:
Bitmap is a control holder for a .bmp file. Select the .bmp filename in Properties.Return to List or Return to Table of Contents
Icon/Image is a control holder for a .ico file. Select the .ico filename in Properties.
Return to List or Return to Table of Contents
Static Text is a control often used for a label or caption of other controls. Use setText to set the text or use Caption from Properties.
Return to List or Return to Table of Contents
Edit Text is a control where your users may input data. Use SetText and GetText to put data into the control and to retrieve users input.
Return to List or Return to Table of Contents
Edit Text with Label is a normal EditText control with an adjustable 'Label'. The 'Label' may be on the left or right. As you key in data into Properties 'Caption' attribute, the label portion will change. To add data into the EditText portion of the control, use Properties 'Data' attribute. Note that Properties Col and Row reflect the position of the EditText portion of the control. It is your responsibility to move the control placement such that the label portion does not fall into another parent. When generating the EXW, the label portion is stripped and used in a LText control.
Credits:
- This control was requested by Ward Turner.
- Andy Drummond suggested LabelEdit "label" be optionally on Left or Right.
Return to List or Return to Table of Contents
Mle Text is a multiple line text control.
Return to List or Return to Table of Contents
Rich Edit is a formatted text control. This is the class of control that is used for Microsoft Windows WordPad(tm) program. Data is placed into and retrieved from this control in a number of ways. Please view the Win32lib documentation.
Return to List or Return to Table of Contents
Menu opens a Menu and MenuItem Editor. This editor allows you to design you Menus for a Window. There is no control in Form Design for Menu.
Return to List or Return to Table of Contents
Popup opens a Popup and PopupItem Editor. This editor allows you to design you Popups for a Window. There is no control in Form Design for Popup.
Return to List or Return to Table of Contents
Frame is a bordering control. You may assign other controls as children to Group. A common usage is to place Radio controls that react together as a unit, such that only one of them is checked at a time, in a Group control and parented by the Group.
Return to List or Return to Table of Contents
Push Button is a depressable button. In IDE there are several other classes of PushButton which are different in the Properties they may use.
Return to List or Return to Table of Contents
Radio Button is a control which may be checked and unchecked. When checked a little dot shows in a circle next to the button. When you have several related radio buttons, one of which may be checked at a time, they are usually placed in a Group control.
Return to List or Return to Table of Contents
Check Box is a control which may be checked and unchecked. When Class changed to TriCheckBox the background behind the check mark is light gray.
Return to List or Return to Table of Contents
Credits:
- TriCheckBox depiction to shaddow the check mark was suggested by Rajesh Deshpande when drawing in Design.
Combo is a control which contains lists of data in a dropdown segment.
Return to List or Return to Table of Contents
List is a control which contains lists of data in a scrollable box.
Return to List or Return to Table of Contents
Horizontal Scrollbar is a control with a moveable bar. The bar is usually along the bottom of a window.
Return to List or Return to Table of Contents
Vertical Scrollbar is a control with a moveable bar. The bar is usually along the right side of a window.
Return to List or Return to Table of Contents
Progress Bar is similar to a scrollbar except it can be placed anywhere in the window.
Return to List or Return to Table of Contents
Page Control (Tab Control) is a container for TabItem control. When adding Page Control (Tab Control) the first TabItem control is automatically added to Form. In order to have multiple lines of tabs and/or the tabs at bottom of control you will need to select the Tab Control via ProjectView or the control name dropdown in Properties.
Return to List or Return to Table of Contents
To add an additional Tab Item, select the icon from the Tool Box by clicking on it, and then click the existing Page Control (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. You 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 down arrow 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 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 is sized 250 width and 200 height and can be resized via Properties "font\Points". Resizing from the Design pad is 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 you 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. 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.
When designing the UpDown control remember that the Buddy control must be large enough to accommodate the data that the updown will place there but also large enough to hold the actual updown control since the UpDown control will position itself on top of the Buddy.
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. Also when Status Bar is in a CWindow and the CWindow is resized, the Status Bar is sized accordingly. The Status Bar always resides at the bottom of its parent Window or CWindow.
Status Bar may not be copied but may be moved to another Window or CWindow.
Hints may be assigned to child controls of Status Bar but they will only show if the child control receives mouse events.
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 down resize arrow and add a new 'row' to the Tool Bar or change the Height Properties value. Drag 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 resize arrows are very hard to use 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, you 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
Flat Tool Bar is similar to Tool Bar except it has a larger depth. Adding buttons is identical to adding a button to Tool Bar. Flat Tool Bar needs three icons associated with it for the different states the button is in.
Return to List or Return to Table of Contents
Separator Button is similar to Tool Bar Spacer.
Return to List or Return to Table of Contents
Tree View is a control that shows information in an outline format. Items that are grouped under another item are indented. You may assign an icon to each node to indicate the node is open or not. If you don't want an icon, use -1 for open and close folder icon names when using the setTVItem function. The open and closed icon is set up for Tree View and List View (see below) with an extractIcon statement.
Return to List or Return to Table of Contents
List View is a control that shows information similar to a List control only there are distinct columns. IDE will help you build a listview control with Menu Edit/ Visual List View Explorer.
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 and bounded by an optional border. 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 parent window background. If a background is not desired, in Properties remove contents of Caption for the Table and do not supply Color. If you select a Border around the table, when the EXW is generated the LText is changed to a Group control. If your cells do not all fit inside the Table, LText does not convert to Group.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. You have complete freedom designing the Cell. Use Properties to select color and font for the Cell. If a particular control is not desired for a cell, it may be suppressed in the generated EXW via "Suppress Cell." It is recommended that you 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 (or left clicking on the Table and in Properties) 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 you select 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, you 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. You 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 cell 1.
Normally when a Table is created via Table Specs, the number of cells are created and the Table is adjusted to surround them. However you may create a small Table which contains many more cells than can fit inside its boundaries by creating "small foot print" Tables. Drop the Table icon on Design and size as it should appear in the generated EXW. Add cell one controls as usual, right click somewhere in the Table and select Table Specs. In Table Specs, in "Size To Fit Cells", check "No" and then decide if scrollbars are needed. Making the Table resizable by the EXW end user may also be selected. This type of Table may also be an created as an array. When returning to Design you will see only the cells that actually fit inside the boundaries of Table. To see the rest, right click on Table control and select "Show Full Size". The window that is opened will show the Table as the generated EXW would create it. Cells outside the Table boundaries may not be seen in Design but may be manipulated via Properties. Use the Property Drop Down to select this type of cell.
Beginning with v0.19.0 you may elect to have your arrayed Table cells created in the generated exw. The advantage of this method is IDE does not createEx each control occurance in the exw; instead a for-loop in the generated exw is used to createEx the array controls. This method greatly reduces the statements in your exw. To use this method in Table Specs check "Generate array in exw." You may also elect via "Add border around Table ....." to place the Table in a Group control instead of LText so that a "border" surrounds the Table. This may not be used when all cells are not within the Table control.
Beginning with v0.19.2 new project Tables have their cells generated using a unique caption, styled as cn_x_y where cn is the letter "c" followed by the control number, x is col and y is row. If you change or remove the caption of one of these cells the new caption will be shown instead of the cn_x_y technique for that cell. Because of the method IDE uses to determine that the caption has changed since the cell was created, older projects with Tables generated in the exw might never use the cn_x_y style even if you have previously changed the cell caption because IDE was not storing the original caption at that time. The rule is as follows; if original caption (determined when control was added to Design) is the same as the current caption, IDE assumes you have not changed the caption and will use the cn_x_y method. If the original caption and current caption differ, then IDE will use the current caption. However if the current caption is spaces, regardless of the value of the original caption, IDE will use spaces in the caption. When loading older project files IDE will be set the original caption to spaces.
Credits:
- Andy Drummond suggested the new array method and supplied code to produce in the exw.
Return to List or Return to Table of Contents
EuGrid , a custom control written and maintained by Phil Russell, has been added but is fairly simple at this time. IDE assumes you have some familiarity with EuGrid and questions about using EuGrid should be directed to Phil. Questions about the interface between IDE and EuGrid will be handled by the IDE staff (that's me.) There is no support at the cell level. IDE distribution does not include a copy of EuGrid.ew so you need to obtain a copy from Euphoria's Recent Contributions Page and place in Euphoria\Include, your EuInc folder or project folder and add to Manage Include Statements before F5/F6. EuGrid acts like toolbar when adding controls so you do not have to try to line them up yourself. What you add are controls representing a row. Then in Properties for EuGrid you add the setGridProperty values and in Properties for each control on the row you can add the setColumnProperty values. There is not a provision for adding beyond the CX of the Grid. Create your data array in (Intro) and add the name of the sequence in EuGrid/Data Name Array Property.
Return to List or Return to Table of Contents
ReBar and ReBarBand control may be used instead of Tool Bar or Flat Tool Bar. You 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 you change 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 you desire.
Return to List or Return to Table of Contents
ReBarBand is described above under ReBar
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 icon is always necessary and will be used when hot and/or disabled ico file names are not specified. When you have 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. You may rotate between the ico files shown in Design by pressing F1, F2 and F3.
Return to List or Return to Table of Contents
Child Window control is a special Window control that has type WS_CHILD automatically assigned. If you remove WS_CHILD style you will need to position CWindow in parent Window yourself and also position when moving the parent Window, The depiction in Design is not exact and some trial and error must be handled by the user especially when changing Styles.
Credits:
- Many improvements to Child Window were submitted by Rajesh Dashpande.
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 w32HTimer 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-w32HEvent pair. The Editor allows you to select these pairings and will insert the setTimer and killTimer statements in any routines you add via Code Editor or will create these control-w32HEvent routines if you have not coded them. These routines, generated by IDE, are not reflected in the Code Editor. If you elect not to specify the set and/or kill control-w32HEvent, then you must code these statements.
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 you click the 'Add' button.
Return to List or Return to Table of Contents
Return to List or Return to Table of Contents
WinlibScan
This program in IDE's distribution may be used to quickly update your Code Editor Win32lib.ew keywords when you change Win32lib.ew versions.