Anda di halaman 1dari 30

INDEX

Access List Items by String Index Introduction, 1


Lists, 122 Quotes about Ring, 1
Access Objects Using Braces Samples in this book, 7
Object Oriented Programming, 197 Squares Puzzle Game, 4
Access String Letters TicTacToe Game, 3
Strings, 124 Werdy Application, 5
Accessing the class attributes from braces inside class apppath()
methods Stdlib Functions, 231
Scope Rules, 545 Arithmetic Operators
Add Items Operators, 91
Lists, 116 Ascii()
addattribute() Data Type, 139
Reflection and Meta-programming, 224 Assert()
AddDays() Eval() and Debugging, 164
Date and Time, 132 Assignment Operators
Adding code to the generated code Operators, 92
Code Generator, 611 attributes()
Adding Hyperlink to QLabel Reflection and Meta-programming, 221
Desktop and Mobile Development, 452
addmethod() Better Call Command
Reflection and Meta-programming, 224 What is new in Ring 1.2?, 51
Analog Clock Better Code Generator for Extensions
Applications developed in little hours, 4 What is new in Ring 1.1?, 61
Animate Class Better Documentation
Game Engine for 2D Games, 373 What is new in Ring 1.1?, 61
Animate Events Better Functions
Game Engine for 2D Games, 384 What is new in Ring 1.2?, 48
Animation Better Loop|Exit Command
Game Engine for 2D Games, 378 What is new in Ring 1.3?, 42
Animation and Functions Better Natural Language Programming Support
Game Engine for 2D Games, 379 What is new in Ring 1.1?, 53
Anonymous and Nested Functions Better Quality
Functional Programming, 210 What is new in Ring 1.2?, 51
Application Class Better Ring Notepad
Web Development (CGI Library), 338 What is new in Ring 1.2?, 48
Applications What is new in Ring 1.3?, 38
How to contribute?, 69 Better RingQt
Applications developed in little hours What is new in Ring 1.2?, 48
Analog Clock, 4 What is new in Ring 1.3?, 34
FetchStockData Application, 2 What is new in Ring 1.4?, 32
Fifteen Puzzle Game, 3 Better StdLib
Fifteen Puzzle Game 2, 6 What is new in Ring 1.3?, 42
What is new in Ring 1.4?, 30

848
Ring Documentation, Release 1.4

Better WebLib Frequently Asked Questions, 827


What is new in Ring 1.4?, 30 Can Ring work on Windows XP?
binarydigits() Frequently Asked Questions, 829
Stdlib Functions, 240 capitalized()
Bitwise Operators Stdlib Functions, 234
Operators, 91 cfunctions()
BraceError() Method Reflection and Meta-programming, 214
Natural Language Programming, 281 CGI Support
BraceExprEval Method Command Line Options, 582
Natural Language Programming, 280 Change Focus
BraceStart and BraceEnd Methods Desktop and Mobile Development, 487
Natural Language Programming, 279 Change Language Keywords
Branching Syntax Flexibility, 558
Control Structures, 94 Change Language Operators
Control Structures - Second Style, 101 Syntax Flexibility, 559
Control Structures - Third Style, 104 Change the = operator to is
Building From Source Code Natural Language Programming, 277
Building using CMake, 67 Change the Ring Keyword And
Building using MacOS X, 65 Natural Language Programming, 275
Building using Microsoft Windows, 63 Change the Ring Operator +
Building using Ubuntu Linux, 64 Natural Language Programming, 276
Introduction, 62 Change: Basic Extensions are separated from RingVM
Building Games For Android What is new in Ring 1.4?, 25
Building the project, 420 changestring()
Download Requirements and Update the Android Stdlib Functions, 242
SDK, 419 Char()
Introduction, 418 Data Type, 139
Project Folder, 419 ChDir() Function
Building RingQt Applications for Mobile System Functions, 161
Comments about developing for Android using Check Character
RingQt, 524 Data Type, 134
Download Requirements, 523 Check Data Type
Install Qt for Android, 523 Data Type, 133
Introduction, 522 Check Parameters Count
Update the Android SDK, 523 Extension, 598
Building the project Check Parameters Type
Building Games For Android, 420 Extension, 599
Building using CMake Classes and Objects
Building From Source Code, 67 Object Oriented Programming, 195
Building using MacOS X Classes and their Methods to use the default events
Building From Source Code, 65 Desktop and Mobile Development, 517
Building using Microsoft Windows classes()
Building From Source Code, 63 Reflection and Meta-programming, 218
Building using Ubuntu Linux classname()
Building From Source Code, 64 Reflection and Meta-programming, 220
Clean Natural Code
Call Functions Natural Language Programming, 282
Functions, 111 Clearerr()
callgc() Files, 151
Low Level Functions, 584 clock()
Calling a function sharing the name with a method in the Date and Time, 130
current class Close Window Event
Scope Rules for Functions and Methods, 556 RingLibSDL, 365
Can I connect to dbase/harbour database? ClosPerSecond()

Index 849
Ring Documentation, Release 1.4

Date and Time, 130 Code Generator, 627


Code Generator Configure the Apache web server
Adding code to the generated code, 611 Web Development (CGI Library), 291
Comments in configuration file, 613 Conflict between Class Attributes and Local Variables
Configuration file, 609 Scope Rules, 542
Configuration file for the Allegro library, 614 Conflict between Global Variables and Class Attributes
Configuration Files Examples, 627 Frequently Asked Questions, 815
Defining Constants, 612 Scope Rules, 541
Determine Structure Members Types, 612 Conflict between self inside braces and self in the class
Enum and Numbers, 613 region
Executing code during code generation, 613 Scope Rules, 548
Filtering using Expressions, 613 Constructor methods in Ring
function prototype, 609 Frequently Asked Questions, 811
Introduction, 608 Contact the Autor
Prefix for Functions Names, 611 Resources, 847
Qt configuration file, 617 Control Structures
Register New Functions, 612 Branching, 94
Threads Support, 615 Looping, 105
Using configuration file that wrap C++ library, 617 Control Structures - First Style
Using the tool, 609 Comments about evaluation, 99
Wrap structures, 611 Do Again Loop, 97
Wrapping C++ Classes, 616 Exit, 97
CodeEditor Class Exit from two loops, 97
RingQt Classes Reference, 781 Exit/Loop inside sub functions, 98
Command Line Options For In Loop, 96
CGI Support, 582 for in to modify lists, 96
Generate Object File, 583 For Loop, 95
Introduction, 568 Introduction, 93
No Run, 582 Loop Command, 98
Performance, 582 Looping, 95
Printing Final Intermediate Code, 577 Short-circuit evaluation, 98
Printing Instruction Operation Code, 582 Step Option, 96
Printing Intermediate Code, 575 Switch Statement, 94
Printing Rules, 571 While Loop, 95
Printing Tokens, 569 Control Structures - Second Style
Comments about developing for Android using RingQt Branching, 101
Building RingQt Applications for Mobile, 524 Exceptions, 103
Comments about evaluation For In Loop, 103
Control Structures - First Style, 99 For Loop, 102
Comments in configuration file If Statement, 101
Code Generator, 613 Introduction, 100
Compact Syntax Looping, 102
Language Design, 20 Switch Statement, 101
Compiler and Virtual Machine (VM) Control Structures - Third Style
How to contribute?, 69 Branching, 104
Compiler Errors Exceptions, 107
Reference, 836 For In Loop, 107
Composition For Loop, 106
Object Oriented Programming, 198 If Statement, 104
Configuration file Introduction, 103
Code Generator, 609 Switch Statement, 104
Configuration file for the Allegro library While Loop, 105
Code Generator, 614 Conversion
Configuration Files Examples Data Type, 138

Index 850
Ring Documentation, Release 1.4

Conversion Class IsAlpha(), 135


Stdlib Classes, 262 IsCntrl(), 135
Convert between Numbers and Bytes IsDigit(), 136
What is new in Ring 1.4?, 29 IsGraph(), 136
Convert Letters Case IsList(), 134
Strings, 124 IsLower(), 136
Cookies IsNULL(), 134
Web Development (CGI Library), 303 IsNumber(), 133
Copy Lists IsPrint(), 136
Lists, 120 IsPunct(), 137
Copy() IsSpace(), 137
Strings, 126 IsString(), 133
Could you explain the output of the StrCmp() function? IsUpper(), 137
Frequently Asked Questions, 818 IsXdigit(), 137
Create Database Number(), 138
MySQL Functions, 179 Str2Hex(), 140
Create Lists String(), 138
Lists, 116 Type(), 134
Create Table and Insert Data Database, ModelBase & ControllerBase classes
MySQL Functions, 180 Web Development (CGI Library), 332
Create Window DataType Class
RingLibSDL, 362 Stdlib Classes, 261
Create Zip File Date and Time
RingZip, 346 AddDays(), 132
Creating a Class for each Window in GUI applications clock(), 130
Scope Rules, 547 ClosPerSecond(), 130
Creating Menubar Date(), 130
Desktop and Mobile Development, 432 DiffDays(), 132
Creating more than one window Introduction, 129
Desktop and Mobile Development, 470 Time(), 130
Creating StatusBar TimeList(), 131
Desktop and Mobile Development, 436 Date()
Creating the Game Window Date and Time, 130
Game Engine for 2D Games, 373 DateTime Class
Creating Toolbar Stdlib Classes, 256
Desktop and Mobile Development, 435 dayofweek()
Creating Windows Installer Stdlib Functions, 241
Distributing Ring Application, 567 Debug Class
CRUD Example using MVC Stdlib Classes, 260
Web Development (CGI Library), 324 Dec()
CurrentDir() Function Data Type, 139
System Functions, 160 Decimals()
Mathematical Functions, 144
Data Type Declarative Programming
Ascii(), 139 Declarative programming on the top of Object-
Char(), 139 Oriented, 271
Check Character, 134 executing code after the end of object access, 271
Check Data Type, 133 Introduction, 267
Conversion, 138 More Beatiful Code, 272
Dec(), 139 Objects inside lists, 268
Hex(), 139 Return object by reference, 269
Hex2str(), 140 Declarative programming on the top of Object-Oriented
Introduction, 132 Declarative Programming, 271
IsAlNum(), 135 Declare parameters

