<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.appstudio.dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ClockMeister</id>
	<title>NSB App Studio - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.appstudio.dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ClockMeister"/>
	<link rel="alternate" type="text/html" href="https://wiki.appstudio.dev/Special:Contributions/ClockMeister"/>
	<updated>2026-07-15T18:32:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.appstudio.dev/index.php?title=Expressions_and_Operators&amp;diff=5792</id>
		<title>Expressions and Operators</title>
		<link rel="alternate" type="text/html" href="https://wiki.appstudio.dev/index.php?title=Expressions_and_Operators&amp;diff=5792"/>
		<updated>2014-04-03T20:06:02Z</updated>

		<summary type="html">&lt;p&gt;ClockMeister: Readability &amp;amp; Grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
An expression is a literal, variable, formula or FUNCTION procedure call that has a value. Here are some examples of expressions: &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;6/3 &#039;result is 2 &amp;lt;br /&amp;gt;&lt;br /&gt;
5+6/3 &#039;result is 7 &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;quot;This &amp;quot; &amp;amp; &amp;quot;that&amp;quot; &#039;result is &amp;quot;This that&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A string expression can be a string literal, a string variable, or it may combine string literals, string variables and substrings to produce a single string value. Similarly, a numeric expression can be a numeric constant, a numeric variable, or a function/variable that produces a single numeric value.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2.3.1 Arithmetic Operators ==&lt;br /&gt;
&lt;br /&gt;
NSB/App Studio allows the following arithmetic operators in this descending order of priority:&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| ( ) || || Parenthesis&lt;br /&gt;
|-&lt;br /&gt;
| ^ || || Exponentiation&lt;br /&gt;
|-&lt;br /&gt;
|* || / \ ||Multiplication and Division&lt;br /&gt;
|-&lt;br /&gt;
| + || - || Addition and Subtraction&lt;br /&gt;
|-&lt;br /&gt;
| % || || Remainder/Modulus&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parenthesis can be used to change the order of evaluation. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;PRINT 2 + 3 * 4 &amp;lt;br /&amp;gt;&lt;br /&gt;
PRINT (2 + 3) * 4&amp;lt;/tt&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Displays &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;14 &amp;lt;br /&amp;gt;&lt;br /&gt;
20&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NSB/App Studio supports floating-point arithmetic. The MOD function may be used to find the remainder of a division. The backslash operator (\) is used for integer (whole number) division. &amp;lt;br /&amp;gt;&lt;br /&gt;
Arithmetic operators can only be used with numeric expressions. They may not be used with strings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2.3.2 Relational Operators ==&lt;br /&gt;
&lt;br /&gt;
Relational operators compare two values and return a Boolean value of TRUE or FALSE. This result can be used to change the flow of a program. Relational operators have a lower priority than arithmetic operators. The relational are:&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| = || Equal&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;&amp;gt; || Not Equal&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt; || Less than&lt;br /&gt;
|-&lt;br /&gt;
| &amp;gt; || Greater than&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;= || Less than or equal to&lt;br /&gt;
|-&lt;br /&gt;
| &amp;gt;= || Greater than or equal to&lt;br /&gt;
|} &amp;lt;br /&amp;gt;&lt;br /&gt;
In the SET statement, the equal sign is used to assign a value to a variable, not as a relational operator.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2.3.3 Boolean Operators ==&lt;br /&gt;
&lt;br /&gt;
Boolean operators tie expressions together, returning a TRUE or FALSE answer. Arithmetic and relational operators are evaluated before Boolean operators. The NOT operator applies to one expression, while the other operators require two expressions.&lt;br /&gt;
&lt;br /&gt;
The Boolean operators are: &amp;lt;br /&amp;gt;&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| AND || Returns TRUE if the two expressions are both TRUE.&lt;br /&gt;
|-&lt;br /&gt;
| EQV || Returns TRUE if both expressions are TRUE or both expressions are FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| IMP || Returns TRUE if the first expression implies the second expression.&lt;br /&gt;
|-&lt;br /&gt;
| OR ||Returns TRUE if either expression or both of the expressions are TRUE.&lt;br /&gt;
|-&lt;br /&gt;
| NOT ||Returns TRUE if the expression is FALSE or returns FALSE if it is TRUE.&lt;br /&gt;
|-&lt;br /&gt;
| XOR || Returns TRUE if the neither of the expressions matches the other.&lt;br /&gt;
|} &amp;lt;br /&amp;gt;&lt;br /&gt;
Boolean operators can be used with any expression that returns a Boolean value.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2.3.4 Bit-wise Operators ==&lt;br /&gt;
&lt;br /&gt;
Since all numbers in NSB/App Studio are floating point, and bit-wise operators only work on integers, NSB/App Studio does a little behind-the-scenes magic to make it appear that bit-wise operations are being applied to a 32-bit signed integer. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Specifically, it takes the number you are working on and takes the integer portion of the number. It then converts the integer to the most number of bits that number represents, up to 31 bits (1 bit for the sign). So 0 would create a two bit number (1 for the sign, and 1 bit for 0), likewise 1 would create two bits. 2 would create a 3 bit number, 4 would create a 4 bit number, etc… &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
It&#039;s important to realize that you&#039;re &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; guaranteed a 32 bit number. For instance applying &amp;quot;not&amp;quot; to zero should, in theory, convert 0 to 4,294,967,295. Instead it will return -1 for two reasons; the first being that all numbers are signed so not always reverses the sign, and second NSB/App Studio couldn&#039;t make more than one bit from the number zero. Therefore &amp;quot;not&amp;quot; zero becomes one (~0=-1).  Consider the following summary:&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Operator !! Description !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| ANDb || AND ||1&amp;amp;1=1,1&amp;amp;0=0&lt;br /&gt;
|-&lt;br /&gt;
| ORb || OR || 1|0=1, 0|0=0&lt;br /&gt;
|-&lt;br /&gt;
| XORb || XOR || 1^1=0, 1^0=1&lt;br /&gt;
|-&lt;br /&gt;
| NOTb || NOT ||(Unary) ~1=0, ~0=-1&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;&amp;lt; || Shift Left ||1&amp;lt;&amp;lt;2=4 -- shift 1, 2 bits left&lt;br /&gt;
|-&lt;br /&gt;
| &amp;gt;&amp;gt; || Shift Right || 4&amp;gt;&amp;gt;2=1 -- shift 4, 2 bits right (*)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;gt;&amp;gt;&amp;gt; || Shift Right || 4&amp;gt;&amp;gt;&amp;gt;2=1 -- shift 4, 2 bits right (*)&lt;br /&gt;
|} &amp;lt;br /&amp;gt;&lt;br /&gt;
(*) When shifting right, double greater-thans (&amp;gt;&amp;gt;) will fill the new bits to the far left as 1s if the number was negative and zero if the number was positive. Triple greater-thans (&amp;gt;&amp;gt;&amp;gt;) is the same as double greater-thans but the fill bit will always be zero so the sign of the original number is not preserved and the result is always positive.&lt;br /&gt;
&lt;br /&gt;
Next: [[Function_and_Sub_Procedures|Function and Sub Procedures]]&lt;/div&gt;</summary>
		<author><name>ClockMeister</name></author>
	</entry>
	<entry>
		<id>https://wiki.appstudio.dev/index.php?title=The_Elements_of_an_NSB/App_Studio_Program&amp;diff=5774</id>
		<title>The Elements of an NSB/App Studio Program</title>
		<link rel="alternate" type="text/html" href="https://wiki.appstudio.dev/index.php?title=The_Elements_of_an_NSB/App_Studio_Program&amp;diff=5774"/>
		<updated>2014-04-03T18:58:29Z</updated>

		<summary type="html">&lt;p&gt;ClockMeister: Grammar correction.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A program is a set of Statements. Each program line may consist of the following elements: &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
