This document provides summaries of functions, classes, and concepts in the Ring programming language. It discusses topics like data types, control structures, functions, object-oriented programming, GUI development, extensions, and more. New features are highlighted for each Ring version from 1.1 to 1.5.4, such as improved documentation, libraries, flexibility in syntax, and applications. Frequently asked questions are also addressed.
The Ring programming language version 1.5.4 book - Part 185 of 185
1. Ring Documentation, Release 1.5.4
Eval() and Debugging, 237
Trying to be natural
Language Design, 28
Type Hints Library
What is new in Ring 1.5?, 68
Type()
Data Type, 208
Ungetc()
Files, 226
Unsigned()
Mathematical Functions, 218
Update the Android SDK
Building RingQt Applications for Mobile, 675
Upload Files
Web Development (CGI Library), 377
URL Encode
Web Development (CGI Library), 382
Use TTF Fonts
RingLibSDL, 444
User Types
The Type Hints Library, 720
Users registration and Login
Web Development (CGI Library), 404
Using ’<’ and ’:’ operators as ’from’ keyword
What is new in Ring 1.3?, 101
Using ’case’ as ’on’ in switch statements
Syntax Flexibility, 717
Using ’def’ as ’func’ in functions/methods definition
Syntax Flexibility, 717
Using ’end’ keyword after Packages/Classes/Functions
Syntax Flexibility, 718
Using ’endpackage’/’endclass’/’endfunc’ keywords after
Packages/Classes/Functions
Syntax Flexibility, 718
Using ’put’ and ’get’ as ’see’ and ’give’
Syntax Flexibility, 717
Using () around the function parameters
Syntax Flexibility, 711
in the start of the variable name
Syntax Flexibility, 714
Using _ in numbers
Mathematical Functions, 219
Using Atom
Using Other Code Editors, 150
Using Bootstrap Library using Functions
Web Development (CGI Library), 398
Using Bootstrap Library using Objects
Web Development (CGI Library), 399
Using braces { } in Packages/Classes/Functions
Syntax Flexibility, 718
Using Braces to access objects inside Class Methods
Scope Rules, 695
Using braces to escape from the current object scope
Scope Rules, 703
Using braces to start and end different control structures
Syntax Flexibility, 716
Using C/C++ Compiler and Linker
Distributing Ring Application, 724
Using configuration file that wrap C++ library
Code Generator, 789
Using Emacs Editor
Using Other Code Editors, 152
Using Eval() with our Natural Code
Natural Language Programming, 355
Using f after numbers
Mathematical Functions, 219
Using Fonts
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 529
Using Geany
Using Other Code Editors, 149
Using Layout
Desktop and Mobile Development, 571
Using Layouts
Form Designer, 690
Using Lists during definition
Lists, 194
Using Many Source Code Files
Program Structure, 188
Using Notepad++
Using Other Code Editors, 148
Using NULL instead of NULLPointer()
What is new in Ring 1.2?, 109
Using Object.Attribute
Scope Rules, 692
Using Other Code Editors
Introduction, 147
Using Atom, 150
Using Emacs Editor, 152
Using Geany, 149
Using Notepad++, 148
Using Sublime Text 2, 151
Using Visual Studio IDE, 152
Using QCheckBox
Desktop and Mobile Development, 598
Using QComboBox Class
Desktop and Mobile Development, 579
Using QDateEdit
Desktop and Mobile Development, 593
Using QDesktopWidget Class
Desktop and Mobile Development, 633
Using QDial
Desktop and Mobile Development, 594
Using QDockWidget
Desktop and Mobile Development, 586
Using QFrame
Desktop and Mobile Development, 603
Index 1815
2. Ring Documentation, Release 1.5.4
Using QInputDialog Class
Desktop and Mobile Development, 624
Using qLCDNumber
Desktop and Mobile Development, 621
Using QProgressBar
Desktop and Mobile Development, 590
Using QProgressBar and Timer
Desktop and Mobile Development, 613
Using QRadioButton and QButtonGroup
Desktop and Mobile Development, 599
Using QSlider
Desktop and Mobile Development, 591
Using QSpinBox
Desktop and Mobile Development, 591
Using QTableWidget
Desktop and Mobile Development, 589
Using QTabWidget
Desktop and Mobile Development, 587
Using QTreeView and QFileSystemModel
Desktop and Mobile Development, 577
Using QTreeWidget and QTreeWidgetItem
Desktop and Mobile Development, 578
Using QWebView
Desktop and Mobile Development, 597
Using RingOpenGL and RingAllegro for 3D Graphics
3D Cube and Texture, 550
Introduction, 549
Many Cubes, 554
TicTacToe 3D Game, 559
Using RingOpenGL and RingFreeGLUT for 3D Graphics
Drawing using RingOpenGL, 504
Frames Per Second, 537
Introduction, 501
Keyboard Events and Colors, 509
Make a Cube using RingOpenGL and RingFreeG-
LUT, 546
Menu Events, 522
Mouse Events, 518
Samples Source (Authors), 502
The Camera, 512
The First Triangle, 505
The First Window using RingFreeGLUT, 503
Triangle Rotation, 508
Using Fonts, 529
What is RingFreeGLUT?, 503
What is RingOpenGL?, 502
Window Resize Event, 506
Using RingZip Classes
RingZip, 426
Using Self.Attribute
Object Oriented Programming, 281
Using Self.Attribute in the Class Region to define new at-
tributes
What is new in Ring 1.1?, 119
Using Semi-colon after and between statements
Syntax Flexibility, 713
Using Sublime Text 2
Using Other Code Editors, 151
Using the ’else’ keyword as ’other’ in switch statement
Syntax Flexibility, 714
Using the ’elseif’ keyword as ’but’ in if statement
Syntax Flexibility, 714
Using the ’end’ keyword in different control structures
Syntax Flexibility, 715
Using the Interactive Debugger
The Trace Library and the Interactive Debugger, 762
Using the Natural Library
Defining Commands, 363
Defining commands using classes, 366
Introduction, 360
Natural Library - Demo Program, 361
Operators, 365
Using the QColorDialog Class
Desktop and Mobile Development, 620
Using the QFileDialog Class
Desktop and Mobile Development, 615
Using the QListWidget Class
Desktop and Mobile Development, 574
Using the QTextEdit Class
Desktop and Mobile Development, 573
Using the QTimer Class
Desktop and Mobile Development, 612
Using the tool
Code Generator, 780
Using This.Attribute in nested Braces inside the Class
Methods
What is new in Ring 1.1?, 119
Using Types inside Code
The Type Hints Library, 721
Using Visual Studio IDE
Using Other Code Editors, 152
value()
Stdlib Functions, 307
Variables
Deep Copy, 154
Dynamic Typing, 154
Introduction, 153
Weakly Typed, 155
Variables Scope
Functions - First Style, 178
Functions - Second Style, 182
Functions - Third Style, 186
varptr()
Low Level Functions, 741
Version() Function
System Functions, 235
Video-Music-Player Application
Index 1816
3. Ring Documentation, Release 1.5.4
Applications developed in little hours, 9
What is new in Ring 1.5?, 36
Virtual Machine Instructions
Reference, 1778
Visual Implementation
Language Design, 34
Weakly Typed
Variables, 155
Web Development (CGI Library)
Application Class, 416
Configure the Apache web server, 368
Cookies, 380
CRUD Example using MVC, 402
Database, ModelBase & ControllerBase classes, 410
Generating Pages using Objects, 392
Gradient, 391
Hash Functions, 386
Hello World Program using the Web Library, 369
HTML Lists, 389
HTML Special Characters, 385
HTML Tables, 390
HtmlPage Class, 397, 421
HTTP Get Example, 370
HTTP POST Example, 375
Introduction, 367
Page Class, 417
Random Image, 388
Ring CGI Hello World Program, 369
ScriptFunctions Class, 419
StyleFunctions Class, 419
Templates, 383
Upload Files, 377
URL Encode, 382
Users registration and Login, 404
Using Bootstrap Library using Functions, 398
Using Bootstrap Library using Objects, 399
Web Library Features, 370
WebLib API, 415
WebPage Class, 420
Web Library Features
Web Development (CGI Library), 370
WebLib API
Web Development (CGI Library), 415
WebPage Class
Web Development (CGI Library), 420
Weight History Application
Desktop and Mobile Development, 641
Werdy Application
Applications developed in little hours, 12
What about predefined parameters or optional parameters
in functions?
Frequently Asked Questions, 1754
What about the Boolean values in Ring?
Frequently Asked Questions, 1746
What are the advantages to using Ring over C# or Java?
Frequently Asked Questions, 1744
What are the advantages to using Ring over Lisp or
Smalltalk?
Frequently Asked Questions, 1741
What are the advantages to using Ring over native C or
C++?
Frequently Asked Questions, 1742
What are the advantages to using Ring over Python and
Ruby?
Frequently Asked Questions, 1743
What are the advantages to using Ring over Tcl and Lua?
Frequently Asked Questions, 1743
What happens when we create a new object?
Frequently Asked Questions, 1750
What is new in Ring 1.1?
Better Code Generator for Extensions, 119
Better Documentation, 119
Better Natural Language Programming Support, 111
Game Engine for 2D Games, 117
Generate/Execute Ring Object Files (*.ringo), 112
Introduction, 110
List of changes and new features, 111
New Functions and Changes, 114
RingLibSDL, 117
RingSQLite, 118
StdLib functions and classes written in Ring, 115
Syntax Flexibility, 112
Using Self.Attribute in the Class Region to define
new attributes, 119
Using This.Attribute in nested Braces inside the
Class Methods, 119
What is new in Ring 1.2?
Better Call Command, 109
Better Functions, 106
Better Quality, 109
Better Ring Notepad, 106
Better RingQt, 106
Display Warnings Option, 109
Introduction, 104
List of changes and new features, 105
New Functions, 105
Objects Library for RingQt, 107
RingLibCurl, 108
Using NULL instead of NULLPointer(), 109
What is new in Ring 1.3?
Better Loop|Exit Command, 100
Better Ring Notepad, 96
Better RingQt, 92
Better StdLib, 100
Embedding Ring in Ring without sharing the State,
102
Form Designer, 103
Index 1817
4. Ring Documentation, Release 1.5.4
Introduction, 91
List of changes and new features, 92
New Functions, 101
Return Self by Reference, 101
Ring mode for Emacs Editor, 99
RingZip Library, 102
Using ’<’ and ’:’ operators as ’from’ keyword, 101
What is new in Ring 1.4.1?
What is new in Ring 1.4?, 88
What is new in Ring 1.4?
Better RingQt, 87
Better StdLib, 85
Better WebLib, 85
Change: Basic Extensions are separated from
RingVM, 80
Convert between Numbers and Bytes, 84
Introduction, 79
List of changes and new features, 80
New Style to Ring Notepad, 83
Qt Class Convertor, 87
RingREPL, 83
The Natural Library, 81
What is new in Ring 1.4.1?, 88
What is new in Ring 1.5.1?
What is new in Ring 1.5?, 69
What is new in Ring 1.5.2?
What is new in Ring 1.5?, 74
What is new in Ring 1.5.3?
What is new in Ring 1.5?, 75
What is new in Ring 1.5.4?
What is new in Ring 1.5?, 78
What is new in Ring 1.5?
Better Code Generator for Extensions, 60
Better Documentation Generator for Extensions, 61
Better Objects Library, 47
Better Quality, 69
Better Ring Notepad, 38
Better RingQt, 45
Better StdLib, 41
Better WebLib, 42
Calculator Application, 37
Introduction, 35
List of changes and new features, 36
More Syntax Flexibility, 67
Ring VM - Tracing Functions, 61
RingFreeGLUT Extension, 47
RingOpenGL Extension, 56
Trace Library and Interactive Debugger, 65
Type Hints Library, 68
Video-Music-Player Application, 36
What is new in Ring 1.5.1?, 69
What is new in Ring 1.5.2?, 74
What is new in Ring 1.5.3?, 75
What is new in Ring 1.5.4?, 78
Windows StartUp Manager Application, 37
What is RingFreeGLUT?
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 503
What is RingOpenGL?
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 502
What is the difference between Ring and Python? And is
Ring Open Source?
Frequently Asked Questions, 1742
Where can I write a program and execute it?
Frequently Asked Questions, 1753
While Loop
Control Structures - First Style, 160
Control Structures - Third Style, 170
Why do we need Yet Another Programming Language
(YAPL)?
Frequently Asked Questions, 1740
Why I get a strange result when printing nl with lists?
Frequently Asked Questions, 1755
Why I get Calling Function without definition Error?
Frequently Asked Questions, 1766
Why Ring is largely focussed on UI creation?
Frequently Asked Questions, 1742
Why Ring is not case-sensitive
Frequently Asked Questions, 1748
Why Ring is weakly typed?
Frequently Asked Questions, 1741
Why Ring uses ’See’, ’Give’, ’But’ and ’Ok’ Keywords?
Frequently Asked Questions, 1745
Why Ring?
Language Design, 27
Why setClickEvent() doesn’t see the object methods di-
rectly?
Frequently Asked Questions, 1766
Why the ability to define your own languages Instead of
just handing over the syntax so you can parse it
using whatever code you like?
Frequently Asked Questions, 1744
Why the Assignment operator uses Deep copy?
Frequently Asked Questions, 1749
Why the window title bar is going outside the screen?
Frequently Asked Questions, 1760
Why this example use the GetChar() twice?
Frequently Asked Questions, 1757
Why Type Hints?
The Type Hints Library, 720
Why we don’t use () after the qApp class name?
Frequently Asked Questions, 1760
Why you can specify the number of loops you want to
break out of?
Frequently Asked Questions, 1745
Window Flags
Form Designer, 689
Index 1818
5. Ring Documentation, Release 1.5.4
Window Resize Event
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 506
Windows StartUp Manager Application
Applications developed in little hours, 11
What is new in Ring 1.5?, 37
Windowsnl() Function
System Functions, 233
Wrap structures
Code Generator, 782
Wrapping C++ Classes
Code Generator, 788
Write file using Write()
Files, 221
Writing Comments
Getting Started - First Style, 131
Getting Started - Second Style, 133
Getting Started - Third Style, 135
Zip Class Reference
RingZip, 428
ZipEntry Class Reference
RingZip, 428
Index 1819