Index 851
Ring Documentation, Release 1.4

Functions, 112 QMessagebox Example, 474


Decrypt() QVideoWidget and QMediaPlayer, 453
Security and Internet Functions, 193 Regular Expressions, 488
Deep Copy RingQt Classes and their Qt Documentation, 522
Variables, 89 Rotate Text, 485
Define Declarative Languages Simple Client and Server Example, 489
Language Design, 23 The Cards Game, 511
Define Functions The Difference between Qt and RingQt, 521
Functions, 111 The First GUI Application, 422
Define Natural Statements Using Layout, 423
Language Design, 21 Using QCheckBox, 449
Defining Commands Using QComboBox Class, 431
Using the Natural Library, 286 Using QDateEdit, 444
Defining commands using classes Using QDesktopWidget Class, 484
Using the Natural Library, 289 Using QDial, 445
Defining Constants Using QDockWidget, 437
Code Generator, 612 Using QFrame, 454
Defining Variables and Variables Access Using QInputDialog Class, 475
Scope Rules, 539 Using qLCDNumber, 472
Delete Item From List Using QProgressBar, 441
Lists, 117 Using QProgressBar and Timer, 464
Demo Programs Using QRadioButton and QButtonGroup, 450
Introduction, 164 Using QSlider, 442
Language Shell, 165 Using QSpinBox, 442
Main Menu, 165 Using QTableWidget, 440
The Cards Game, 511 Using QTabWidget, 438
Designed for a clear goal Using QTreeView and QFileSystemModel, 429
Language Design, 16 Using QTreeWidget and QTreeWidgetItem, 430
Desktop and Mobile Development Using QWebView, 448
Adding Hyperlink to QLabel, 452 Using the QColorDialog Class, 471
Change Focus, 487 Using the QFileDialog Class, 466
Classes and their Methods to use the default events, Using the QListWidget Class, 426
517 Using the QTextEdit Class, 425
Creating Menubar, 432 Using the QTimer Class, 463
Creating more than one window, 470 Weight History Application, 492
Creating StatusBar, 436 Determine Structure Members Types
Creating Toolbar, 435 Code Generator, 612
Dialog Functions, 477 Dialog Functions
Display Image using QLabel, 456 Desktop and Mobile Development, 477
Display Scaled Image using QLabel, 465 DiffDays()
Drawing using QPainter, 467 Date and Time, 132
Dynamic Objects, 491 Dir()
Inheritance from GUI Classes, 483 Files, 147
KeyPress and Mouse Move Events, 477 direxists()
Menubar and StyleSheet Example, 457 Stdlib Functions, 243
Methods to use Events with Events Filter, 520 Display Error Message
Movable Label Example, 473 Extension, 599
Moving Objects using the Mouse, 479 Display Image
New Classes names - Index Start from 1, 522 RingLibSDL, 362
Notepad Application, 496 Display Image using QLabel
Other Widgets Events, 461 Desktop and Mobile Development, 456
Playing Sound, 471 Display PNG Images
Printing using QPrinter, 469 RingLibSDL, 363
QLineEdit Events and QMessageBox, 459 Display Scaled Image using QLabel

Index 852
Ring Documentation, Release 1.4

Desktop and Mobile Development, 465 Introduction, 605


Display Transparent Images Ring State, 606
RingLibSDL, 364 Ring State Functions, 606
Display Warnings Option Ring State Variables, 607
What is new in Ring 1.2?, 51 Encourage Organization
Distributing Applications and Games for Mobile Language Design, 18
Distributing Ring Application, 568 Encrypt()
Distributing Applications for Microsoft Windows Security and Internet Functions, 192
Distributing Ring Application, 567 endswith()
Distributing Ring Application Stdlib Functions, 237
Creating Windows Installer, 567 Entering Items
Distributing Applications and Games for Mobile, Form Designer, 537
568 Enum and Numbers
Distributing Applications for Microsoft Windows, Code Generator, 613
567 Equality of functions
Introduction, 566 Functional Programming, 211
Protecting the Source Code, 567 Eval()
Using C/C++ Compiler and Linker, 568 Eval() and Debugging, 162
Do Again Loop Eval() and Debugging
Control Structures - First Style, 97 Assert(), 164
Documentation Eval(), 162
How to contribute?, 68 Introduction, 161
Download Requirements Raise(), 163
Building RingQt Applications for Mobile, 523 Try/Carch/Done, 162
Download Requirements and Update the Android SDK evenorodd()
Building Games For Android, 419 Stdlib Functions, 238
Download() Events Code
Security and Internet Functions, 194 Form Designer, 533
Draw Rectangle Example
RingLibSDL, 363 Files, 153
Drawing Text Mathematical Functions, 141
Game Engine for 2D Games, 374 Natural Language Programming, 274
Drawing using QPainter Objects Library for RingQt Application, 526
Desktop and Mobile Development, 467 Security and Internet Functions, 193
Drawing, Animation and Input System Functions, 158
Graphics and Game Programming, 349 Example about Sharing Names between Functions and
Dynamic Attributes Methods
Object Oriented Programming, 202 Scope Rules for Functions and Methods, 554
Dynamic Objects Exceptions
Desktop and Mobile Development, 491 Control Structures - Second Style, 103
Dynamic Typing Control Structures - Third Style, 107
Variables, 89 Execute Query and Print Result
ODBC Functions, 173
Editors Support executing code after the end of object access
How to contribute?, 69 Declarative Programming, 271
Embedding Ring in Ring Executing code during code generation
Embedding Ring in Ring without sharing the State, Code Generator, 613
594 ExeFileName() Function
Introduction, 593 System Functions, 161
Serial Execution of Programs, 594 ExeFolder() Function
Embedding Ring in Ring without sharing the State System Functions, 161
Embedding Ring in Ring, 594 Exit
What is new in Ring 1.3?, 44 Control Structures - First Style, 97
Embedding Ring Language in C/C++ Programs Exit from two loops

Index 853
Ring Documentation, Release 1.4

Control Structures - First Style, 97 Fifteen Puzzle Game


Exit/Loop inside sub functions Applications developed in little hours, 3
Control Structures - First Style, 98 Fifteen Puzzle Game 2
Extension Applications developed in little hours, 6
Check Parameters Count, 598 File Class
Check Parameters Type, 599 Stdlib Classes, 258
Display Error Message, 599 File Hash
Fopen() and Fclose() Implementation, 600 Security and Internet Functions, 193
Function Prototype, 600 file2list()
Function Structure, 598 Stdlib Functions, 236
Get Parameters Values, 599 Files
Introduction, 595 Clearerr(), 151
Module Organization, 597 Dir(), 147
MySQL_Columns() Implementation, 603 Example, 153
Return Value, 599 Fclose(), 148
RING API - list Functions, 601 Feof(), 151
RING API - String Functions, 603 Ferror(), 151
ring_ext.c, 596 Fexists(), 153
ring_ext.h, 596 Fflush(), 149
Shared Libraries, 604 Fgetc(), 152
Sin() Implementation, 600 Fgetpos(), 151
Extensions in C/C++ Fgets(), 152
How to contribute?, 69 Fopen(), 148
Extract Zip File Fputc(), 152
RingZip, 346 Fputs(), 152
Fread(), 153
Facebook Login Freopen(), 149
RingLibCurl, 343 Fseek(), 150
factorial() Fsetpos(), 151
Stdlib Functions, 235 Ftell(), 150
factors() Fwrite(), 153
Stdlib Functions, 239 Introduction, 145
Fclose() Numbers and Bytes, 155
Files, 148 Perror(), 151
Features Read File using Read(), 147
Introduction, 12 Remove(), 148
Feof() Rename(), 148
Files, 151 Rewind(), 150
Ferror() Tempfile(), 150
Files, 151 Tempname(), 150
FetchStockData Application Ungetc(), 152
Applications developed in little hours, 2 Write file using Write(), 147
Fexists() filter()
Files, 153 Stdlib Functions, 232
Fflush() Filtering using Expressions
Files, 149 Code Generator, 613
Fgetc() Find SubString
Files, 152 Strings, 127
Fgetpos() Find() and List of Objects
Files, 151 Object Oriented Programming, 203
Fgets() First-Class Functions
Files, 152 Functional Programming, 209
fibonacci() First-Class Lists
Stdlib Functions, 235 Lists, 121

Index 854
Ring Documentation, Release 1.4

Flappy Bird 3000 Game How to create an array of buttons in GUI applica-
Game Engine for 2D Games, 400 tions?, 823
Fopen() How to extend RingQt and add more classes?, 829
Files, 148 How to get the current source file path?, 816
Fopen() and Fclose() Implementation How to get the file size using ftell() and fseek() func-
Extension, 600 tions?, 816
For In Loop How to insert an item to the first position in the list?,
Control Structures - First Style, 96 821
Control Structures - Second Style, 103 How to perform some manipulations on selected
Control Structures - Third Style, 107 cells in QTableWidget?, 832
for in to modify lists How to print keys or values only in List/Dictionary?,
Control Structures - First Style, 96 817
For Loop How to print lists that contains objects?, 821
Control Structures - First Style, 95 How to print new lines and other characters?, 822
Control Structures - Second Style, 102 How to use many source code files in the project?,
Control Structures - Third Style, 106 818
Form Designer How to use NULL and ISNULL() function?, 820
Entering Items, 537 How to use SQLite using ODBC?, 826
Events Code, 533 Introduction, 802
Introduction, 530 Is Ring some sort of improvement over PHP?, 805
Keyboard Shortcuts, 536 List index start from 1, 811
Menubar Designer, 536 Philosophy behind data types in Ring, 808
More Samples and Tests, 538 Search of global names while defining the class at-
Running Forms, 533 tributes, 814
The Designer Windows, 532 The documentation says functional programming is
The Properties, 532 supported, but then this happens?, 807
Using Layouts, 538 What about predefined parameters or optional pa-
What is new in Ring 1.3?, 45 rameters in functions?, 816
Window Flags, 537 What about the Boolean values in Ring?, 809
Fputc() What are the advantages to using Ring over C# or
Files, 152 Java?, 807
Fputs() What are the advantages to using Ring over Lisp or
Files, 152 Smalltalk?, 804
Fread() What are the advantages to using Ring over native C
Files, 153 or C++?, 805
Freopen() What are the advantages to using Ring over Python
Files, 149 and Ruby?, 806
Frequently Asked Questions What are the advantages to using Ring over Tcl and
Can I connect to dbase/harbour database?, 827 Lua?, 807
Can Ring work on Windows XP?, 829 What happens when we create a new object?, 812
Conflict between Global Variables and Class At- What is the difference between Ring and Python?
tributes, 815 And is Ring Open Source?, 805
Constructor methods in Ring, 811 Where can I write a program and execute it?, 815
Could you explain the output of the StrCmp() func- Why do we need Yet Another Programming Lan-
tion?, 818 guage (YAPL)?, 803
Getter and Setter Methods, 813 Why I get a strange result when printing nl with
Goal of including the Main function in Ring, 810 lists?, 817
How can I disable maximize button and resize win- Why I get Calling Function without definition Er-
dow?, 825 ror?, 828
How to add Combobox and other elements to the Why Ring is largely focussed on UI creation?, 805
cells of a QTableWidget?, 832 Why Ring is weakly typed?, 804
How to Close a window then displaying another Why Ring uses See, Give, But and Ok Key-
one?, 824 words?, 808
How to create a Modal Window?, 824 Why setClickEvent() doesnt see the object methods