KEYWORD arguments &#039;comment &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A KEYWORD is a word from the language that AppStudio understands. Examples are PRINT, INPUTBOX and IF. The Statement and its arguments determine what action (if any) will be taken by AppStudio when the line is executed. &amp;lt;br /&amp;gt;&lt;br /&gt;
Any text following &#039; on a line is a comment, and is ignored by AppStudio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multi-Line Statements ==&lt;br /&gt;
&lt;br /&gt;
Each statement normally ends at the end of the statement line. If you have a very complex statement the line can be very long. This can make your programs difficult to read. You may split long statements by using the line-continuation sequence, a space followed by an underscore, ( _) at the end of the line. AppStudio combines the current line with the next line if the current line ends in ( _). Here is an example of line continuation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT &amp;quot;Long statements are no problem for&amp;quot; _&lt;br /&gt;
   &amp;amp; &amp;quot; AppStudio&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Multiple Statements per Line ==&lt;br /&gt;
&lt;br /&gt;
By using a &amp;quot;:&amp;quot; character as a separator, you can put more than one statement on a line: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a=1: b=2: c=3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literals, Data Types and Variables ==&lt;br /&gt;
&lt;br /&gt;
Literals are literal values you use in your programs. You use them all the time: to set the initial value of a variable, to establish the starting and ending values of a FOR...NEXT loop, and so on. When you define a constant using the CONST Statement, the name of your constant can be treated as a literal. You cannot change the value of a literal. &lt;br /&gt;
&lt;br /&gt;
Variables are the named holders of your data. A variable&#039;s value may be changed as needed. All variables are of variants, which means they assume the type of the value that is assigned to them. The type of a variable can change without restriction.&lt;br /&gt;
&lt;br /&gt;
==  Variable Names ==&lt;br /&gt;
&lt;br /&gt;
A variable is a name that holds a value. The name consists of a sequence of alphabetic and numeric characters, and the underscore (_) characters. There is no limit to the length of a variable name in AppStudio, and every character in the name is significant. (Some older BASICs could only use short names.) Variable names are not case sensitive, and spaces and other special characters may not be used. Variable names must start with a letter. NS Basic/App Studio constants may not be used as variable names. For a complete list of constants, see Appendix B.&lt;br /&gt;
&lt;br /&gt;
The following list shows some variable names that are allowed by AppStudio: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text&lt;br /&gt;
LLAMAS&lt;br /&gt;
Jupiter&lt;br /&gt;
W1Spec&lt;br /&gt;
SouthPark&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And some that are not allowed: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1table &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &#039;starts with a number &lt;br /&gt;
X&amp;amp;Ycords &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &#039;uses special character &amp;amp; &lt;br /&gt;
first counter &amp;amp;nbsp; &#039;has a space &lt;br /&gt;
%correct &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &#039;does not start with a letter&lt;br /&gt;
print &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &#039;Keyword&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Numeric Data Types ==&lt;br /&gt;
&lt;br /&gt;
All numbers in AppStudio are internally stored as 64bit (8 bytes) floating point numbers, yielding an effective range of 5e-324 (negative) to 1.7976931348623157e+308 (positive). &lt;br /&gt;
&lt;br /&gt;
Integers are considered reliable (numbers without a period or exponent notation) to 15 digits (9e15). Floating point numbers are considered only as reliable as possible and no more. This is an especially important concept to understand for currency manipulation as 0.06 + 0.01 resolves to 0.06999999999999999 instead of 0.07. To round it properly, use [[Round]](0.06 + 0.01, 2).&lt;br /&gt;
&lt;br /&gt;
Hex values are expressed with a leading 0x. Octal values just have a leading 0. So, 0x500 = 1280, while 0500 = 320.&lt;br /&gt;
&lt;br /&gt;
== Boolean Data Type ==&lt;br /&gt;
&lt;br /&gt;
Booleans consists of two values: TRUE and FALSE. This data type is used with the IF Statement. It tests the Boolean value of an expression and selects the THEN Statement if it is TRUE, or the ELSE Statement if it is FALSE. The numeric value for TRUE is -1, and the numeric value for FALSE is 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Color Data Type ==&lt;br /&gt;
&lt;br /&gt;
Colors are hex strings from “#000000” to “#FFFFFF”. A color value is created by mixing values for red, green, and blue that vary from 0 to 255, where 0 is dark and 255 if bright. The mixing formula is: &amp;lt;br /&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;color = (red*65536) + (green * 256) + blue&amp;lt;/tt&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
Shades of black and white are created when equal amounts of red, green, and blue are used. See Appendix A for a list of common color constants.&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Color Name !! Red, Green, Blue !! Color Value&lt;br /&gt;
|-&lt;br /&gt;
| Black || 0, 0, 0 || #000000, vbBLACK&lt;br /&gt;
|-&lt;br /&gt;
| Dark gray || 128, 128, 128 || #808080&lt;br /&gt;
|-&lt;br /&gt;
| Light gray || 192, 192, 192 || #COCOCO&lt;br /&gt;
|-&lt;br /&gt;
| White || 255, 255, 255 || #FFFFFF vbWHITE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== String Data Type ==&lt;br /&gt;
&lt;br /&gt;
Strings consist of a series of characters. A string can be approximately 2 billion characters long. There are a number of functions that manipulate strings. The concatenation operator (&amp;amp;) is used to join the string representations of two variables together. A string literal is enclosed in quotation marks: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;This is a string literal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Strings are 1 indexed: the first character of a string is character 1 in string functions. Strings are enclosed in double quotes. A single quote(‘) is allowed inside a string. Use two double quotes (&amp;quot;&amp;quot;) inside a quoted string to get a single double quote in the string.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Array Data Type ==&lt;br /&gt;
&lt;br /&gt;
Arrays are lists of values stored with a single name. Each element in the array is referred to by a number or a string in square brackets after the variable name. The first element of an array is always zero (0), and each array can have many elements. ARR[2] refers to the third element in the ARR array. Each element in an array can be of any variable type, including another array. Parenthesis can be used instead of square brackets in most cases.&lt;br /&gt;
&lt;br /&gt;
Arrays must be declared in a [[Dim]] statement. Arrays should have a Dim statement in each [[Code Modules|Code Module]] where they are used. For multidimensional arrays, A(2,3) refers to the same element as A[2][3].&lt;br /&gt;
&lt;br /&gt;
== Collections ==&lt;br /&gt;
&lt;br /&gt;
A collection is an object used for grouping and managing related objects. It functions like an array, but with strings instead of numbers identifying elements in the array. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dim item1, item2, item3, item4&lt;br /&gt;
item1=&amp;quot;Knuth&amp;quot;&lt;br /&gt;
item2=&amp;quot;Babbage&amp;quot;&lt;br /&gt;
item3=&amp;quot;Kemeny&amp;quot;&lt;br /&gt;
item4=&amp;quot;Kurtz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;Create our collection&lt;br /&gt;
myCollection = new Object()&lt;br /&gt;
myCollection.add(item1, &amp;quot;firstKey&amp;quot;)&lt;br /&gt;
myCollection.add(item2, &amp;quot;secondKey&amp;quot;)&lt;br /&gt;
myCollection.add(item3, &amp;quot;thirdKey&amp;quot;)&lt;br /&gt;
myCollection.add(item4, &amp;quot;fourthKey&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Print &amp;quot;After adding using myCollection.add(item, key):&amp;quot;&lt;br /&gt;
For Each key, item in myCollection&lt;br /&gt;
  Print key &amp;amp; &amp;quot;=&amp;quot; &amp;amp; item &lt;br /&gt;
Next &lt;br /&gt;
Print &amp;quot;myCollection[item1]=&amp;quot; &amp;amp; myCollection[item1] &lt;br /&gt;
Print &amp;quot;myCollection[&amp;quot;&amp;quot;Knuth&amp;quot;&amp;quot;]=&amp;quot; &amp;amp; myCollection[&amp;quot;Knuth&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&#039;Delete a member&lt;br /&gt;
myCollection.delete(item2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Object Data Type ==&lt;br /&gt;
&lt;br /&gt;
An object is a collection of named values, called properties. To refer to a property of an object, use the object name, a period and the property name: &amp;lt;pre&amp;gt;&lt;br /&gt;
Customer.Name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
An object can have any number of properties. Properties can be any datatype, including functions and other objects.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Customer={Name: Lovelace, Age: 195, kids:{Byron: 1, Annabella: 2, Ralph: 3}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Classes ==&lt;br /&gt;
&lt;br /&gt;
Here are a couple of samples of Classes:&lt;br /&gt;
&lt;br /&gt;
=== BASIC ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&#039;Define a class like this&lt;br /&gt;
Function Person(name, gender)&lt;br /&gt;
   &#039;Add object properties like this&lt;br /&gt;
   this.name = name&lt;br /&gt;
   this.gender = gender&lt;br /&gt;
End Function&lt;br /&gt;
&lt;br /&gt;
&#039;Add methods like this.  All Person objects will be able to invoke this&lt;br /&gt;
Function speakName()&lt;br /&gt;
  Print &amp;quot;Howdy, my name is &amp;quot; &amp;amp; this.name&lt;br /&gt;
End Function&lt;br /&gt;
&lt;br /&gt;
Person.prototype.speak = Eval(&amp;quot;speakName&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;Instantiate new objects with &#039;new&#039;&lt;br /&gt;
bob = new Person(&amp;quot;Bob&amp;quot;, &amp;quot;M&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;Invoke methods like this&lt;br /&gt;
bob.speak() &#039;Prints &amp;quot;Howdy, my name is Bob&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== JavaScript ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Define a class like this&lt;br /&gt;
function Person(name, gender){&lt;br /&gt;
&lt;br /&gt;
   // Add object properties like this&lt;br /&gt;
   this.name = name;&lt;br /&gt;
   this.gender = gender;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Add methods like this.  All Person objects will be able to invoke this&lt;br /&gt;
Person.prototype.speak = function(){&lt;br /&gt;
    alert(&amp;quot;Howdy, my name is&amp;quot; + this.name);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Instantiate new objects with &#039;new&#039;&lt;br /&gt;
var person = new Person(&amp;quot;Bob&amp;quot;, &amp;quot;M&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Invoke methods like this&lt;br /&gt;
person.speak(); // alerts &amp;quot;Howdy, my name is Bob&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next: [[Expressions_and_Operators|Expressions and Operators]]&lt;/div&gt;</summary>
		<author><name>ClockMeister</name></author>
	</entry>
	<entry>
		<id>https://wiki.appstudio.dev/index.php?title=The_Elements_of_an_NSB/App_Studio_Program&amp;diff=5766</id>
		<title>The Elements of an NSB/App Studio Program</title>
		<link rel="alternate" type="text/html" href="https://wiki.appstudio.dev/index.php?title=The_Elements_of_an_NSB/App_Studio_Program&amp;diff=5766"/>
		<updated>2014-04-03T18:38:33Z</updated>

		<summary type="html">&lt;p&gt;ClockMeister: Discussion of line continuation didn&amp;#039;t include a space before the _ in the example!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A program is a set of Statements. Each program line may consist of the following elements: &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
KEYWORD arguments &#039;comment &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A KEYWORD is a word from the language that AppStudio understands. Examples are PRINT, INPUTBOX and IF. The Statement and its arguments determine what action (if any) will be taken by AppStudio when the line is executed. &amp;lt;br /&amp;gt;&lt;br /&gt;
Any text following &#039; on a line is a comment, and is ignored by AppStudio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multi-Line Statements ==&lt;br /&gt;
&lt;br /&gt;
Each statement normally ends at the end of the statement line. If you have a very complex statement the line can be very long. This can make your programs difficult to read. You may split long statements by using the line-continuation sequence, a space followed by an underscore, ( _) at the end of the line. AppStudio combines the current line with the next line if the current line ends in ( _). Here is an example of line continuation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT &amp;quot;Long statements are no problem for&amp;quot; _&lt;br /&gt;
   &amp;amp; &amp;quot; AppStudio&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Multiple Statements per Line ==&lt;br /&gt;
&lt;br /&gt;
By using a &amp;quot;:&amp;quot; character as a separator, you can put more than one statement on a line: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a=1: b=2: c=3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literals, Data Types and Variables ==&lt;br /&gt;
&lt;br /&gt;
Literals are literal values you use in your programs. You use them all the time: to set the initial value of a variable, to establish the starting and ending values of a FOR...NEXT loop, and so on. When you define a constant using the CONST Statement, the name of your constant can be treated as a literal. You cannot change the value of a literal. &lt;br /&gt;
&lt;br /&gt;
Variables are the named holders of your data. A variable&#039;s value may be changed as needed. All variables are of variants, which means they assume the type of the value that is assigned to them. The type of a variable can change without restriction.&lt;br /&gt;
&lt;br /&gt;
==  Variable Names ==&lt;br /&gt;
&lt;br /&gt;
A variable is a name that holds a value. The name consists of a sequence of alphabetic and numeric characters, and the underscore (_) characters. There is no limit to the length of a variable name in AppStudio, and every character in the name is significant. (Some older BASICs could only use short names.) Variable names are not case sensitive, and spaces and other special characters may not be used. Variable names must start with a letter. NS Basic/App Studio constants may not be used as variable names. For a complete list of constants, see Appendix B.&lt;br /&gt;
&lt;br /&gt;
The following list shows some variable names that are allowed by AppStudio: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text&lt;br /&gt;
LLAMAS&lt;br /&gt;
Jupiter&lt;br /&gt;
W1Spec&lt;br /&gt;
SouthPark&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And some that are not allowed: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1table &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &#039;starts with a number &lt;br /&gt;
X&amp;amp;Ycords &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &#039;uses special character &amp;amp; &lt;br /&gt;
first counter &amp;amp;nbsp; &#039;has a space &lt;br /&gt;
%correct &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &#039;does not start with a letter&lt;br /&gt;
print &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &#039;Keyword&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Numeric Data Types ==&lt;br /&gt;
&lt;br /&gt;
All numbers in AppStudio are internally stored as 64bit (8 bytes) floating point numbers, yielding an effective range of 5e-324 (negative) to 1.7976931348623157e+308 (positive). &lt;br /&gt;
&lt;br /&gt;
Integers are considered reliable (numbers without a period or exponent notation) to 15 digits (9e15). Floating point numbers are considered only as reliable as possible and no more. This is an especially important concept to understand for currency manipulation as 0.06 + 0.01 resolves to 0.06999999999999999 instead of 0.07. To round it properly, use [[Round]](0.06 + 0.01, 2).&lt;br /&gt;
&lt;br /&gt;
Hex values are expressed with a leading 0x. Octal values just have a leading 0. So, 0x500 = 1280, while 0500 = 320.&lt;br /&gt;
&lt;br /&gt;
== Boolean Data Type ==&lt;br /&gt;
&lt;br /&gt;
Booleans consists of two values: TRUE and FALSE. This data type is used with the IF Statement. It tests the Boolean value of an expression and selects the THEN Statement if it is TRUE, or the ELSE Statement if it is FALSE. The numeric value for TRUE is -1, and the numeric value for FALSE is 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Color Data Type ==&lt;br /&gt;
&lt;br /&gt;
Colors are hex strings from “#000000” to “#FFFFFF”. A color value is created by mixing values for red, green, and blue that vary from 0 to 255, where 0 is dark and 255 if bright. The mixing formula is: &amp;lt;br /&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;color = (red*65536) + (green * 256) + blue&amp;lt;/tt&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
Shades of black and white are created when equal amounts of red, green, and blue are used. See Appendix A for a list of common color constants.&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Color Name !! Red, Green, Blue !! Color Value&lt;br /&gt;
|-&lt;br /&gt;
| Black || 0, 0, 0 || #000000, vbBLACK&lt;br /&gt;
|-&lt;br /&gt;
| Dark gray || 128, 128, 128 || #808080&lt;br /&gt;
|-&lt;br /&gt;
| Light gray || 192, 192, 192 || #COCOCO&lt;br /&gt;
|-&lt;br /&gt;
| White || 255, 255, 255 || #FFFFFF vbWHITE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== String Data Type ==&lt;br /&gt;
&lt;br /&gt;
Strings consist of a series of characters. A string can be approximately 2 billion characters long. There are a number of functions that manipulate strings. The concatenation operator (&amp;amp;) is used to join the string representations of two variables together. A string literal is enclosed in quotation marks: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;This is a string literal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Strings are 1 indexed: the first character of a string is character 1 in string functions. Strings are enclosed in double quotes. A single quote(‘) is allowed inside a string. Use two double quotes (&amp;quot;&amp;quot;) inside a quoted string to get a single double quote in the string.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Array Data Type ==&lt;br /&gt;
&lt;br /&gt;
Arrays are lists of values stored with a single name. Each element in the array is referred to by a number or a string in square brackets after the variable name. The first element of an array is always zero (0), and each array can have many elements. ARR[2] refers to the third element in the ARR array. Each element in an array can be of any variable type, including another array. Parenthesis can be used instead of square brackets in most cases.&lt;br /&gt;
&lt;br /&gt;
Arrays must be declared in a [[Dim]] statement. Arrays should have a Dim statement in each [[Code Modules|Code Module]] where they are used. For multidimensional arrays, A(2,3) refers to the same element as A[2][3].&lt;br /&gt;
&lt;br /&gt;
== Collections ==&lt;br /&gt;
&lt;br /&gt;
A collection is an object used for grouping and managing related objects. It functions like an array, but with strings instead of numbers identifying elements in the array. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dim item1, item2, item3, item4&lt;br /&gt;
item1=&amp;quot;Knuth&amp;quot;&lt;br /&gt;
item2=&amp;quot;Babbage&amp;quot;&lt;br /&gt;
item3=&amp;quot;Kemeny&amp;quot;&lt;br /&gt;
item4=&amp;quot;Kurtz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;Create our collection&lt;br /&gt;
myCollection = new Object()&lt;br /&gt;
myCollection.add(item1, &amp;quot;firstKey&amp;quot;)&lt;br /&gt;
myCollection.add(item2, &amp;quot;secondKey&amp;quot;)&lt;br /&gt;
myCollection.add(item3, &amp;quot;thirdKey&amp;quot;)&lt;br /&gt;
myCollection.add(item4, &amp;quot;fourthKey&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Print &amp;quot;After adding using myCollection.add(item, key):&amp;quot;&lt;br /&gt;
For Each key, item in myCollection&lt;br /&gt;
  Print key &amp;amp; &amp;quot;=&amp;quot; &amp;amp; item &lt;br /&gt;
Next &lt;br /&gt;
Print &amp;quot;myCollection[item1]=&amp;quot; &amp;amp; myCollection[item1] &lt;br /&gt;
Print &amp;quot;myCollection[&amp;quot;&amp;quot;Knuth&amp;quot;&amp;quot;]=&amp;quot; &amp;amp; myCollection[&amp;quot;Knuth&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&#039;Delete a member&lt;br /&gt;
myCollection.delete(item2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Object Data Type ==&lt;br /&gt;
&lt;br /&gt;
An object is a collection of named values, called properties. To refer to a property of an object, use the object name, a period and the property name: &amp;lt;pre&amp;gt;&lt;br /&gt;
Customer.Name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
An object have any number of properties. Properties can be any datatype, including functions and other objects.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Customer={Name: Lovelace, Age: 195, kids:{Byron: 1, Annabella: 2, Ralph: 3}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Classes ==&lt;br /&gt;
&lt;br /&gt;
Here are a couple of samples of Classes:&lt;br /&gt;
&lt;br /&gt;
=== BASIC ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&#039;Define a class like this&lt;br /&gt;
Function Person(name, gender)&lt;br /&gt;
   &#039;Add object properties like this&lt;br /&gt;
   this.name = name&lt;br /&gt;
   this.gender = gender&lt;br /&gt;
End Function&lt;br /&gt;
&lt;br /&gt;
&#039;Add methods like this.  All Person objects will be able to invoke this&lt;br /&gt;
Function speakName()&lt;br /&gt;
  Print &amp;quot;Howdy, my name is &amp;quot; &amp;amp; this.name&lt;br /&gt;
End Function&lt;br /&gt;
&lt;br /&gt;
Person.prototype.speak = Eval(&amp;quot;speakName&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;Instantiate new objects with &#039;new&#039;&lt;br /&gt;
bob = new Person(&amp;quot;Bob&amp;quot;, &amp;quot;M&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;Invoke methods like this&lt;br /&gt;
bob.speak() &#039;Prints &amp;quot;Howdy, my name is Bob&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== JavaScript ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Define a class like this&lt;br /&gt;
function Person(name, gender){&lt;br /&gt;
&lt;br /&gt;
   // Add object properties like this&lt;br /&gt;
   this.name = name;&lt;br /&gt;
   this.gender = gender;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Add methods like this.  All Person objects will be able to invoke this&lt;br /&gt;
Person.prototype.speak = function(){&lt;br /&gt;
    alert(&amp;quot;Howdy, my name is&amp;quot; + this.name);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Instantiate new objects with &#039;new&#039;&lt;br /&gt;
var person = new Person(&amp;quot;Bob&amp;quot;, &amp;quot;M&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Invoke methods like this&lt;br /&gt;
person.speak(); // alerts &amp;quot;Howdy, my name is Bob&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next: [[Expressions_and_Operators|Expressions and Operators]]&lt;/div&gt;</summary>
		<author><name>ClockMeister</name></author>
	</entry>
	<entry>
		<id>https://wiki.appstudio.dev/index.php?title=Solutions_to_Common_Problems&amp;diff=5765</id>
		<title>Solutions to Common Problems</title>
		<link rel="alternate" type="text/html" href="https://wiki.appstudio.dev/index.php?title=Solutions_to_Common_Problems&amp;diff=5765"/>
		<updated>2014-04-03T12:55:35Z</updated>

		<summary type="html">&lt;p&gt;ClockMeister: Removing duplicate content.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== My app gets an error box when run on a device, or it does not run in Airplane mode.  ===&lt;br /&gt;
[[File:TN01.01.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This means it is trying to use a file that has not been cached on the device. In Project Properties, check that all the images and files are listed in the manifest.&lt;br /&gt;
&lt;br /&gt;
# Open a new Chrome window on the desktop.&lt;br /&gt;
# Open the [[Using_the_Chrome_Debugger|Chrome Debugger]] by clicking ctrl shift J on the keyboard. (option command J on Mac OS)&lt;br /&gt;
# Enter the URL of your program on your deploy site and hit enter.&lt;br /&gt;
# In the message panel at the bottom of the screen, you will see the files it caches.&lt;br /&gt;
# Make sure all the files your app uses appear without errors.&lt;br /&gt;
# Check the mime type on the manifest file at http://web-sniffer.net. It should be &amp;lt;code&amp;gt;text/cache-manifest&amp;lt;/code&amp;gt;. The path to enter will be &amp;lt;project path&amp;gt;/OfflineApp.appcache. (.manifest for older projects). If it is incorrect, see [[Distributing_your_App#Setting_up_your_server_for_manifest_files_.28Apache.29|Setting up your server for manifest files]].&lt;br /&gt;
# Check to make sure that Private Browsing is not turned on.&lt;br /&gt;
# If possible, use the Chrome browser on Android devices (not the older Android browser).&lt;br /&gt;
# If all else fails, try clearing the cache of your browser. On iOS 6, do this by Settings...Safari...Advanced...Website Data...Edit...wipe out nsbapp.com (or the name of your server)&lt;br /&gt;
&lt;br /&gt;
=== When I run my app on the desktop, I just get a blank screen. ===&lt;br /&gt;
&lt;br /&gt;
Your program is probably getting an error. Hit Ctrl-shift-J (option-shift-j on Mac) to open the [[Using_the_Chrome_Debugger|Chrome Debugger]] (assuming you are using Windows Chrome). You&#039;ll see the error.&lt;br /&gt;
&lt;br /&gt;
=== My app runs OK on the desktop, but nothing appears on the device. ===&lt;br /&gt;
&lt;br /&gt;
Check if JavaScript is turned off on the device.&lt;br /&gt;
&lt;br /&gt;
=== Parts of the IDE are distorted or do not pop up properly in Windows. ===&lt;br /&gt;
&lt;br /&gt;
Check if you are using an Aero theme on your desktop. Try switching to a non Aero theme.&lt;br /&gt;
&lt;br /&gt;
=== The background on the Design Screen is blank. ===&lt;br /&gt;
&lt;br /&gt;
* If you are running on a Mac using Parallels, make sure that &#039;My Documents&#039; in Windows is not mapped to its Mac equivalent.&lt;br /&gt;
* If you installed to a server, move \Documents\NS Basic Samples\ to your local system. Write access is required to that directory.&lt;br /&gt;
&lt;br /&gt;
=== In the Code Window, I cannot enter &#039;, &amp;quot; or extended characters ===&lt;br /&gt;
&lt;br /&gt;
If you are running on Mac OS, do not use &amp;quot;USA International PC&amp;quot; as your keyboard layout. It uses the single quote character (&#039;) to start entering some extended characters. The single quote is important in the code window to quote strings and start comments.&lt;br /&gt;
&lt;br /&gt;
=== I&#039;m running Anti Virus software. What could go wrong? ===&lt;br /&gt;
&lt;br /&gt;
Norton: Blocks installation with a WS.Reputation.1 message. If an executable is unknown to Norton (perhaps it is new), it automatically quarantines it. Since we update AppStudio frequently, this happens occasionally. Just take it out of the quarantine and it will work. We have contacted Norton about this - they say they have removed the block.&lt;br /&gt;
&lt;br /&gt;
McAfee: AppStudio runs slowly. McAfee has a Real Time Scanning option that intercepts every system call that the apps on your system make. On slower computers, this feature can bring the system to a crawl. Disable this feature to solve the problem.&lt;br /&gt;
&lt;br /&gt;
Kaspersky: AppStudio does not run. We&#039;re not sure if this Kaspersky related, or a corrupted system which caused this one. The solution was to &lt;br /&gt;
&amp;lt;OL&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;sfc /scannow, which resulted in the message that there were files to be repaired. &lt;br /&gt;
&amp;lt;li&amp;gt;update NVIDIA display driver of Jan 2013. &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== In the Design Screen, some of my controls do not appear ===&lt;br /&gt;
&lt;br /&gt;
Are you using an HTMLview control anywhere in your project? If so, check that the innerHTML value is valid and complete HTML. For example, forgetting to match a &amp;amp;lt;div&amp;gt; or &amp;amp;lt;font&amp;gt; tag with a matching &amp;amp;lt;/div&amp;gt; or &amp;amp;lt;/font&amp;gt; tag will cause other problems in your project.&lt;/div&gt;</summary>
		<author><name>ClockMeister</name></author>
	</entry>
	<entry>
		<id>https://wiki.appstudio.dev/index.php?title=Solutions_to_Common_Problems&amp;diff=5759</id>
		<title>Solutions to Common Problems</title>
		<link rel="alternate" type="text/html" href="https://wiki.appstudio.dev/index.php?title=Solutions_to_Common_Problems&amp;diff=5759"/>
		<updated>2014-04-03T01:11:56Z</updated>

		<summary type="html">&lt;p&gt;ClockMeister: Additional server requirements for .appcache file.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== My app gets an error box when run on a device, or it does not run in Airplane mode.  ===&lt;br /&gt;
[[File:TN01.01.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This means it is trying to use a file that has not been cached on the device. In Project Properties, check that all the images and files are listed in the manifest.&lt;br /&gt;
&lt;br /&gt;
# Open a new Chrome window on the desktop.&lt;br /&gt;
# Open the [[Using_the_Chrome_Debugger|Chrome Debugger]] by clicking ctrl shift J on the keyboard. (option command J on Mac OS)&lt;br /&gt;
# Enter the URL of your program on your deploy site and hit enter.&lt;br /&gt;
# In the message panel at the bottom of the screen, you will see the files it caches.&lt;br /&gt;
# Make sure all the files your app uses appear without errors.&lt;br /&gt;
# Check the mime type on the manifest file at http://web-sniffer.net. It should be &amp;lt;code&amp;gt;text/cache-manifest&amp;lt;/code&amp;gt;. The path to enter will be &amp;lt;project path&amp;gt;/OfflineApp.appcache. (.manifest for older projects). If it is incorrect, see [[Distributing_your_App#Setting_up_your_server_for_manifest_files_.28Apache.29|Setting up your server for manifest files]].&lt;br /&gt;
# Check to make sure that Private Browsing is not turned on.&lt;br /&gt;
# If possible, use the Chrome browser on Android devices (not the older Android browser).&lt;br /&gt;
# If all else fails, try clearing the cache of your browser. On iOS 6, do this by Settings...Safari...Advanced...Website Data...Edit...wipe out nsbapp.com (or the name of your server)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Also ... the same error can occur if your server does not understand the mime type of your manifest.  To correct this, make sure the directory which serves up the application has the .appcache extension described as &amp;quot;text/cache-manifest&amp;quot;.  In the case of an IIS installation, select the directory that is serving up you application, double-click &amp;quot;Mime Types&amp;quot; then add a new one if it isn&#039;t already there.  Here&#039;s how it looks using the Microsoft IIS manager ...&lt;br /&gt;
&lt;br /&gt;
[[File:iis-mime-type.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== When I run my app on the desktop, I just get a blank screen. ===&lt;br /&gt;
&lt;br /&gt;
Your program is probably getting an error. Hit Ctrl-shift-J (option-shift-j on Mac) to open the [[Using_the_Chrome_Debugger|Chrome Debugger]] (assuming you are using Windows Chrome). You&#039;ll see the error.&lt;br /&gt;
&lt;br /&gt;
=== My app runs OK on the desktop, but nothing appears on the device. ===&lt;br /&gt;
&lt;br /&gt;
Check if JavaScript is turned off on the device.&lt;br /&gt;
&lt;br /&gt;
=== Parts of the IDE are distorted or do not pop up properly in Windows. ===&lt;br /&gt;
&lt;br /&gt;
Check if you are using an Aero theme on your desktop. Try switching to a non Aero theme.&lt;br /&gt;
&lt;br /&gt;
=== The background on the Design Screen is blank. ===&lt;br /&gt;
&lt;br /&gt;
* If you are running on a Mac using Parallels, make sure that &#039;My Documents&#039; in Windows is not mapped to its Mac equivalent.&lt;br /&gt;
* If you installed to a server, move \Documents\NS Basic Samples\ to your local system. Write access is required to that directory.&lt;br /&gt;
&lt;br /&gt;
=== In the Code Window, I cannot enter &#039;, &amp;quot; or extended characters ===&lt;br /&gt;
&lt;br /&gt;
If you are running on Mac OS, do not use &amp;quot;USA International PC&amp;quot; as your keyboard layout. It uses the single quote character (&#039;) to start entering some extended characters. The single quote is important in the code window to quote strings and start comments.&lt;br /&gt;
&lt;br /&gt;
=== I&#039;m running Anti Virus software. What could go wrong? ===&lt;br /&gt;
&lt;br /&gt;
Norton: Blocks installation with a WS.Reputation.1 message. If an executable is unknown to Norton (perhaps it is new), it automatically quarantines it. Since we update AppStudio frequently, this happens occasionally. Just take it out of the quarantine and it will work. We have contacted Norton about this - they say they have removed the block.&lt;br /&gt;
&lt;br /&gt;
McAfee: AppStudio runs slowly. McAfee has a Real Time Scanning option that intercepts every system call that the apps on your system make. On slower computers, this feature can bring the system to a crawl. Disable this feature to solve the problem.&lt;br /&gt;
&lt;br /&gt;
Kaspersky: AppStudio does not run. We&#039;re not sure if this Kaspersky related, or a corrupted system which caused this one. The solution was to &lt;br /&gt;
&amp;lt;OL&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;sfc /scannow, which resulted in the message that there were files to be repaired. &lt;br /&gt;
&amp;lt;li&amp;gt;update NVIDIA display driver of Jan 2013. &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== In the Design Screen, some of my controls do not appear ===&lt;br /&gt;
&lt;br /&gt;
Are you using an HTMLview control anywhere in your project? If so, check that the innerHTML value is valid and complete HTML. For example, forgetting to match a &amp;amp;lt;div&amp;gt; or &amp;amp;lt;font&amp;gt; tag with a matching &amp;amp;lt;/div&amp;gt; or &amp;amp;lt;/font&amp;gt; tag will cause other problems in your project.&lt;/div&gt;</summary>
		<author><name>ClockMeister</name></author>
	</entry>
	<entry>
		<id>https://wiki.appstudio.dev/index.php?title=File:Iis-mime-type.png&amp;diff=5758</id>
		<title>File:Iis-mime-type.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appstudio.dev/index.php?title=File:Iis-mime-type.png&amp;diff=5758"/>
		<updated>2014-04-03T01:08:02Z</updated>

		<summary type="html">&lt;p&gt;ClockMeister: IIS Setup of mime-type for .appcache fie.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;IIS Setup of mime-type for .appcache fie.&lt;/div&gt;</summary>
		<author><name>ClockMeister</name></author>
	</entry>
</feed>