Don't have an account yet? Then register once and completely free of charge and use our wide range of topics, features and great options. As a registered member on our site, you can use all functions to actively participate in community life. Write posts, open topics, upload your pictures, put your videos online, talk to other members and help us to constantly improve our project and grow together! So, what are you waiting for? Become a part of us today!
To get support for a technical issue such as installing the software, to query a purchase that you've made/would like to make, or anything other than using our software, please visit our Customer Service Desk:
Welcome to our brand new Clickteam Community Hub! We hope you will enjoy using the new features, which we will be further expanding in the coming months.
A few features including Passport are unavailable initially whilst we monitor stability of the new platform, we hope to bring these online very soon. Small issues will crop up following the import from our old system, including some message formatting, translation accuracy and other things.
Thank you for your patience whilst we've worked on this and we look forward to more exciting community developments soon!
Hi grimmy, Target path can be found using the expression Get Raw Path.
Checking the extension today, I just realized that the extension struggles to read files for which user has got only read access. I don't remember why exactly I have put STGM_READWRITE instead of STGM_READ but, basically, for you it means that you might need to copy the shortcut somewhere else (like in the temporary folder) before playing with it, either systematically or if the extension returns an Access Denied error code.
Hi DemonD, Usually the first thing we think about is using Compare two general values. Here I will just present a version that works well in all cases (even when having several instances of the same object):
Always + Set alterable string ??? to: Lower$(Edittext$( "EditBox" ) ) Alterable string ??? = "car" + Do something
Hi jay73, Have a look to this thread: Please login to see this link. ouly
Edit: by the way, it's a really bad practice to load relative file. It's context and execution path dependent so it will more likely fail another time just because the context (working directory) has changed somewhere and somehow in your code.
I'm not really familiar with using XML file in CF2.5. For now I mainly exported data as XML (without using specific XML extensions) but not imported them in CF's applications. Some extensions have partial XML support, like Named Variable Object. If you are willing to have full XML support, XML Parser object is probably the way to go.
Hi ffomega, Array object only supports Array file format. You will not be able to load a XML file in it directly.
If you are willing to use XML file, several other extensions support XML format. If you prefer to use Array object, then you will have to use native Array file format.
Oh sorry, I'm mixing with MMF1.5. So in MMF1.5 Apppath$ was equivalent to Appdrive$+Appdir$+Appname$ and starting with MMF2 it is only Appdrive$+Appdir$ (see Please login to see this link. for details).
Using AppDataDirectory$() expression will return the right path according to the current configuration. It's the interesting thing of expression that they will not always return the same string but compute the right one when called. AppDataDirectory$() will works well on Windows XP and above.
Effectively, the Hi-Score object is creating a Clickteam folder in AppData and current directory is changed at the same time. I don't think it can be prevented any way.
If you don't specify any INI file, Hi-Score object will use cncscore.ini by default and still create Clickteam folder to store this file in it.
Appdrive$ + Appdir$ == Apppath$ (not valid in CF2.5). If you don't specify Appdrive$ before Appdir$, the path is a relative one and therefore may not produce the same result all the time (this will depend on the code before and the current state of the computer).
If you are willing to save the data for all users on the same computer, the folder to use is: AllUsersAppDataDirectory$( "FilePath" ) but in most of the cases, the right folder is this one: AppDataDirectory$( "FilePath" )
Hi Mike, Do you have any INI object in your application? If yes, untick its following property: "Create file in AppData directory".
Additional comments:
Set directory to original should not be used in most of the cases. Setting directory to original revert current working directory to the original working directory which may not be the same as executable directory. Use set directory to Apppath$ instead.
Changing directory should be done before saving array file. This means that File object's actions must be before Array object's action.
Don't save data beside executable because the directory will probably be read-only (and it supposed to be read-only for security reasons) but save them in Application Data instead.
Hi Ziplock, Could you give more details about the crash? Normally when the message appears, there is a link (or button on older Windows) that allows to obtain more informations about the crash. At least to know if it's the runtime or a specific extension that crashes would help. ouly
Bonjour, La saisie du texte est peut-être en Unicode mais, à moins d'avoir l'extension Unicode pour MMF2, les données de l'objet String seront ensuite vraisemblablement converties et stockées en ANSI (8 bits). Un autre élément qui pourrait expliquer l'affichage des points d'interrogation serait que l'interface de MMF2 affiche les chaînes de caractère avec une police de caractère ne supportant pas le jeu de caractère (japonais) employé. Dans ce cas-là, il devrait suffire d'exécuter la scène en indiquant la police de caractère adéquate sur l'objet String pour vérifier que les données et le rendu final sont corrects. ouly
I'm not against sub-events but I would prefer something well-defined, robust and secure than having a bunch of new features not properly designed and integrated. Looking at the picture, it seems simple and easy to do. But then thinking about concept behind, I agree with Joshtek, it could easily become a mess and increase risk of programming errors due to specific language features to handle.
By the way, another option that may be interesting some times: String Parser seems to skip empty elements, therefore adding NewLine$, Right$(NewLine$,1) and Left$(NewLine$,1) as delimiters may produce the same result.
Another thing: here I assume that NewLine$ is CR + LF. I don't have any experience with CF's exporters, it could not be the case on all platforms. In this case, it could be better to add sequences using chr$( "String Parser", 13) and chr$( "String Parser", 10). In addition, when using Unicode input strings, it could be even different and everything said about NewLine$ and its use may be unapplicable.
Hi everyone, Be careful when using Rich Edit object, if you are enabling use of Rich Edit 2.0 library, newlines are encoded with only one character (CR) and not with two characters (CR + LF). It may be the reason why String Parser is not splitting the string properly.
To ensure compatibility with most of input strings, it could be interesting to replace NewLine$ (which is CR + LF) to Right$(NewLine$,1) (which will be LF) and Left$(NewLine$,1) (which is CR) to Right$(NewLine$,1) (again LF character). ouly
Hi MOBii, To convert signed char to unsigned char, you can just use the following expression: char and 255 With Binary Object: byte( "Binary object", > position <) and 255
Hi Tinez, There is one object called "Process Viewer" that should be able to do the job. Here you have an example Please login to see this link. if you need. ouly
Sure you can do that! In expression editor, you can just retrieve data from another object or global data. Have a look into the documentation to see how expression editor works.