Index 855
Ring Documentation, Release 1.4

directly?, 828 Animation and Functions, 379


Why the ability to define your own languages Instead Creating the Game Window, 373
of just handing over the syntax so you can parse Drawing Text, 374
it using whatever code you like?, 808 Flappy Bird 3000 Game, 400
Why the window title bar is going outside the Game Class, 371
screen?, 822 Game Engine Classes, 370
Why this example use the GetChar() twice?, 819 GameObject Class, 371
Why we dont use () after the qApp class name?, 822 Games Layer, 370
Why you can specify the number of loops you want Graphics Library Bindings, 369
to break out of?, 808 Interface to graphics library, 369
Fseek() Introduction, 368
Files, 150 Map, 386
Fsetpos() Map Class, 373
Files, 151 Map Events, 387
FSize() Moving Text, 375
Stdlib Functions, 244 Object and Drawing, 389
Ftell() Playing Sound, 377
Files, 150 Project Layers, 369
Function Prototype Sound Class, 373
Extension, 600 Sprite Automatic Movement, 380
function prototype Sprite Class, 372
Code Generator, 609 Sprite Keypress Event, 381
Function Structure Sprite Mouse Event, 382
Extension, 598 Sprite State Event, 383
Functional Programming Stars Fighter Game, 392
Anonymous and Nested Functions, 210 Super Man 2016 Game, 407
Equality of functions, 211 Text Class, 372
First-Class Functions, 209 What is new in Ring 1.1?, 59
Higher-order Functions, 209 GameObject Class
Introduction, 207 Game Engine for 2D Games, 371
Pure Functions, 208 Games Layer
Functions Game Engine for 2D Games, 370
Call Functions, 111 gcd()
Declare parameters, 112 Stdlib Functions, 237
Define Functions, 111 Generate Object File
Introduction, 110 Command Line Options, 583
Main Function, 112 Generate/Execute Ring Object Files (*.ringo)
Recursion, 114 What is new in Ring 1.1?, 54
Return Value, 113 Generating Pages using Objects
Send Parameters, 112 Web Development (CGI Library), 315
Variables Scope, 113 Get Active Source File Name
functions() System Functions, 160
Reflection and Meta-programming, 214 Get Command Line Arguments
Fwrite() System Functions, 159
Files, 153 Get List Item
Lists, 117
Game Class Get List Size
Game Engine for 2D Games, 371 Lists, 117
Game Engine Classes Get Number of Characters from position
Game Engine for 2D Games, 370 Strings, 127
Game Engine for 2D Games Get Parameters Values
Animate Class, 373 Extension, 599
Animate Events, 384 Get Request
Animation, 378 RingLibCurl, 343

Index 856
Ring Documentation, Release 1.4

Get String Length Frequently Asked Questions, 810


Strings, 124 Gradient
Get Substring from position to end Web Development (CGI Library), 314
Strings, 127 Graphics and Game Programming
getattribute() Drawing, Animation and Input, 349
Reflection and Meta-programming, 226 Introduction, 348
GetChar() Playing Sound, 356
Getting Input, 109 Scaling and Rotating Images, 357
getnumber() Threads, 359
Stdlib Functions, 230 Transparent Image, 358
getstring() TrueType Fonts, 355
Stdlib Functions, 230 Graphics Library Bindings
Getter and Setter Methods Game Engine for 2D Games, 369
Frequently Asked Questions, 813
Getting Input Hash Functions
GetChar(), 109 Web Development (CGI Library), 309
Getting Started - First Style, 71 HashTable Class
Getting Started - Second Style, 73 Stdlib Classes, 251
Getting Started - Third Style, 75 Hello World
Give Command, 109 Getting Started - First Style, 70
Input(), 110 Getting Started - Second Style, 72
Introduction, 108 Getting Started - Third Style, 74
Getting Started - First Style Hello World Program using the Web Library
Getting Input, 71 Web Development (CGI Library), 292
Hello World, 70 Hex()
Introduction, 69 Data Type, 139
Multi-Line literals, 70 Hex2str()
No Explicit End For Statements, 71 Data Type, 140
Not Case-Sensitive, 70 Higher-order Functions
Run the program, 70 Functional Programming, 209
Writing Comments, 71 History
Getting Started - Second Style Introduction, 12
Getting Input, 73 Natural Language Programming, 274
Hello World, 72 How can I disable maximize button and resize window?
Introduction, 71 Frequently Asked Questions, 825
Multi-Line literals, 72 How Ring find a functions and methods?
No Explicit End For Statements, 73 Scope Rules for Functions and Methods, 554
Not Case-Sensitive, 72 How Ring find the Variable?
Run the program, 72 Scope Rules, 540
Writing Comments, 73 How to add Combobox and other elements to the cells of
Getting Started - Third Style a QTableWidget?
Getting Input, 75 Frequently Asked Questions, 832
Hello World, 74 How to Close a window then displaying another one?
Introduction, 73 Frequently Asked Questions, 824
Multi-Line literals, 74 How to contribute?
No Explicit End For Statements, 75 Applications, 69
Not Case-Sensitive, 74 Compiler and Virtual Machine (VM), 69
Run the program, 74 Documentation, 68
Writing Comments, 75 Editors Support, 69
Give Command Extensions in C/C++, 69
Getting Input, 109 Ideas and suggestions, 69
globals() Introduction, 67
Reflection and Meta-programming, 213 Libraries in Ring, 69
Goal of including the Main function in Ring Samples, 68

Index 857
Ring Documentation, Release 1.4

Special thanks to contributors, 68 Building RingQt Applications for Mobile, 523


Testing, 68 Interface to graphics library
How to create a Modal Window? Game Engine for 2D Games, 369
Frequently Asked Questions, 824 Internet Class
How to create an array of buttons in GUI applications? Stdlib Classes, 267
Frequently Asked Questions, 823 Introduction
How to extend RingQt and add more classes? Features, 12
Frequently Asked Questions, 829 History, 12
How to get the current source file path? Introduction, 10
Frequently Asked Questions, 816 Motivation, 11
How to get the file size using ftell() and fseek() functions? Is Ring some sort of improvement over PHP?
Frequently Asked Questions, 816 Frequently Asked Questions, 805
How to insert an item to the first position in the list? IsAlNum()
Frequently Asked Questions, 821 Data Type, 135
How to perform some manipulations on selected cells in IsAlpha()
QTableWidget? Data Type, 135
Frequently Asked Questions, 832 IsAndroid() Function
How to print keys or values only in List/Dictionary? System Functions, 158
Frequently Asked Questions, 817 isattribute()
How to print lists that contains objects? Reflection and Meta-programming, 222
Frequently Asked Questions, 821 iscfunction()
How to print new lines and other characters? Reflection and Meta-programming, 216
Frequently Asked Questions, 822 isclass()
How to use many source code files in the project? Reflection and Meta-programming, 218
Frequently Asked Questions, 818 IsCntrl()
How to use NULL and ISNULL() function? Data Type, 135
Frequently Asked Questions, 820 IsDigit()
How to use SQLite using ODBC? Data Type, 136
Frequently Asked Questions, 826 IsFreeBSD() Function
HTML Lists System Functions, 158
Web Development (CGI Library), 312 isfunction()
HTML Special Characters Reflection and Meta-programming, 216
Web Development (CGI Library), 308 isglobal()
HTML Tables Reflection and Meta-programming, 215
Web Development (CGI Library), 313 IsGraph()
HTTP Get Example Data Type, 136
Web Development (CGI Library), 293 isleapyear()
HTTP POST Example Stdlib Functions, 239
Web Development (CGI Library), 298 IsLinux() Function
System Functions, 158
Ideas and suggestions IsList()
How to contribute?, 69 Data Type, 134
If Statement islocal()
Control Structures - Second Style, 101 Reflection and Meta-programming, 215
Control Structures - Third Style, 104 IsLower()
Inheritance Data Type, 136
Object Oriented Programming, 201 IsMacOSX() Function
Inheritance from GUI Classes System Functions, 157
Desktop and Mobile Development, 483 ismainsourcefile()
Input() Stdlib Functions, 243
Getting Input, 110 ismethod()
Insert() Reflection and Meta-programming, 223
Lists, 120 IsMSDOS() Function
Install Qt for Android System Functions, 157

Index 858
Ring Documentation, Release 1.4

