> For the complete documentation index, see [llms.txt](https://doc.sysdevmobile.com/kalipso/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.sysdevmobile.com/kalipso/documentation/project/properties/other.md).

# Other

You can customize and protect your Project simply by checking a few Options. Please revise them because they directly influence the execution of your Project once deployed.

<figure><img src="https://1614058754-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ5vDGuBZwhJDeu5Rq7Wt%2Fuploads%2Fgit-blob-8b7ebd235ee19812523838f5a50076cc58d3f065%2Fproject_properties_others_1.png?alt=media" alt=""><figcaption></figcaption></figure>

* **Custom error Message** - The error message added after Actions that return ERRORCODE. This property is only enabled when, in **File > Settings > Actions**, the error message option is set to **\<Defined in Project>**. See [Settings - Actions](/kalipso/documentation/environment/file/settings/actions.md).
* **GPS Unit** - GPS unit used by the TOMTOM and GPS Actions.
* **GPS Distance Bearing** - Direction in which the bearing is measured by the GPS Actions. It can be one of:
  * *Clockwise*
  * *Counter Clockwise*
* **Resize Mode** - Allows the application to automatically resize to better fit the actual device where it's being executed. For example if the project terminal is defined has 1200x640 and the application is then executed on a device with 1800x800, then all the objects in the application will be stretched 1.5 times in the horizontal dimension and 1.28 times in the vertical. The font sizes will also be adjusted by the smaller factor, in this case 1.28. So if the application is executed on devices with similar width/height ratios, it will "look good" on all those devices without any modification to the project.
* **Resize Font Mode** - Allows the fonts to automatically resize to better fit the actual device where it's being executed. For example, if the device has a smaller height compared to the project terminal, but the same width, using the Y axis, the font will be bigger and won't fit. If the user chooses the smaller axis, the fonts will fit both in width and height.
* **Idle Time** - This parameter allows to define the time, in milliseconds, to trigger the "On Idle" Event.\
  The Event will be triggered when no Action has been executed during the amount of "Idle Time".
* **Android Camera Scan Mode** - Allows to define which library Kalipso uses on Android to read barcodes through the camera. The options available are:

| **Option**                | **Description**                                                  |
| ------------------------- | ---------------------------------------------------------------- |
| Internal Library (ML KIT) | Use the ML Kit library shipped with KClient                      |
| Installed ZXing App       | Use the installed ZXing app                                      |
| Automatic ZXing           | Use ZXing app if installed, use internal ZXing library otherwise |
| Google Code Scanner       | Use Google Code Scanner                                          |

* **Automatically Refresh Combos, Lists and Radios with only Fixed Values** - Loads Combos, List and Radios data even without calling "Refresh Control" Action. If your Control has only Fixed Values, it's automatically refreshed with that data. If you uncheck this property, you’ll have to use “Refresh”, “Refresh Plane” or “Refresh Control” Action for the Control to be filled with the defined fixed values.
* **Prevent the execution of Update/Delete Statements without 'Where' clause** - Returns an error if you try to execute an Update or Delete SQL Statement without "where". By checking this property, any Update or Delete statement that you’ve defined in your Project that doesn’t have a “Where” (ex: “update Products set Stock = 10”, “delete from Products”), will not be executed and an error will be raised. You can enable this feature individually for Online and Offline Databases. If you really want to execute and Update or Delete statement without a "Where", we advise you to keep this option checked and to define a dummy "Where" in your Update or Delete statement (ex: “update Products set Stock = 10” where 1 = 1, “delete from Products” where 1 = 1).
* **Prevent SQL Injection** - “Does what it says”. When defining SQL statements in Kalipso, you can use values inputted by the user, therefore is possible for the user to “inject” SQL code into your statement. If you activate this property, Kalipso will check for the existence of semi-colon (;) outside single quotes (’).
* **Prevent "Replace Mode" to be applied in "Update Project" with unsynchronized data** - Kalipso won't update the Project with replace mode if there is unsynchronized data.
* **Prevent automatic Keyboard Display** - Controls the visibility of the Keyboard. This option is disabled by default on new Projects. Projects from previous versions won't be affected by this parameter.
* **Hide Navigation Bar** - Controls the visibility of the Navigation Bar. This option is disabled by default on new Projects. Projects from previous version won't be affected by this parameter.
* **Ignore Barcode Action errors on Simulator** - Ignores errors from the Barcode Actions in the Simulator. When testing applications that use Barcode Actions on Simulator the errors returned by the application will be ignored.
* **Run Project in Memory** - Kalipso projects are stored on the device in the “.KPR” file and executed directly from the file. Activating this option will cause the project to be loaded from the “.KPR” file into RAM memory. The 2 bigger advantages are: faster execution and in case of Win32, will allow multiple instances of the Same App to execute The biggest disadvantage is memory consumption, since it will use more RAM memory to load the project.
* **Save Project modifications** - When using “Run project in Memory” option, changes made by actions like “Set DB Profile Parameter” are lost when the project is closed, since they are made in RAM memory. Activating this option will cause Kalipso to also write those changes into the “.KPR” file making them persistent.
