Resource Wizard v1.01 Copyright (c) 1997 Simon Goldstone SIMON GOLDSTONE email: simon@sigol.u-net.com Description: ============ A Delphi 3.0 component which enables visual components to be localized for different languages quickly and easily. The component looks at every control on the form it is placed upon. If the control's caption starts with a special code and then an integer value, the integer value is used to load a string from a resource file. This string is then assigned to the caption. For instance, suppose that a TLabel is placed upon a form with the caption '*1234'. When the Resource Wizard executes, it looks in the EXE's string resources for string number 1234. If such a string exists, the caption is assigned the string, otherwise it is left blank. Standard Disclaimer =================== USE THIS COMPONENT AT YOUR OWN RISK. IT'S AS SIMPLE AS THAT. No warranty as to fitness for purpose is given or implied. If you computer explodes as a direct or indirect consequence of the use or miuse of this component - tough! Cost ==== This software is HonestyWare Shareware. If you belong to an academic institution (student, lecturer, etc.) This component is free to use (you're welcome) so long as you do not profit from or charge for any software which uses this component. This component must only be used for research purposes. If you are a commercial enterprise or you intend to profit from or charge for software which uses this component, then the charge for royalty-free lifetime use of this component is an enormous # 5.00 (FIVE BRITISH POUNDS STIRLING). For payment details, contact the author: simon@sigol.u-net.com. Please do not rip me off. For the sake of #5.00, be nice. Source code is available for an extra # 10.00. Installation ============ If you have any problems installing the component, contact me and I'll try to help you: simon@sigol.u-net.com This version is for Delphi 3.0 ONLY. Other Delphi versions may be supported if there is a demand. To install: 1. Put the .DCU and .DCR file in a directory of your choice (where you keep all your custom components) 2. In Delphi, choose Component|Install Component... 3. In the Dialog Box, choose either tab. 4. If you chose to install into an existing package, browse for the .DCU file, make sure the search path is set up and then browse for the package file you want to add the component to. 5. If you chose to install into a new package, follow the steps above but type a new package name in the field. Consult the Delphi help for more info on installing components if you get stuck. 6. The component is called TResourceWizard and will be located in the component pallete under the "SiGol" page. Usage: ====== 1. Place a TResourceWizard component on the form. Place some visual controls on the form as desired. Set the controls' caption property to '*' followed by an integer (no spaces). Note that you can do the same for the form's caption too. 2. If you want the Resource Wizard to automatically load resources from the EXE's resource table when the wizard executes, set the AutoLoad property to true. If you want to assign the strings yourself at runtime when the component executes, set the AutoLoad property to false. 3. If the AutoLoad property is true, create string resource files as necessary and compile them using BRCC.EXE (see below). Then link the compiled resource file into the form's unit using the {$R XXX.RES} compiler directive. 4. If the AutoLoad property is false, create a TResourceChangeEvent. In this event implementation, write the code which manually sets the caption property. Note this event will ONLY fire if the AutoLoad property is set to false. 5. In the form's OnCreate event, call the wizard's Execute method: ... begin ResourceWizard1.Execute; end; ... 6. Run the project. Example: ======== An example project and string resource file is included in the original ZIP file. Creating String Table Resource files ==================================== 1. Create a new text file in the editor. Give this file any name but give it the extension .RC (convention). The format of the file is as follows: STRINGTABLE DISCARDABLE { INT STRING INT STRING ... ...... ... ...... INT STRING } Where "INT" is an integer identifier and "STRING" is the string you want it to represent. 2. Once you have creates the resource file, save it and then run the BRCC.EXE program (usually located in the Delphi/Bin directory. BRCC.EXE name.rc This will compile the resource script and produce a resource file (SAMENAME.RES). 3. You must then link the resource file into your unit: {$R SAMENAME.RES} 4. That's it! AutoLoading =========== If AutoLoad is set to true, the Resource Wizard looks in the resources for the EXE. If AutoLoad is false, the Wizard uses the OnResourceChange event which you should define. If you do not define an OnResourceChange event and AutoLoad is set to false, the captions of all controls on the form will be set to blank. OnResourceChange ================ The format of the OnResourceChange event is as follows: type TResourceChangeEvent = procedure ( Sender: TObject; Comp: TComponent; Ident: Integer; var Caption: string) of object; Sender is the ResourceWizard that called the event. Comp is the control that needs localizing. Ident is the integer identifier for the resource string to load. Set the caption property as appropriate. Simple example: TMyForm.ResWiz1ResourceChange ( Sender: TObject; Comp: TComponent; Ident: Integer; var Caption: string); begin case Ident of 1001: Caption := '&OK'; 1002: Caption := '&Cancel'; 1003: Caption := '&Help'; end; end; TROUBLESHOOTING =============== Don't forget to use the Execute method ! BUGS / PROBLEMS =============== If you encounter any problems or bugs using this component, I'd like to hear from you. Please contact me on simon@sigol.u-net.com. I can't promise to fix the problem, but I'll try. History ======= 28-Aug-97 Release 1.1. 28-Aug-97 Added form caption handling 28-Aug-97 Release 1.0. 27-Aug-97 Beta version and testing 26-Aug-97 Added AutoLoading and OnResourceChange event 25-Aug-97 Alpha version