I'd like to start by saying that... all IDE settings and recently opened files and project names will be saved every time you close EditAide. This information can be found in the 'EditAide.ini' file (if need be). IDE settings include (but are not limited to)... the last location on your computer screen, the width, and the height. The default background color and font used by the Richedit(s). The default Compiler settings. And a few other items including as I said... recently used file and project names. I strongly suggest that you do not edit it unless you know what you are doing (and have made a backup copy first). Ok. Now with that out of the way... let's start at the top of the IDE and work our way down. You'll notice that there are only a few menu items at the top. This is because, nearly all of them, are only for doing tasks with your source codes. Almost everything else has it's own PopUp menu. (Note: each RichEdit has it's own PopUp menu too) I removed the Short-Cut keys from the top menus because... they cause problems with an API created RichEdit. BUT... you can find references to them in the RichEdit PopUp menus. (Special Note: the Short-Cut keys ONLY work when a RichEdit has focus) (As a side note: EditAide makes use of the RichEdit20A common control so that more features like... multi-level Undo/ReDo could be made use of) One very useful Short-Cut key that beginners (or maybe yourself) will appreciate is the F1 key. Pressing F1, when the cursor is within a word, will do a Contextual Help. First it checks to see if the word is a RapidQ keyword, or property, or method, or event. If it is... the RapidQ help file is displayed and a search is performed on the word. You can then select the topic you want to display (if any are available). As a footnote... topics for RapidQ constants are only displayed if the search can find the constant in the help file. If the word is not related to RapidQ... it then checks to see if the word is an API function. If it is... the Win32.hlp file is displayed (special note: if you do not have the Win32.hlp file... Context Help for API functions won't work. my suggestion would be to download it (a link to the Win32 help files can be found on my website under the RQ Links web page) and install it in a folder of your choice). then display the Help menu options (either main menu or popup menu) and select the folder where you installed the Win32.hlp file (once a valid folder is located... this menu option is disabled). also note: not all API functions will be found in the Win32.hlp file (this is because... numerous new functions have been created since the Win32.hlp was created). if it's not found... the Win32.hlp index page is shown. if the index page is shown... I'd suggest closing the Win32.hlp file and using EditAide's Search the Web option). And finally... if no match is found (within EditAide's own pre-defined list)... a message box will appear stating that no help was found for the word. There is one Short-Cut key not referenced on the RichEdit PopUp menus... the F3 key. Pressing F3 will automatically select the Find / Replace option. From this point on... I'll refer to the TabControl and the RichEdits, collectively, as the Code Editor. Below the top menu is the Code Editor. This is where you'll do all of your source code editing. The Code Editor's TabControl has been updated to use XP style Tabs (Thanks to Paul L. who showed us how to change the old drab boring style to a more modern XP style). RapidQ source code files (.bas,.rqb,.rqw) and/or include files (.inc) can be loaded into the Code Editor using any of these methods... a) from the top menus or the RichEdit PopUp menus b) from the Previous Files panel c) 'Drag And Drop' them from Windows Explorer® d) pass it to EditAide.exe as command line parameter. e) from the Files/Project Browser If you need to open multiple files... create a project file (see below) and pass the project file name as a command line parameter. RapidQ project files (.rqp) can be loaded into the Code Editor using any of these methods... a) from the Project Editor panel b) from the Previous Projects panel c) pass it to EditAide.exe as command line parameter. d) from the Files/Project Browser You can also load a project file into the Project Editor from the Previous Projects panel. (Footnote: Any Previous Files and/or Previous Projects that no longer exist are NOT added back to their respective panels each time you start EditAide because there's no point in adding them if they don't exist anymore. True?) Below the Code Editor is the Statusbar. I decided to put it just below the Code Editor because it should make it easier to see important information that's relevant to the current file you're working on. The first Statusbar section contains the current Line Number and the Cursor Position. The second section has an icon that is green when there is NO intense activity occurring and red when there IS intense activity occurring. Instense activity might include things like... loading a project, into the Code Editor, that has NUMEROUS files to be loaded. Or... loading an extremely LARGE source code file into the Code Editor. Or... doing a search that will produce NUMEROUS results. It's just to inform you that EditAide is busy doing something and that you have to wait until it's done. The third section tells you whether you are in INSERT mode or OVERTYPE mode. The fourth section tells you if the 'Caps Lock' is on. And the fifth section tells you the FULL path and filename of the file you're currently viewing. Below the Statusbar is a Button (actually it's a Panel) with some arrows on it that... when clicked on... will hide the Option Panels (This might come in handy if you load, into the Code Editor, a large number of files and need to have the ability to have a better view of the files). Clicking it again will show the Option Panels again. Below the Button is a Splitter that I created. The reason I created my own is because... I didn't like the way QSplitter looked and I didn't like the way it worked. The purpose of the Splitter is to allow you to view more of the Option Panels (which are at the bottom). This will come in handy, especially when using the Find / Replace option or the Search the Web option (but I'll explain more about that in just a minute). You can click on it and drag it upwards 50 pixels and then back down 50 pixels (or anywhere in between). Why did I limit the range to 50 pixels? So that no matter how far you move the Splitter... both the Code Editor and the Option Panels will ALWAYS be visible (unless of course... you resize EditAide's height to something ridiculously small). When you close EditAide... the location of the Splitter is saved so that you won't have to adjust it over and over again. Below the Splitter, and off to the right, is the Option Selector Panel. Clicking one of the RadioButtons will display the appropriate Option in the panel to the left of it. The Previous Files panel will show the last 10 files you've had opened. It has it's own PopUp menu that contains some simple basic operations. The Previous Projects panel will show the last 10 projects you've had opened. It too has it's own PopUp menu containing some simple basic operations. The Project Editor panel is where you can either... a) build a project and then save it. b) load a previous project and edit it. After the Project Editor has a name and some files to work with... you can load it into the Code Editor provided... it's an "un-modified" project. If you've just built a project (or edited a previous one)... save it first with the file extension...".rqp". When you load it into the Code Editor... the project's filename is added to the Previous Projects panel (if it's not already on the panel). The Project Editor has it's own PopUp menu containing some simple basic operations. There are 2 sample project files included with this IDE. BUT... they're ONLY for example purposes. They're just plain text files containing nothing more than filenames. The reason they're for example ONLY is because... the filenames, within the 2 sample projects, probably won't exist on your hard drive. If you were to load them into the Project Editor... you'll see that any file that's missing will be noted as "Missing". To fix this problem... use the Project Editor's PopUp menu... "Add a Project File"... to find the missing files and then delete the ones that are noted as "Missing". Once you've got the filenames right... you should save it and then try loading the Project into the Code Editor (to see how it works). Next is the Find / Replace option. It's not like the "typical" Find or Replace options of other applications. It will display a panel in which you can search the entire current file for any text you want and a complete list of results, for that search, will be displayed in a ListView. Here's one place where the Splitter might come in handy. If you feel the height of the ListView is too small for your liking... just move the Splitter upwards. If the width is too small... just increase the width of EditAide (or click EditAide's Maximize button). The ListView header has 3 sections. The first section shows 'R : G'. The 'R' is to remind you that any checkboxes below it are for Replace. The 'G' is to remind you that any arrows '-->' below it are for Goto. The second section shows 'Line #'. This column will display the line number(s) of where search results were found. The third section displays how many (if any) results were found during the search. This column will display an exact duplicate of the line where a search result was found. If the search did produce any results... click on ANY arrow and then use the keyboard Cursor keys to scroll around and view the ListView. You can toggle the checkmark(s), in the checkbox(es), with the Spacebar (or with a Mouse click). Pressing the Enter key on an arrow '-->' will tell the Code Editor to Goto that line and Select-Highlight a result for that particular line (Note: You might get more than one result with the same line number because the search found multiple instances within the same line). The ListView has a PopUp menu too but it only has one option... Clear. It will clear the listview and the edit boxes, and resets the buttons. (Note: If you do something goofy like... search for a single space... the Statusbar icon might turn red for a VERY long time. Also... I'm under the impression ListView.Clear launches a separate thread to do the clearing because the Statusbar icon turns from red to green before the ListView clearing has finished.) Also on the Find / Replace panel... you can optionally replace any search result items with the text that you want. Note: ONLY those items with a checkmark in the ListView will be replaced. That way you'll only be replacing what YOU decide needs to be replaced. You'll also notice a checkbox to the left of the 'Replace Checked' button. Clicking it will toggle between... ALL result items being checked, or ALL result items being unchecked. I would suggest using it only if you are 100% sure that you want to replace ALL the result items. If you replace 'anything' the search results will have become invalid, and the ListView is cleared. If you modify the file and then try doing a replace... you'll get an error message. Also... if you did a search within one file... and then switch to another file... any results still showing in the ListView will NOT apply to that file (Meaning... you have to run the search again if you switch to a different file). Next on the Option Panel is the Search the Web option. I don't know about you but... I couldn't begin to count the number of times I've needed help with writing some code and needed to see an example, but I didn't want to have to start up my web browser just to find an example. My solution to this problem was to build a web browser into EditAide. You can either select a pre-defined URL from a ComboBox or manually enter a valid URL in an Edit box. This option only works if you're connected to the internet. If you're not... you'll get an error message telling you that you need to make a connection and then try it again. Here's the other place where the Splitter might come in handy. Move the Splitter upwards to get a better view of the displayed web page. Some web pages will be difficult to use because of the limited viewing area. For instance... JohnK's website makes use of "MouseOver" menus. I found that if I put my mouse "on top of" a menu option and then use my keyboard Cursor keys to scroll down... I could click on any of the sub-menu options. How I'm going to fix the limited viewing area is unknown at the moment. It would be nice if it was larger but then if it's TOO large you won't be able to see your source code (which might make it difficult if you wanted to... compare your code with coding you found on some web page). The best solution I've found is to Maximize EditAide and move the Splitter upwards. You'll probably also notice that there is a file in the EditAide folder called... blank.html. As near as I can tell... the newer versions of Internet Explorer® won't allow you to navigate to a string (like you could do in the old days). So to get around this problem... when you first select the Search the Web option... it navigates to the blank.html file. As a footnote... it would seem that the only way I could get the web browser to resize properly (say for instance... if you clicked the Maximize button) was to destroy the web browser and then re-create it and have it navigate to the last URL that was displayed. I have no idea why it won't resize properly... unless I do it this way. Also take note... this option is a memory hog! It creates a MS web browser interface using the QOleContainer (MS. Need I say more... as to why it's a memory hog? LOL). Next is the Compiler Defaults option. It will display the default options that will be used EVERY time you compile. I'd suggest setting them to what you would use 'most often' because these defaults are saved when you close EditAide and restored when you start EditAide. If you have a special case where you need to change any of them temporarily... display the Compiler Defaults panel, make the changes, and then compile. But remember to go back to the Compiler Defaults panel and change them back to what you normally use before you close EditAide. If an error is found during compiling within a file that is already loaded into the Code Editor... it'll become the current file (with the compiler results telling you what the error is and where it found the error). If an error is found during compiling within a file that is NOT loaded into the Code Editor... it'll be automatically loaded and will become the current file (with the compiler results telling you what the error is and where it found the error). In either case... the RichEdit's cursor will jump to the beginning of the line of code in error. Also note... if you attempt to compile and there's already an instance of your application running... you'll get an error message in the compiler results panel telling you to close it and then try compiling again. You would not believe how many times I've made this mistake. So I thought I'd add this feature for those who are like me and have made this same mistake (repeatedly). The only big problem I've had so far with the compiler results is... if the error says... "Missing End If"... it does NOT tell you 'which file' is missing an "End If". Which means... you have to manually search ALL the files needed for your application. Maybe I'll try add some coding to do the search for you (when I get enough free time). The next option is the EditAide Defaults. Here you can change different options that pertain to the Code Editor. You can optionally highlight keywords. Or you can optionally display line numbering. Or change the default color settings for the line numbering. Or change the default color settings for highlighting AND which keywords to highlight. Or change the font or background color of 'individual' files that you are working on. Or set the default font and background color to be used otherwise. You can also change one of the properties of the TabControl. You can select either Multi-Line or Single_Line (Multi-Line might help you in locating a file quickly when working on a project with numerous files). And last but not least... there is a button to clear the UnDo/ReDo buffer for individual files. Why would you want to clear the buffer??? Because changing the font for a file adds an entry into the UnDo/ReDo buffer and 'occasionally' undoing a font change... screws up the way a Richedit displays text. So I made it an option that you might want to (or have to) use occasionally. And the last option is the updated File/Project Browser. If you have a preference for browsing instead of using a QOpenDialog... then this option was made for you. I replaced the QFileListBox with a custom component that I created called... QFileView. You can load an indivdual file (or project) into the Code Editor or load multiple files (or projects) into the Code Editor. For multiple files (or projects)... just select them as you would in Windows Explorer®. After you've made your selection(s)... use the PopUp menu for loading it (or them) into the Code Editor. In the QFileView... you can sort files found by... Name, Size, Type, or Last Modified by clicking on the appropriate header column. And if you need to refine the files displayed in the QFileView... use the PopUp menu to select an appropriate file mask. Let's see... what else? As an added feature... on either the top menu or the RichEdit PopUp menu under the Compiler option... you'll find an option to generate a Manifest file for you newly created application. This option will only become available AFTER you've created a application (generating one BEFORE an application is created is a BIG mistake. It's a nightmare to have to fix). And the option won't be available if a manifest file already exists (manually delete the old one if you need to generate a new one). What is a Manifest file? Windows® uses it when you application is running to give most of your componets on your form a more "modern" look to them. Oh and... the Tabs will show an icon on them that's appropriate for the file extension of the file contained within each Tab. There's 3 possible file extensions... a) unnamed b) .inc c) .bas,.rqb,.rqw If the icon has a pinkish color... that means the file is MODIFIED. If the icon is white... it means the file is NOT modified. If you compile your source code and one (or more) of the files loaded in the Code Editor is modified... the compiling process halts and a warning message is displayed. It does NOT necessarily mean that any of the modifed files are part of your application! But if any of them are part of your application... you'll be glad you got a warning first. If you clear or close a Tab and the file is modified... you'll be asked if you want to save it first. If you close EditAide and a file is modified... that file will become the current file and you'll be asked if you want to save it first. If you close EditAide and a project is modified... the Project Editor will become viewable and you'll be asked if you want to save it first. Actually... I've added error and warning messages all throughout EditAide. Hopefully there's enough of them to cover just about every kind of mishap that can happen. If you come across something that should have shown an error or warning message and it didn't... let me know and I'll add it as quickly as possible. Recently... I added printing and print-previewing capabilities. The Print menu option will be used for... when you are ready to actually print a document. The Print Preview menu option can be used for... seeing what the printed docuemnt will look like or to determine which single range of pages you want or need to print (Note: If you need to print just a single page... you can do that directly from the Preview window). The Page Setup menu option can be used for... making changes to things like orientation, margins, source bin, and paper type. Well I think that covers just about everything. Send me an email if you have any questions, or find any flaws, or have a suggestion that will improve the functionality, or a suggestion for a feature that would be nice to have. Thanks for trying EditAide. Author: David Burkley Date: December 27th, 2010 Website: http://burkleyd.ulmb.com Email: goto 'Contact' on my Website Testers: Terry P., John K., Istvan Contributors: Jacques (for his 4pCallBack.inc that allows the use of multiple WndProc's), Paul L. (for his tip on how to update the RapidQ libraries so that a TabControl can show the XP style) Troubleshooting: If you get an error message because a file (or files) can not be loaded... a) save everything b) close EditAide c) open EditAide.ini in Notepad d) change MaxTabCnt=50 to MaxTabCnt=## (NO SPACES! ## = a reasonable number) e) save EditAide.ini f) restart EditAide and try it again Unfortunately... MaxTabCnt has to be hardcoded. There's no way around it. If you change folders (in the File/Project Browser) and no files are displayed in the QFileView... right-click within the QFileView and make sure the mask is set to what you're looking for.