<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../style.css">
<title>
Gambas Documentation - Naming Conventions
</title>
</head>
<table class="none" width="100%" cellpadding="0" cellspacing="0" border="0">
<tr><td align="left">
<font size="-1">
<a href="../../help+en"><img class="flag" alt="Home" border="0" src="../../img/lang/en.png" align="center"></a>&nbsp;
<a href="../doc+en">Up</a>&nbsp;
<a href="faq+en">Previous</a>&nbsp;
<a href="namingconvention+en">Next</a>&nbsp;
</td></tr></table>
<div class="notab">
<h1>
Naming Conventions
</h1>
The naming conventions are not required by the compiler.
But programs which use the following naming conventions are easier to read by other programmers
who want to understand the program.
<p>
<h3>Variable names</h3>
All private variable names of a class start with $
<p>
The first letter is lower case and should depend on the type of the variable:
<p>
<table class="table" border="0" bordercolor="#000000" cellpadding="4" cellspacing="0">
<tr><th>
Letter
</th><th>
Type
</th></tr>
<tr class="dark"><td valign="top">
a
</td><td valign="top">
<i>Array</i>
</td></tr>
<tr><td valign="top">
b
</td><td valign="top">
<a href="../lang/type/boolean+en">Boolean</a>
</td></tr>
<tr class="dark"><td valign="top">
c
</td><td valign="top">
<a href="../comp/gb/collection+en">Collection</a>
</td></tr>
<tr><td valign="top">
f
</td><td valign="top">
<a href="../lang/type/float+en">Float</a>
</td></tr>
<tr class="dark"><td valign="top">
h
</td><td valign="top">
<a href="../lang/type/object+en">Object</a> (Handle)
</td></tr>
<tr><td valign="top">
i
</td><td valign="top">
<a href="../lang/type/integer+en">Integer</a>, <a href="../lang/type/long+en">Long</a>, <a href="../lang/type/short+en">Short</a>, <a href="../lang/type/byte+en">Byte</a>.
</td></tr>
<tr class="dark"><td valign="top">
n
</td><td valign="top">
An integer storing a number of objects.
</td></tr>
<tr><td valign="top">
s
</td><td valign="top">
<a href="../comp/gb/string+en">String</a>
</td></tr>
</table>
<p>
<div class="gray"><font size="-2"><b>Example</b></font></div>
<pre class="example">PRIVATE $iLast AS Integer
PRIVATE $sLast AS String
PRIVATE $hEditor AS Object
PRIVATE $sOldVal AS String
PRIVATE $bFreeze AS Boolean

PUBLIC SUB Form_Resize()

  DIM iWidth AS Integer</pre>
<p>

<h3><a href="../comp/gb.qt/form+en">Form</a> element names</h3>
<p>
When placing a new form element. <a href="../def/gambas+en">Gambas</a> gives it a name like &quot;Label1&quot; &quot;Label2&quot; ...
<p>
Before you assign a method to the new element,
you rename it to &quot;btnStart&quot; or &quot;lstAddressSelect&quot;.
The first two or three lower case letters should
be given according to this definition:
<p>
<table class="table" border="0" bordercolor="#000000" cellpadding="4" cellspacing="0">
<tr><th>
Letter
</th><th>
Type
</th></tr>
<tr class="dark"><td valign="top">
btn
</td><td valign="top">
<a href="../comp/gb.qt/button+en">Button</a>, use btnOK btnCancel for OK, Cancel
</td></tr>
<tr><td valign="top">
chk
</td><td valign="top">
<a href="../comp/gb.qt/checkbox+en">CheckBox</a>
</td></tr>
<tr class="dark"><td valign="top">
cvw
</td><td valign="top">
<a href="../comp/gb.qt/columnview+en">ColumnView</a>
</td></tr>
<tr><td valign="top">
cmb
</td><td valign="top">
<a href="../comp/gb.qt/combobox+en">ComboBox</a>
</td></tr>
<tr class="dark"><td valign="top">
dwg
</td><td valign="top">
<a href="../comp/gb.qt/drawingarea+en">DrawingArea</a>
</td></tr>
<tr><td valign="top">
dlg
</td><td valign="top">
FontChooser
</td></tr>
<tr class="dark"><td valign="top">
edt
</td><td valign="top">
GambasEditor
</td></tr>
<tr><td valign="top">
frm
</td><td valign="top">
<a href="../comp/gb.qt/frame+en">Frame</a>
</td></tr>
<tr class="dark"><td valign="top">
grd
</td><td valign="top">
<a href="../comp/gb.qt/gridview+en">GridView</a>
</td></tr>
<tr><td valign="top">
spl
</td><td valign="top">
<a href="../comp/gb.qt/hsplit+en">HSplit</a>
</td></tr>
<tr class="dark"><td valign="top">
iv
</td><td valign="top">
<a href="../comp/gb.qt/iconview+en">IconView</a>
</td></tr>
<tr><td valign="top">
lbl
</td><td valign="top">
<a href="../comp/gb.qt/label+en">Label</a>
</td></tr>
<tr class="dark"><td valign="top">
lst
</td><td valign="top">
<a href="../comp/gb.qt/listbox+en">ListBox</a>
</td></tr>
<tr><td valign="top">
lvw
</td><td valign="top">
<a href="../comp/gb.qt/listview+en">ListView</a>
</td></tr>
<tr class="dark"><td valign="top">
pan
</td><td valign="top">
<a href="../comp/gb.gtk/panel+en">Panel</a>
</td></tr>
<tr><td valign="top">
img
</td><td valign="top">
<a href="../comp/gb.qt/picturebox+en">PictureBox</a>
</td></tr>
<tr class="dark"><td valign="top">
opt
</td><td valign="top">
<a href="../comp/gb.qt/radiobutton+en">RadioButton</a>
</td></tr>
<tr><td valign="top">
svw
</td><td valign="top">
<a href="../comp/gb.qt/scrollview+en">ScrollView</a>
</td></tr>
<tr class="dark"><td valign="top">
spb
</td><td valign="top">
<a href="../comp/gb.qt/spinbox+en">SpinBox</a>
</td></tr>
<tr><td valign="top">
tab
</td><td valign="top">
<a href="../comp/gb.qt/tabstrip+en">TabStrip</a>
</td></tr>
<tr class="dark"><td valign="top">
tim
</td><td valign="top">
<a href="../comp/gb/timer+en">Timer</a>
</td></tr>
<tr><td valign="top">
txa
</td><td valign="top">
<a href="../comp/gb.qt/textarea+en">TextArea</a>
</td></tr>
<tr class="dark"><td valign="top">
txt
</td><td valign="top">
<a href="../comp/gb.qt/textbox+en">TextBox</a>
</td></tr>
<tr><td valign="top">
txv
</td><td valign="top">
<a href="../comp/gb.qt.ext/textview+en">TextView</a>
</td></tr>
<tr class="dark"><td valign="top">
tbt
</td><td valign="top">
<a href="../comp/gb.qt/toolbutton+en">ToolButton</a>
</td></tr>
<tr><td valign="top">
trv
</td><td valign="top">
<a href="../comp/gb.qt/treeview+en">TreeView</a>
</td></tr>
<tr class="dark"><td valign="top">
spl
</td><td valign="top">
<a href="../comp/gb.qt/vsplit+en">VSplit</a>
</td></tr>
</table>
<p>

A project which uses this style very similar is gambas2-1.9.28/apps/src/gambas2 - the <a href="../def/gambas+en">Gambas</a> IDE

</div>
</body>
</html>