IsNULL() Introduction, 15
Data Type, 134 Simple, 16
IsNumber() Smart Garbage Collector, 24
Data Type, 133 Transparent Implementation, 18
isobject() Trying to be natural, 17
Reflection and Meta-programming, 221 Visual Implementation, 19
ispackage() Why Ring?, 16
Reflection and Meta-programming, 217 Language Functions
ispackagesclass() Reference, 835
Reflection and Meta-programming, 220 Language Grammar
isprime() Reference, 838
Stdlib Functions, 235 Language Keywords
IsPrint() Reference, 834
Data Type, 136 Language Shell
isprivateattribute() Demo Programs, 165
Reflection and Meta-programming, 222 lcm()
isprivatemethod() Stdlib Functions, 238
Reflection and Meta-programming, 223 Left()
IsPunct() Strings, 125
Data Type, 137 Libraries in Ring
IsSpace() How to contribute?, 69
Data Type, 137 Library Usage
isspecial() Objects Library for RingQt Application, 526
Stdlib Functions, 234 linecount()
IsString() Stdlib Functions, 235
Data Type, 133 Lines()
IsUnix() Function Strings, 126
System Functions, 157 List Class
IsUpper() Stdlib Classes, 248
Data Type, 137 List index start from 1
isvowel() Frequently Asked Questions, 811
Stdlib Functions, 234 List of changes and new features
IsWindows() Function What is new in Ring 1.1?, 53
System Functions, 157 What is new in Ring 1.2?, 47
IsWindows64() Function What is new in Ring 1.3?, 34
System Functions, 157 What is new in Ring 1.4?, 25
IsXdigit() list of functions
Data Type, 137 Mathematical Functions, 141
list2file()
JustFileName() Stdlib Functions, 236
Stdlib Functions, 231 Lists
JustFilePath() Access List Items by String Index, 122
Stdlib Functions, 231 Add Items, 116
Copy Lists, 120
Keyboard Shortcuts
Create Lists, 116
Form Designer, 536
Delete Item From List, 117
KeyPress and Mouse Move Events
First-Class Lists, 121
Desktop and Mobile Development, 477
Get List Item, 117
Language Design Get List Size, 117
Compact Syntax, 20 Insert(), 120
Define Declarative Languages, 23 Introduction, 115
Define Natural Statements, 21 Nested Lists, 120
Designed for a clear goal, 16 Passing Lists to Functions, 121
Encourage Organization, 18 Passing Parameters Using List, 122

Index 859
Ring Documentation, Release 1.4

Reverse(), 119 Introduction, 140


Search, 118 list of functions, 141
Set List Item, 117 Random(), 143
Sort(), 118 Unsigned(), 144
Swap Items, 123 matrixmulti()
Using Lists during definition, 121 Stdlib Functions, 240
Load Syntax Files matrixtrans()
Syntax Flexibility, 559 Stdlib Functions, 240
locals() MD5()
Reflection and Meta-programming, 213 Security and Internet Functions, 190
Logical Operators Menubar and StyleSheet Example
Operators, 91 Desktop and Mobile Development, 457
Loop Command Menubar Designer
Control Structures - First Style, 98 Form Designer, 536
Looping mergemethods()
Control Structures, 105 Reflection and Meta-programming, 228
Control Structures - First Style, 95 Methods to use Events with Events Filter
Control Structures - Second Style, 102 Desktop and Mobile Development, 520
Low Level Functions methods()
callgc(), 584 Reflection and Meta-programming, 221
Introduction, 583 Misc Operators
nullpointer(), 586 Operators, 92
object2pointer(), 586 Module Organization
pointer2object(), 586 Extension, 597
ptrcmp(), 587 More Beatiful Code
RingVM_CallList(), 592 Declarative Programming, 272
RingVM_CFunctionsList(), 587 More Samples and Tests
RingVM_ClassesList(), 588 Form Designer, 538
RingVM_FilesList(), 593 Motivation
RingVM_FunctionsList(), 588 Introduction, 11
RingVM_MemoryList(), 590 Mouse Events
RingVM_PackagesList(), 589 RingLibSDL, 366
space(), 585 Movable Label Example
varptr(), 585 Desktop and Mobile Development, 473
Moving Objects using the Mouse
Main Function Desktop and Mobile Development, 479
Functions, 112 Moving Text
Main Menu Game Engine for 2D Games, 375
Demo Programs, 165 Multi-Line literals
makedir() Getting Started - First Style, 70
Stdlib Functions, 243 Getting Started - Second Style, 72
Map Getting Started - Third Style, 74
Game Engine for 2D Games, 386 MySQL Class
Map Class Stdlib Classes, 264
Game Engine for 2D Games, 373 MySQL Functions
Map Events Create Database, 179
Game Engine for 2D Games, 387 Create Table and Insert Data, 180
map() Introduction, 177
Stdlib Functions, 232 MySQL_AutoCommit(), 185
Math Class MySQL_Close(), 179
Stdlib Classes, 253 MySQL_Columns(), 182
Mathematical Functions MySQL_Commit(), 185
Decimals(), 144 MySQL_Connect(), 179
Example, 141 MySQL_Error(), 179

Index 860
Ring Documentation, Release 1.4

MySQL_Escape_String(), 184 Example, 274


MySQL_Info(), 178 History, 274
MySQL_Init(), 179 Introduction, 273
MySQL_Inser_ID(), 181 Real Natual Code, 280
MySQL_Next_Result(), 182 Using Eval() with our Natural Code, 278
MySQL_Query(), 179 Natural Library - Demo Program
MySQL_Result(), 182 Using the Natural Library, 284
MySQL_Result2(), 183 Nested Lists
MySQL_Rollback(), 185 Lists, 120
Print Query Result, 182 New Classes names - Index Start from 1
Restore Image From The Database, 184 Desktop and Mobile Development, 522
Save Image Inside the Database, 184 New Functions
Transaction Example, 185 What is new in Ring 1.2?, 47
MySQL_AutoCommit() What is new in Ring 1.3?, 43
MySQL Functions, 185 New Functions and Changes
MySQL_Close() What is new in Ring 1.1?, 56
MySQL Functions, 179 New Style to Ring Notepad
MySQL_Columns() What is new in Ring 1.4?, 28
MySQL Functions, 182 newlist()
MySQL_Columns() Implementation Stdlib Functions, 233
Extension, 603 No Explicit End For Statements
MySQL_Commit() Getting Started - First Style, 71
MySQL Functions, 185 Getting Started - Second Style, 73
MySQL_Connect() Getting Started - Third Style, 75
MySQL Functions, 179 No Run
MySQL_Error() Command Line Options, 582
MySQL Functions, 179 Not Case-Sensitive
MySQL_Escape_String() Getting Started - First Style, 70
MySQL Functions, 184 Getting Started - Second Style, 72
MySQL_Info() Getting Started - Third Style, 74
MySQL Functions, 178 Notepad Application
MySQL_Init() Desktop and Mobile Development, 496
MySQL Functions, 179 nullpointer()
MySQL_Inser_ID() Low Level Functions, 586
MySQL Functions, 181 Number()
MySQL_Next_Result() Data Type, 138
MySQL Functions, 182 Numbers and Bytes
MySQL_Query() Files, 155
MySQL Functions, 179
MySQL_Result() Object and Drawing
MySQL Functions, 182 Game Engine for 2D Games, 389
MySQL_Result2() Object Library Source Code
MySQL Functions, 183 Objects Library for RingQt Application, 530
MySQL_Rollback() Object Oriented Programming
MySQL Functions, 185 Access Objects Using Braces, 197
Classes and Objects, 195
Natural Language Programming Composition, 198
BraceError() Method, 281 Dynamic Attributes, 202
BraceExprEval Method, 280 Find() and List of Objects, 203
BraceStart and BraceEnd Methods, 279 Inheritance, 201
Change the = operator to is, 277 Introduction, 194
Change the Ring Keyword And, 275 Operator Overloading, 200
Change the Ring Operator +, 276 Packages, 202
Clean Natural Code, 282 Printing Objects, 203

Index 861
Ring Documentation, Release 1.4

Private Attributes and Methods, 199 ODBC Functions, 171


Setter and Getter, 199 odbc_datasources()
Sort() and List of Objects, 204 ODBC Functions, 170
Using Self.Attribute, 206 odbc_disconnect()
object2pointer() ODBC Functions, 172
Low Level Functions, 586 odbc_drivers()
objectid() ODBC Functions, 169
Reflection and Meta-programming, 220 odbc_execute()
Objects inside lists ODBC Functions, 172
Declarative Programming, 268 odbc_fetch()
Objects Library for RingQt ODBC Functions, 173
What is new in Ring 1.2?, 49 odbc_getdata()
Objects Library for RingQt Application ODBC Functions, 173
Example, 526 odbc_init()
Introduction, 525 ODBC Functions, 169
Library Usage, 526 odbc_rollback()
Object Library Source Code, 530 ODBC Functions, 175
Open_WindowAndLink() Function, 530 odbc_tables()
ODBC Class ODBC Functions, 173
Stdlib Classes, 263 Open and Close Connection
ODBC Functions ODBC Functions, 172
Execute Query and Print Result, 173 Open_WindowAndLink() Function
Introduction, 168 Objects Library for RingQt Application, 530
odbc_autocommit(), 175 Operator Overloading
odbc_close(), 170 Object Oriented Programming, 200
odbc_colcount(), 172 Operators
odbc_columns(), 174 Arithmetic Operators, 91
odbc_commit(), 175 Assignment Operators, 92
odbc_connect(), 171 Bitwise Operators, 91
odbc_datasources(), 170 Introduction, 90
odbc_disconnect(), 172 Logical Operators, 91
odbc_drivers(), 169 Misc Operators, 92
odbc_execute(), 172 Operators Precedence, 92
odbc_fetch(), 173 Relational Operators, 91
odbc_getdata(), 173 Using the Natural Library, 288
odbc_init(), 169 Operators Precedence
odbc_rollback(), 175 Operators, 92
odbc_tables(), 173 Other Widgets Events
Open and Close Connection, 172 Desktop and Mobile Development, 461
Print List of ODBC Data Sources, 171
Print List of ODBC Drivers, 170 packagename()
Save and Restore Images, 176 Reflection and Meta-programming, 229
Transactions and Using Commit and Rollback, 175 Packages
odbc_autocommit() Object Oriented Programming, 202
ODBC Functions, 175 packages()
odbc_close() Reflection and Meta-programming, 217
ODBC Functions, 170 packagesclasses()
odbc_colcount() Reflection and Meta-programming, 219
ODBC Functions, 172 Page Class
odbc_columns() Web Development (CGI Library), 339
ODBC Functions, 174 palindrome()
odbc_commit() Stdlib Functions, 239
ODBC Functions, 175 Passing Lists to Functions
odbc_connect() Lists, 121

Index 862
Ring Documentation, Release 1.4

Passing Parameters Using List Source Code File Sections, 115


Lists, 122 Using Many Source Code Files, 115
Performance Project Folder
Command Line Options, 582 Building Games For Android, 419
permutation() Project Layers
Stdlib Functions, 241 Game Engine for 2D Games, 369
Perror() Protecting the Source Code
Files, 151 Distributing Ring Application, 567
Philosophy behind data types in Ring ptrcmp()
Frequently Asked Questions, 808 Low Level Functions, 587
Play Sound Pure Functions
RingLibSDL, 367 Functional Programming, 208
Playing Sound puts()
Desktop and Mobile Development, 471 Stdlib Functions, 230
Game Engine for 2D Games, 377
Graphics and Game Programming, 356 QAbstractButton Class
pointer2object() RingQt Classes Reference, 713
Low Level Functions, 586 QAbstractItemView Class
Post Request RingQt Classes Reference, 699
RingLibCurl, 343 QAbstractScrollArea Class
Prefix for Functions Names RingQt Classes Reference, 699
Code Generator, 611 QAbstractSlider Class
PrevFileName() Function RingQt Classes Reference, 706
System Functions, 160 QAbstractSocket Class
Print files in Zip file RingQt Classes Reference, 734
RingZip, 346 QAbstractSpinBox Class
Print List of ODBC Data Sources RingQt Classes Reference, 709
ODBC Functions, 171 QAction Class
Print List of ODBC Drivers RingQt Classes Reference, 717
ODBC Functions, 170 QAllEvents Class
Print Query Result RingQt Classes Reference, 748
MySQL Functions, 182 QApp Class
print() RingQt Classes Reference, 666
Stdlib Functions, 230 QAxBase Class
Printing Final Intermediate Code RingQt Classes Reference, 799
Command Line Options, 577 QAxObject Class
Printing Instruction Operation Code RingQt Classes Reference, 799
Command Line Options, 582 QBitmap Class
Printing Intermediate Code RingQt Classes Reference, 674
Command Line Options, 575 QBoxLayout Class
Printing Objects RingQt Classes Reference, 789
Object Oriented Programming, 203 QBrush Class
Printing Rules RingQt Classes Reference, 731
Command Line Options, 571 QButtonGroup Class
Printing Tokens RingQt Classes Reference, 715
Command Line Options, 569 QByteArray Class
Printing using QPrinter RingQt Classes Reference, 732
Desktop and Mobile Development, 469 QCamera Class
Private Attributes and Methods RingQt Classes Reference, 784
Object Oriented Programming, 199 QCameraImageCapture Class
prodlist() RingQt Classes Reference, 785
Stdlib Functions, 238 QCameraViewfinder Class
Program Structure RingQt Classes Reference, 783
Introduction, 114 QCheckBox Class

Index 863
Ring Documentation, Release 1.4

RingQt Classes Reference, 713 RingQt Classes Reference, 699


QColor Class QGradient Class
RingQt Classes Reference, 726 RingQt Classes Reference, 791
QColorDialog Class QGraphicsVideoItem Class
RingQt Classes Reference, 744 RingQt Classes Reference, 784
QComboBox Class QGridLayout Class
RingQt Classes Reference, 689 RingQt Classes Reference, 781
QCompleter Class QHBoxLayout Class
RingQt Classes Reference, 794 RingQt Classes Reference, 677
QCompleter2 Class QHeaderView Class
RingQt Classes Reference, 795 RingQt Classes Reference, 786
QCompleter3 Class QHostAddress Class
RingQt Classes Reference, 795 RingQt Classes Reference, 738
QCursor Class QHostInfo Class
RingQt Classes Reference, 798 RingQt Classes Reference, 738
QDate Class QIcon Class
RingQt Classes Reference, 757 RingQt Classes Reference, 675
QDateEdit Class QImage Class
RingQt Classes Reference, 708 RingQt Classes Reference, 767
QDateTimeEdit Class QInputDialog Class
RingQt Classes Reference, 708 RingQt Classes Reference, 746
QDesktopServices Class QIODevice Class
RingQt Classes Reference, 666 RingQt Classes Reference, 734
QDesktopWidget Class QJsonArray Class
RingQt Classes Reference, 750 RingQt Classes Reference, 776
QDial Class QJsonDocument Class
RingQt Classes Reference, 710 RingQt Classes Reference, 776
QDialog Class QJsonObject Class
RingQt Classes Reference, 742 RingQt Classes Reference, 777
QDir Class QJsonParseError Class
RingQt Classes Reference, 684 RingQt Classes Reference, 778
QDirModel Class QJsonValue Class
RingQt Classes Reference, 740 RingQt Classes Reference, 778
QDockWidget Class QKeySequence Class
RingQt Classes Reference, 695 RingQt Classes Reference, 745
QEvent Class QLabel Class
RingQt Classes Reference, 719 RingQt Classes Reference, 673
QFileDialog Class QLayout Class
RingQt Classes Reference, 721 RingQt Classes Reference, 790
QFileInfo Class QLCDNumber Class
RingQt Classes Reference, 739 RingQt Classes Reference, 746
QFileSystemModel Class QLinearGradient Class
RingQt Classes Reference, 684 RingQt Classes Reference, 791
QFont Class QLineEdit Class
RingQt Classes Reference, 729 RingQt Classes Reference, 675
QFontDialog Class QLineEdit Events and QMessageBox
RingQt Classes Reference, 741 Desktop and Mobile Development, 459
QFontMetrics Class QListView Class
RingQt Classes Reference, 788 RingQt Classes Reference, 798
QFrame Class QListWidget Class
RingQt Classes Reference, 698 RingQt Classes Reference, 680
QFrame2 Class QListWidgetItem Class
RingQt Classes Reference, 698 RingQt Classes Reference, 755
QFrame3 Class QMainWindow Class

Index 864
Ring Documentation, Release 1.4

RingQt Classes Reference, 693 RingQt Classes Reference, 705


QMdiArea Class QPushButton Class
RingQt Classes Reference, 796 RingQt Classes Reference, 674
QMdiSubWindow Class QRadioButton Class
RingQt Classes Reference, 797 RingQt Classes Reference, 714
QMediaObject Class QRect Class
RingQt Classes Reference, 786 RingQt Classes Reference, 750
QMediaPlayer Class QRegularExpression Class
RingQt Classes Reference, 715 RingQt Classes Reference, 774
QMediaPlaylist Class QRegularExpressionMatch Class
RingQt Classes Reference, 716 RingQt Classes Reference, 775
QMenu Class QRegularExpressionMatchIterator Class
RingQt Classes Reference, 691 RingQt Classes Reference, 775
QMenuBar Class QScrollArea Class
RingQt Classes Reference, 691 RingQt Classes Reference, 792
QMessageBox Class QSerialPort Class
RingQt Classes Reference, 719 RingQt Classes Reference, 801
QMessagebox Example QSerialPortInfo Class
Desktop and Mobile Development, 474 RingQt Classes Reference, 802
QNetworkAccessManager Class QSize Class
RingQt Classes Reference, 764 RingQt Classes Reference, 675
QNetworkProxy Class QSlider Class
RingQt Classes Reference, 736 RingQt Classes Reference, 707
QNetworkReply Class QSpinBox Class
RingQt Classes Reference, 765 RingQt Classes Reference, 705
QNetworkRequest Class QSplashScreen Class
RingQt Classes Reference, 764 RingQt Classes Reference, 789
QObject Class QSplitter Class
RingQt Classes Reference, 666 RingQt Classes Reference, 793
QPainter Class QSqlDatabase Class
RingQt Classes Reference, 722 RingQt Classes Reference, 758
QPainter2 Class QSqlDriver Class
RingQt Classes Reference, 724 RingQt Classes Reference, 759
QPainterPath Class QSqlDriverCreatorBase Class
RingQt Classes Reference, 766 RingQt Classes Reference, 762
QPen Class QSqlError Class
RingQt Classes Reference, 725 RingQt Classes Reference, 760
QPicture Class QSqlField Class
RingQt Classes Reference, 725 RingQt Classes Reference, 761
QPixmap Class QSqlIndex Class
RingQt Classes Reference, 674 RingQt Classes Reference, 760
QPixmap2 Class QSqlQuery Class
RingQt Classes Reference, 675 RingQt Classes Reference, 759
QPlainTextEdit Class QSqlRecord Class
RingQt Classes Reference, 778 RingQt Classes Reference, 761
QPoint Class QStatusBar Class
RingQt Classes Reference, 792 RingQt Classes Reference, 694
QPointF Class QString2 Class
RingQt Classes Reference, 792 RingQt Classes Reference, 795
QPrinter Class QStringList Class
RingQt Classes Reference, 728 RingQt Classes Reference, 744
QProcess Class QSystemTrayIcon Class
RingQt Classes Reference, 795 RingQt Classes Reference, 756
QProgressBar Class Qt Class Convertor

Index 865
Ring Documentation, Release 1.4

What is new in Ring 1.4?, 32 RingQt Classes Reference, 800


Qt configuration file QVariant Class
Code Generator, 617 RingQt Classes Reference, 762
QTableView Class QVBoxLayout Class
RingQt Classes Reference, 701 RingQt Classes Reference, 677
QTableWidget Class QVideoWidget and QMediaPlayer
RingQt Classes Reference, 702 Desktop and Mobile Development, 453
QTableWidgetItem Class QVideoWidget Class
RingQt Classes Reference, 697 RingQt Classes Reference, 716
QTabWidget Class QVideoWidgetControl Class
RingQt Classes Reference, 695 RingQt Classes Reference, 784
QTcpServer Class QWebView Class
RingQt Classes Reference, 737 RingQt Classes Reference, 711
QTcpSocket Class QWidget Class
RingQt Classes Reference, 737 RingQt Classes Reference, 667
QTest Class QXmlStreamAttribute Class
RingQt Classes Reference, 666 RingQt Classes Reference, 773
QTextBlock Class QXmlStreamAttributes Class
RingQt Classes Reference, 754 RingQt Classes Reference, 772
QTextCharFormat Class QXmlStreamEntityDeclaration Class
RingQt Classes Reference, 782 RingQt Classes Reference, 772
QTextCodec Class QXmlStreamEntityResolver Class
RingQt Classes Reference, 757 RingQt Classes Reference, 772
QTextCursor Class QXmlStreamNamespaceDeclaration Class
RingQt Classes Reference, 742 RingQt Classes Reference, 772
QTextDocument Class QXmlStreamNotationDeclaration Class
RingQt Classes Reference, 752 RingQt Classes Reference, 771
QTextEdit Class QXmlStreamReader Class
RingQt Classes Reference, 678 RingQt Classes Reference, 769
QThread Class QXmlStreamWriter Class
RingQt Classes Reference, 773 RingQt Classes Reference, 770
QThreadPool Class
RingQt Classes Reference, 774 Raise()
QTime Class Eval() and Debugging, 163
RingQt Classes Reference, 754 RandBytes()
QTimer Class Security and Internet Functions, 193
RingQt Classes Reference, 720 Random Image
QToolBar Class Web Development (CGI Library), 311
RingQt Classes Reference, 692 Random()
QToolButton Class Mathematical Functions, 143
RingQt Classes Reference, 800 Read File using Read()
QTreeView Class Files, 147
RingQt Classes Reference, 682 readline()
QTreeWidget Class Stdlib Functions, 241
RingQt Classes Reference, 685 Real Natual Code
QTreeWidgetItem Class Natural Language Programming, 280
RingQt Classes Reference, 687 Recursion
Queue Class Functions, 114
Stdlib Classes, 250 Reference
Quotes about Ring Compiler Errors, 836
Applications developed in little hours, 1 Introduction, 833
QUrl Class Language Functions, 835
RingQt Classes Reference, 712 Language Grammar, 838
QUuid Class Language Keywords, 834

Index 866
Ring Documentation, Release 1.4

Runtime Errors, 837 Return Value


Virtual Machine Instructions, 840 Extension, 599
Reflection and Meta-programming Functions, 113
addattribute(), 224 Reverse()
addmethod(), 224 Lists, 119
attributes(), 221 Rewind()
cfunctions(), 214 Files, 150
classes(), 218 Right()
classname(), 220 Strings, 125
functions(), 214 RING API - list Functions
getattribute(), 226 Extension, 601
globals(), 213 RING API - String Functions
Introduction, 212 Extension, 603
isattribute(), 222 Ring CGI Hello World Program
iscfunction(), 216 Web Development (CGI Library), 292
isclass(), 218 Ring Group
isfunction(), 216 Resources, 847
isglobal(), 215 Ring Language Website
islocal(), 215 Resources, 847
ismethod(), 223 Ring mode for Emacs Editor
isobject(), 221 What is new in Ring 1.3?, 41
ispackage(), 217 Ring Notepad
ispackagesclass(), 220 Introduction, 75
isprivateattribute(), 222 Ring Notepad - Creating and running your first con-
isprivatemethod(), 223 sole application, 76
locals(), 213 Ring Notepad - Creating and running your first game,
mergemethods(), 228 81
methods(), 221 Ring Notepad - Creating and running your first GUI
objectid(), 220 application, 79
packagename(), 229 Ring Notepad - Creating and running your first Web
packages(), 217 application, 80
packagesclasses(), 219 Ring Notepad - Main Window, 76
setattribute(), 227 Ring Notepad - Creating and running your first console
Register New Functions application
Code Generator, 612 Ring Notepad, 76
Regular Expressions Ring Notepad - Creating and running your first game
Desktop and Mobile Development, 488 Ring Notepad, 81
Relational Operators Ring Notepad - Creating and running your first GUI ap-
Operators, 91 plication
Remove() Ring Notepad, 79
Files, 148 Ring Notepad - Creating and running your first Web ap-
Rename() plication
Files, 148 Ring Notepad, 80
Resources Ring Notepad - Main Window
Contact the Autor, 847 Ring Notepad, 76
Introduction, 846 Ring State
Ring Group, 847 Embedding Ring Language in C/C++ Programs, 606
Ring Language Website, 847 Ring State Functions
Restore Image From The Database Embedding Ring Language in C/C++ Programs, 606
MySQL Functions, 184 Ring State Variables
Return object by reference Embedding Ring Language in C/C++ Programs, 607
Declarative Programming, 269 ring_ext.c
Return Self by Reference Extension, 596
What is new in Ring 1.3?, 43 ring_ext.h

Index 867
Ring Documentation, Release 1.4

Extension, 596 QCameraViewfinder Class, 783


RingAllegro Functions Reference QCheckBox Class, 713
Introduction, 630 QColor Class, 726
RingCodeHighlighter Class QColorDialog Class, 744
RingQt Classes Reference, 768 QComboBox Class, 689
RingLibCurl QCompleter Class, 794
Facebook Login, 343 QCompleter2 Class, 795
Get Request, 343 QCompleter3 Class, 795
Introduction, 342 QCursor Class, 798
Post Request, 343 QDate Class, 757
Save output to string, 344 QDateEdit Class, 708
What is new in Ring 1.2?, 50 QDateTimeEdit Class, 708
RingLibCurl Functions Reference QDesktopServices Class, 666
Introduction, 627 QDesktopWidget Class, 750
RingLibSDL QDial Class, 710
Close Window Event, 365 QDialog Class, 742
Create Window, 362 QDir Class, 684
Display Image, 362 QDirModel Class, 740
Display PNG Images, 363 QDockWidget Class, 695
Display Transparent Images, 364 QEvent Class, 719
Draw Rectangle, 363 QFileDialog Class, 721
Introduction, 361 QFileInfo Class, 739
Mouse Events, 366 QFileSystemModel Class, 684
Play Sound, 367 QFont Class, 729
Switch Between Two Images, 362 QFontDialog Class, 741
Use TTF Fonts, 364 QFontMetrics Class, 788
What is new in Ring 1.1?, 59 QFrame Class, 698
RingLibSDL Functions Reference QFrame2 Class, 698
Introduction, 649 QFrame3 Class, 699
RingLibZip Functions Reference QGradient Class, 791
Introduction, 629 QGraphicsVideoItem Class, 784
RingQt Classes and their Qt Documentation QGridLayout Class, 781
Desktop and Mobile Development, 522 QHBoxLayout Class, 677
RingQt Classes Reference QHeaderView Class, 786
CodeEditor Class, 781 QHostAddress Class, 738
Introduction, 665 QHostInfo Class, 738
QAbstractButton Class, 713 QIcon Class, 675
QAbstractItemView Class, 699 QImage Class, 767
QAbstractScrollArea Class, 699 QInputDialog Class, 746
QAbstractSlider Class, 706 QIODevice Class, 734
QAbstractSocket Class, 734 QJsonArray Class, 776
QAbstractSpinBox Class, 709 QJsonDocument Class, 776
QAction Class, 717 QJsonObject Class, 777
QAllEvents Class, 748 QJsonParseError Class, 778
QApp Class, 666 QJsonValue Class, 778
QAxBase Class, 799 QKeySequence Class, 745
QAxObject Class, 799 QLabel Class, 673
QBitmap Class, 674 QLayout Class, 790
QBoxLayout Class, 789 QLCDNumber Class, 746
QBrush Class, 731 QLinearGradient Class, 791
QButtonGroup Class, 715 QLineEdit Class, 675
QByteArray Class, 732 QListView Class, 798
QCamera Class, 784 QListWidget Class, 680
QCameraImageCapture Class, 785 QListWidgetItem Class, 755

Index 868
Ring Documentation, Release 1.4

QMainWindow Class, 693 QTableWidget Class, 702


QMdiArea Class, 796 QTableWidgetItem Class, 697
QMdiSubWindow Class, 797 QTabWidget Class, 695
QMediaObject Class, 786 QTcpServer Class, 737
QMediaPlayer Class, 715 QTcpSocket Class, 737
QMediaPlaylist Class, 716 QTest Class, 666
QMenu Class, 691 QTextBlock Class, 754
QMenuBar Class, 691 QTextCharFormat Class, 782
QMessageBox Class, 719 QTextCodec Class, 757
QNetworkAccessManager Class, 764 QTextCursor Class, 742
QNetworkProxy Class, 736 QTextDocument Class, 752
QNetworkReply Class, 765 QTextEdit Class, 678
QNetworkRequest Class, 764 QThread Class, 773
QObject Class, 666 QThreadPool Class, 774
QPainter Class, 722 QTime Class, 754
QPainter2 Class, 724 QTimer Class, 720
QPainterPath Class, 766 QToolBar Class, 692
QPen Class, 725 QToolButton Class, 800
QPicture Class, 725 QTreeView Class, 682
QPixmap Class, 674 QTreeWidget Class, 685
QPixmap2 Class, 675 QTreeWidgetItem Class, 687
QPlainTextEdit Class, 778 QUrl Class, 712
QPoint Class, 792 QUuid Class, 800
QPointF Class, 792 QVariant Class, 762
QPrinter Class, 728 QVBoxLayout Class, 677
QProcess Class, 795 QVideoWidget Class, 716
QProgressBar Class, 705 QVideoWidgetControl Class, 784
QPushButton Class, 674 QWebView Class, 711
QRadioButton Class, 714 QWidget Class, 667
QRect Class, 750 QXmlStreamAttribute Class, 773
QRegularExpression Class, 774 QXmlStreamAttributes Class, 772
QRegularExpressionMatch Class, 775 QXmlStreamEntityDeclaration Class, 772
QRegularExpressionMatchIterator Class, 775 QXmlStreamEntityResolver Class, 772
QScrollArea Class, 792 QXmlStreamNamespaceDeclaration Class, 772
QSerialPort Class, 801 QXmlStreamNotationDeclaration Class, 771
QSerialPortInfo Class, 802 QXmlStreamReader Class, 769
QSize Class, 675 QXmlStreamWriter Class, 770
QSlider Class, 707 RingCodeHighlighter Class, 768
QSpinBox Class, 705 RingREPL
QSplashScreen Class, 789 What is new in Ring 1.4?, 28
QSplitter Class, 793 RingSQLite
QSqlDatabase Class, 758 What is new in Ring 1.1?, 60
QSqlDriver Class, 759 RingVM_CallList()
QSqlDriverCreatorBase Class, 762 Low Level Functions, 592
QSqlError Class, 760 RingVM_CFunctionsList()
QSqlField Class, 761 Low Level Functions, 587
QSqlIndex Class, 760 RingVM_ClassesList()
QSqlQuery Class, 759 Low Level Functions, 588
QSqlRecord Class, 761 RingVM_FilesList()
QStatusBar Class, 694 Low Level Functions, 593
QString2 Class, 795 RingVM_FunctionsList()
QStringList Class, 744 Low Level Functions, 588
QSystemTrayIcon Class, 756 RingVM_MemoryList()
QTableView Class, 701 Low Level Functions, 590

Index 869
Ring Documentation, Release 1.4

RingVM_PackagesList() Using braces to escape from the current object scope,


Low Level Functions, 589 551
RingZip Using Object.Attribute, 540
Create Zip File, 346 Scope Rules for Functions and Methods
Extract Zip File, 346 Calling a function sharing the name with a method in
Introduction, 345 the current class, 556
Print files in Zip file, 346 Example about Sharing Names between Functions
Using RingZip Classes, 346 and Methods, 554
Zip Class Reference, 348 How Ring find a functions and methods?, 554
ZipEntry Class Reference, 348 Introduction, 553
RingZip Library ScriptFunctions Class
What is new in Ring 1.3?, 44 Web Development (CGI Library), 341
Rotate Text Search
Desktop and Mobile Development, 485 Lists, 118
Run the program Search of global names while defining the class attributes
Getting Started - First Style, 70 Frequently Asked Questions, 814
Getting Started - Second Style, 72 Security and Internet Functions
Getting Started - Third Style, 74 Decrypt(), 193
Running Forms Download(), 194
Form Designer, 533 Encrypt(), 192
Runtime Errors Example, 193
Reference, 837 File Hash, 193
Introduction, 189
Samples MD5(), 190
How to contribute?, 68 RandBytes(), 193
Samples in this book SendEmail(), 194
Applications developed in little hours, 7 SHA1(), 191
Save and Restore Images SHA224(), 192
ODBC Functions, 176 SHA256(), 191
Save Image Inside the Database SHA384(), 192
MySQL Functions, 184 SHA512(), 191
Save output to string Security Class
RingLibCurl, 344 Stdlib Classes, 266
Scaling and Rotating Images Send Parameters
Graphics and Game Programming, 357 Functions, 112
Scope Rules SendEmail()
Accessing the class attributes from braces inside Security and Internet Functions, 194
class methods, 545 Serial Execution of Programs
Conflict between Class Attributes and Local Vari- Embedding Ring in Ring, 594
ables, 542 Set List Item
Conflict between Global Variables and Class At- Lists, 117
tributes, 541 setattribute()
Conflict between self inside braces and self in the Reflection and Meta-programming, 227
class region, 548 Setter and Getter
Creating a Class for each Window in GUI applica- Object Oriented Programming, 199
tions, 547 SHA1()
Defining Variables and Variables Access, 539 Security and Internet Functions, 191
How Ring find the Variable?, 540 SHA224()
Introduction, 538 Security and Internet Functions, 192
Summary of Scope Rules, 552 SHA256()
The Self Object, 540 Security and Internet Functions, 191
Three Scopes, 539 SHA384()
Using Braces to access objects inside Class Methods, Security and Internet Functions, 192
543 SHA512()

Index 870
Ring Documentation, Release 1.4

Security and Internet Functions, 191 SQLite, 187


Shared Libraries sqlite_execute()
Extension, 604 SQLite, 187
Short-circuit evaluation sqlite_init()
Control Structures - First Style, 98 SQLite, 187
sign() sqlite_open()
Stdlib Functions, 236 SQLite, 187
Simple Squares Puzzle Game
Language Design, 16 Applications developed in little hours, 4
Simple Client and Server Example Stack Class
Desktop and Mobile Development, 489 Stdlib Classes, 250
Sin() Implementation Stars Fighter Game
Extension, 600 Game Engine for 2D Games, 392
Single: Desktop and Mobile Development startswith()
Introduction, 421 Stdlib Functions, 237
sleep() StdBase Class
Stdlib Functions, 242 Stdlib Classes, 245
Smart Garbage Collector Stdlib Classes
Language Design, 24 Conversion Class, 262
Sort() DataType Class, 261
Lists, 118 DateTime Class, 256
Sort() and List of Objects Debug Class, 260
Object Oriented Programming, 204 File Class, 258
Sound Class HashTable Class, 251
Game Engine for 2D Games, 373 Internet Class, 267
Source Code File Sections Introduction, 244
Program Structure, 115 List Class, 248
space() Math Class, 253
Low Level Functions, 585 MySQL Class, 264
Special thanks to contributors ODBC Class, 263
How to contribute?, 68 Queue Class, 250
split() Security Class, 266
Stdlib Functions, 233 SQLite Class, 265
splitmany() Stack Class, 250
Stdlib Functions, 233 StdBase Class, 245
Sprite Automatic Movement String Class, 246
Game Engine for 2D Games, 380 System Class, 259
Sprite Class Tree Class, 252
Game Engine for 2D Games, 372 Stdlib Functions
Sprite Keypress Event apppath(), 231
Game Engine for 2D Games, 381 binarydigits(), 240
Sprite Mouse Event capitalized(), 234
Game Engine for 2D Games, 382 changestring(), 242
Sprite State Event dayofweek(), 241
Game Engine for 2D Games, 383 direxists(), 243
SQLite endswith(), 237
Introduction, 186 evenorodd(), 238
sqlite_close(), 187 factorial(), 235
sqlite_execute(), 187 factors(), 239
sqlite_init(), 187 fibonacci(), 235
sqlite_open(), 187 file2list(), 236
SQLite Class filter(), 232
Stdlib Classes, 265 FSize(), 244
sqlite_close() gcd(), 237

Index 871
Ring Documentation, Release 1.4

getnumber(), 230 Get Number of Characters from position, 127


getstring(), 230 Get String Length, 124
Introduction, 229 Get Substring from position to end, 127
isleapyear(), 239 Introduction, 123
ismainsourcefile(), 243 Left(), 125
isprime(), 235 Lines(), 126
isspecial(), 234 Right(), 125
isvowel(), 234 str2list() and list2str(), 128
JustFileName(), 231 strcmp(), 128
JustFilePath(), 231 String Literals, 124
lcm(), 238 Substr(), 126
linecount(), 235 Transform Substring To Another Substring, 127
list2file(), 236 Trim(), 126
makedir(), 243 StyleFunctions Class
map(), 232 Web Development (CGI Library), 341
matrixmulti(), 240 Substr()
matrixtrans(), 240 Strings, 126
newlist(), 233 substring()
palindrome(), 239 Stdlib Functions, 242
permutation(), 241 sumlist()
print(), 230 Stdlib Functions, 238
prodlist(), 238 Summary of Scope Rules
puts(), 230 Scope Rules, 552
readline(), 241 Super Man 2016 Game
sign(), 236 Game Engine for 2D Games, 407
sleep(), 242 Swap Items
split(), 233 Lists, 123
splitmany(), 233 Switch Between Two Images
startswith(), 237 RingLibSDL, 362
substring(), 242 Switch Statement
sumlist(), 238 Control Structures - First Style, 94
times(), 232 Control Structures - Second Style, 101
value(), 232 Control Structures - Third Style, 104
StdLib functions and classes written in Ring Syntax Flexibility
What is new in Ring 1.1?, 57 Change Language Keywords, 558
Step Option Change Language Operators, 559
Control Structures - First Style, 96 Introduction, 557
Str2Hex() Load Syntax Files, 559
Data Type, 140 Using case as on in switch statements, 565
str2list() and list2str() Using def as func in functions/methods defini-
Strings, 128 tion, 565
strcmp() Using put and get as see and give, 565
Strings, 128 Using () around the function parameters, 559
String Class in the start of the variable name, 562
Stdlib Classes, 246 Using braces to start and end different control struc-
String Literals tures, 564
Strings, 124 Using Semi-colon after and between statements, 561
String() Using the else keyword as other in switch state-
Data Type, 138 ment, 562
Strings Using the elseif keyword as but in if statement,
Access String Letters, 124 562
Convert Letters Case, 124 Using the end keyword in different control struc-
Copy(), 126 tures, 563
Find SubString, 127 What is new in Ring 1.1?, 54

Index 872
Ring Documentation, Release 1.4

SysGet() Function Form Designer, 532


System Functions, 156 The Self Object
System Class Scope Rules, 540
Stdlib Classes, 259 Threads
System Functions Graphics and Game Programming, 359
ChDir() Function, 161 Threads Support
CurrentDir() Function, 160 Code Generator, 615
Example, 158 Three Scopes
ExeFileName() Function, 161 Scope Rules, 539
ExeFolder() Function, 161 TicTacToe Game
Get Active Source File Name, 160 Applications developed in little hours, 3
Get Command Line Arguments, 159 Time()
Introduction, 155 Date and Time, 130
IsAndroid() Function, 158 TimeList()
IsFreeBSD() Function, 158 Date and Time, 131
IsLinux() Function, 158 times()
IsMacOSX() Function, 157 Stdlib Functions, 232
IsMSDOS() Function, 157 Transaction Example
IsUnix() Function, 157 MySQL Functions, 185
IsWindows() Function, 157 Transactions and Using Commit and Rollback
IsWindows64() Function, 157 ODBC Functions, 175
PrevFileName() Function, 160 Transform Substring To Another Substring
SysGet() Function, 156 Strings, 127
System() Function, 156 Transparent Image
Version() Function, 161 Graphics and Game Programming, 358
Windowsnl() Function, 158 Transparent Implementation
System() Function Language Design, 18
System Functions, 156 Tree Class
Stdlib Classes, 252
Tempfile() Trim()
Files, 150 Strings, 126
Templates TrueType Fonts
Web Development (CGI Library), 306 Graphics and Game Programming, 355
Tempname() Try/Carch/Done
Files, 150 Eval() and Debugging, 162
Testing Trying to be natural
How to contribute?, 68 Language Design, 17
Text Class Type()
Game Engine for 2D Games, 372 Data Type, 134
The Cards Game
Demo Programs, 511 Ungetc()
Desktop and Mobile Development, 511 Files, 152
The Designer Windows Unsigned()
Form Designer, 532 Mathematical Functions, 144
The Difference between Qt and RingQt Update the Android SDK
Desktop and Mobile Development, 521 Building RingQt Applications for Mobile, 523
The documentation says functional programming is sup- Upload Files
ported, but then this happens? Web Development (CGI Library), 300
Frequently Asked Questions, 807 URL Encode
The First GUI Application Web Development (CGI Library), 305
Desktop and Mobile Development, 422 Use TTF Fonts
The Natural Library RingLibSDL, 364
What is new in Ring 1.4?, 26 Users registration and Login
The Properties Web Development (CGI Library), 326

Index 873
Ring Documentation, Release 1.4

Using < and : operators as from keyword Using Sublime Text 2, 86


What is new in Ring 1.3?, 43 Using Visual Studio IDE, 87
Using case as on in switch statements Using QCheckBox
Syntax Flexibility, 565 Desktop and Mobile Development, 449
Using def as func in functions/methods definition Using QComboBox Class
Syntax Flexibility, 565 Desktop and Mobile Development, 431
Using put and get as see and give Using QDateEdit
Syntax Flexibility, 565 Desktop and Mobile Development, 444
Using () around the function parameters Using QDesktopWidget Class
Syntax Flexibility, 559 Desktop and Mobile Development, 484
in the start of the variable name Using QDial
Syntax Flexibility, 562 Desktop and Mobile Development, 445
Using Atom Using QDockWidget
Using Other Code Editors, 85 Desktop and Mobile Development, 437
Using Bootstrap Library using Functions Using QFrame
Web Development (CGI Library), 320 Desktop and Mobile Development, 454
Using Bootstrap Library using Objects Using QInputDialog Class
Web Development (CGI Library), 321 Desktop and Mobile Development, 475
Using Braces to access objects inside Class Methods Using qLCDNumber
Scope Rules, 543 Desktop and Mobile Development, 472
Using braces to escape from the current object scope Using QProgressBar
Scope Rules, 551 Desktop and Mobile Development, 441
Using braces to start and end different control structures Using QProgressBar and Timer
Syntax Flexibility, 564 Desktop and Mobile Development, 464
Using C/C++ Compiler and Linker Using QRadioButton and QButtonGroup
Distributing Ring Application, 568 Desktop and Mobile Development, 450
Using configuration file that wrap C++ library Using QSlider
Code Generator, 617 Desktop and Mobile Development, 442
Using Emacs Editor Using QSpinBox
Using Other Code Editors, 87 Desktop and Mobile Development, 442
Using Eval() with our Natural Code Using QTableWidget
Natural Language Programming, 278 Desktop and Mobile Development, 440
Using Geany Using QTabWidget
Using Other Code Editors, 84 Desktop and Mobile Development, 438
Using Layout Using QTreeView and QFileSystemModel
Desktop and Mobile Development, 423 Desktop and Mobile Development, 429
Using Layouts Using QTreeWidget and QTreeWidgetItem
Form Designer, 538 Desktop and Mobile Development, 430
Using Lists during definition Using QWebView
Lists, 121 Desktop and Mobile Development, 448
Using Many Source Code Files Using RingZip Classes
Program Structure, 115 RingZip, 346
Using Notepad++ Using Self.Attribute
Using Other Code Editors, 83 Object Oriented Programming, 206
Using NULL instead of NULLPointer() Using Self.Attribute in the Class Region to define new at-
What is new in Ring 1.2?, 51 tributes
Using Object.Attribute What is new in Ring 1.1?, 61
Scope Rules, 540 Using Semi-colon after and between statements
Using Other Code Editors Syntax Flexibility, 561
Introduction, 82 Using Sublime Text 2
Using Atom, 85 Using Other Code Editors, 86
Using Emacs Editor, 87 Using the else keyword as other in switch statement
Using Geany, 84 Syntax Flexibility, 562
Using Notepad++, 83 Using the elseif keyword as but in if statement

Index 874
Ring Documentation, Release 1.4

Syntax Flexibility, 562 Gradient, 314


Using the end keyword in different control structures Hash Functions, 309
Syntax Flexibility, 563 Hello World Program using the Web Library, 292
Using the Natural Library HTML Lists, 312
Defining Commands, 286 HTML Special Characters, 308
Defining commands using classes, 289 HTML Tables, 313
Introduction, 283 HTTP Get Example, 293
Natural Library - Demo Program, 284 HTTP POST Example, 298
Operators, 288 Introduction, 290
Using the QColorDialog Class Page Class, 339
Desktop and Mobile Development, 471 Random Image, 311
Using the QFileDialog Class Ring CGI Hello World Program, 292
Desktop and Mobile Development, 466 ScriptFunctions Class, 341
Using the QListWidget Class StyleFunctions Class, 341
Desktop and Mobile Development, 426 Templates, 306
Using the QTextEdit Class Upload Files, 300
Desktop and Mobile Development, 425 URL Encode, 305
Using the QTimer Class Users registration and Login, 326
Desktop and Mobile Development, 463 Using Bootstrap Library using Functions, 320
Using the tool Using Bootstrap Library using Objects, 321
Code Generator, 609 Web Library Features, 293
Using This.Attribute in nested Braces inside the Class WebLib API, 337
Methods Web Library Features
What is new in Ring 1.1?, 61 Web Development (CGI Library), 293
Using Visual Studio IDE WebLib API
Using Other Code Editors, 87 Web Development (CGI Library), 337
Weight History Application
value() Desktop and Mobile Development, 492
Stdlib Functions, 232 Werdy Application
Variables Applications developed in little hours, 5
Deep Copy, 89 What about predefined parameters or optional parameters
Dynamic Typing, 89 in functions?
Introduction, 88 Frequently Asked Questions, 816
Weakly Typed, 90 What about the Boolean values in Ring?
Variables Scope Frequently Asked Questions, 809
Functions, 113 What are the advantages to using Ring over C# or Java?
varptr() Frequently Asked Questions, 807
Low Level Functions, 585 What are the advantages to using Ring over Lisp or
Version() Function Smalltalk?
System Functions, 161 Frequently Asked Questions, 804
Virtual Machine Instructions What are the advantages to using Ring over native C or
Reference, 840 C++?
Visual Implementation Frequently Asked Questions, 805
Language Design, 19 What are the advantages to using Ring over Python and
Ruby?
Weakly Typed Frequently Asked Questions, 806
Variables, 90 What are the advantages to using Ring over Tcl and Lua?
Web Development (CGI Library) Frequently Asked Questions, 807
Application Class, 338 What happens when we create a new object?
Configure the Apache web server, 291 Frequently Asked Questions, 812
Cookies, 303 What is new in Ring 1.1?
CRUD Example using MVC, 324 Better Code Generator for Extensions, 61
Database, ModelBase & ControllerBase classes, 332 Better Documentation, 61
Generating Pages using Objects, 315 Better Natural Language Programming Support, 53

Index 875
Ring Documentation, Release 1.4

Game Engine for 2D Games, 59 What is the difference between Ring and Python? And is
Generate/Execute Ring Object Files (*.ringo), 54 Ring Open Source?
Introduction, 52 Frequently Asked Questions, 805
List of changes and new features, 53 Where can I write a program and execute it?
New Functions and Changes, 56 Frequently Asked Questions, 815
RingLibSDL, 59 While Loop
RingSQLite, 60 Control Structures - First Style, 95
StdLib functions and classes written in Ring, 57 Control Structures - Third Style, 105
Syntax Flexibility, 54 Why do we need Yet Another Programming Language
Using Self.Attribute in the Class Region to define (YAPL)?
new attributes, 61 Frequently Asked Questions, 803
Using This.Attribute in nested Braces inside the Why I get a strange result when printing nl with lists?
Class Methods, 61 Frequently Asked Questions, 817
What is new in Ring 1.2? Why I get Calling Function without definition Error?
Better Call Command, 51 Frequently Asked Questions, 828
Better Functions, 48 Why Ring is largely focussed on UI creation?
Better Quality, 51 Frequently Asked Questions, 805
Better Ring Notepad, 48 Why Ring is weakly typed?
Better RingQt, 48 Frequently Asked Questions, 804
Display Warnings Option, 51 Why Ring uses See, Give, But and Ok Keywords?
Introduction, 46 Frequently Asked Questions, 808
List of changes and new features, 47 Why Ring?
New Functions, 47 Language Design, 16
Objects Library for RingQt, 49 Why setClickEvent() doesnt see the object methods di-
RingLibCurl, 50 rectly?
Using NULL instead of NULLPointer(), 51 Frequently Asked Questions, 828
What is new in Ring 1.3? Why the ability to define your own languages Instead of
Better Loop|Exit Command, 42 just handing over the syntax so you can parse it
Better Ring Notepad, 38 using whatever code you like?
Better RingQt, 34 Frequently Asked Questions, 808
Better StdLib, 42 Why the window title bar is going outside the screen?
Embedding Ring in Ring without sharing the State, Frequently Asked Questions, 822
44 Why this example use the GetChar() twice?
Form Designer, 45 Frequently Asked Questions, 819
Introduction, 33 Why we dont use () after the qApp class name?
List of changes and new features, 34 Frequently Asked Questions, 822
New Functions, 43 Why you can specify the number of loops you want to
Return Self by Reference, 43 break out of?
Ring mode for Emacs Editor, 41 Frequently Asked Questions, 808
RingZip Library, 44 Window Flags
Using < and : operators as from keyword, 43 Form Designer, 537
What is new in Ring 1.4? Windowsnl() Function
Better RingQt, 32 System Functions, 158
Better StdLib, 30 Wrap structures
Better WebLib, 30 Code Generator, 611
Change: Basic Extensions are separated from Wrapping C++ Classes
RingVM, 25 Code Generator, 616
Convert between Numbers and Bytes, 29 Write file using Write()
Introduction, 24 Files, 147
List of changes and new features, 25 Writing Comments
New Style to Ring Notepad, 28 Getting Started - First Style, 71
Qt Class Convertor, 32 Getting Started - Second Style, 73
RingREPL, 28 Getting Started - Third Style, 75
The Natural Library, 26

Index 876
Ring Documentation, Release 1.4

Zip Class Reference


RingZip, 348
ZipEntry Class Reference
RingZip, 348

Index 877