Frank,

You may be surprised to find that my college days ended long before yours did. But I have a friend to introduced me to an Object Oriented Programming Language called Delphi and I took to it like a duck to water. I've been using it ever since.

If you have any experience with programming - even using Fortran - you should not have much problem understanding Delphi.

Especially since I have prepared a very brief introduction to Delphi just listing the various data types and programming constructs. They are all pretty straight forward. You will remember the IF statement from FORTRAN and although I can no longer remember, I'm certain FORTRAN has some kind of looping construct.

I doubt you'll have much of a problem. I'm only working on the first draft of my Introduction to Delphi, but I'll post a piece of it here to give you a general idea:


-----------------------------------------------------------------------------------------------------------------------
DELPHI - INTRODUCTION & GENERAL NOTES

Hello. My pen name is Skyler Doombrofsky and several years ago I wrote a Blackjack simulation. I wrote it using the programming language Delphi. I'm currently revising and enhancing this simulation and I want to make it public so that anyone who knows the basics of Delphi will be able to understand how it works and make modifications or improvements.

Shortly after the IBM PC was first produced (around 1981), there were only a small number programming languages available and most of them were either extremely expensive or didn't work very well.

A company called Borland introduced an excellent product called "Turbo Pascal". It was a very small product that had a surprisingly blazingly fast compilation time and produced excellent programs that were very tiny and ran very quickly. It was a programmer's dream. Once Windows was introduced, programming languages needed to be able to handle objects and the market was taken over with Object Oriented Programming Languages. Almost all programming languages used after that were Object Oriented Languages. Borland adapted Turbo Pascal by introducing a product called "Delphi". You can Google Borland, Turbo Pascal and Delphi if you want more information. I will now present a very brief summary of some of the Delphi basics so that you will have a good chance to be able to read and understand my BJ Simulation.

The one thing about Delphi you should know is that it's usually used to produce Windows software with strong visual elements. It's usually designed to run under Windows and operate with menus using a mouse. But I use Delphi in a way that is more like older software. My sim runs from a command line and although it runs under Windows, it's not like most Windows apps. It runs in a Command Window which looks much like the older kinds of programs (the kind that ran in a DOS window). The following are some basic facts about Delphi. I want to begin by defining several common data types of variables.
-----------------------------------------------------------------------------------------------------------------------
DELPHI NUMERIC DATA TYPES

All Delphi variables are defined as being one of several data types. The most common numeric data types are:

Byte - unsigned integer occupies 8 bits. Its range is 0 to 255.
Shortint - signed integer occupies 8 bits. Its range is -128 to +127.
Word - unsigned integer occupies 16 bits. Its range is 0 to 65536.
Smallint - signed integer occupies 16 bits. Its range is -32768 to +32767.

Longword - unsigned integer occupies 32 bits. Its range is 0 to 4,294,967,295.
Integer - signed integer occupies 32 bits. Its range is -2,147,483,648 to 2,147,483,647.
Cardinal - unsigned integer occupies 32 bits. Its range is 0 to 4,294,967,295.
Longint - signed integer occupies 32 bits. Its range is -2,147,483,648 to 2,147,483,647.
Int64 - signed integer occupies 64 bits. Its range is -2^63 to +2^63-1

I prefer to use the Integer & Longword data types and do not use Longint or Cardinal. This is just a personal style choice. There is nothing wrong with using Longint or Cardinal.

Delphi uses two string data types. You can define a string and specify its maximum length as follows:

Name: String[25]; // Name is defined as a string variable with a maximum length of 25 characters.

Alternatively, you can define a string with an unspecified maximum length. These strings have a maximum length of 2,147,483,647 characters.

LongName: String; // LongName is defined as a string with an unspecified maximum lengh. It's maximum lenght is 2,147,483,647 characters.

The cardinal data type seems to be reserved for the largest integer data type that runs under the current version of Delphi. The current version is a 32 bit version. If and when a 64 bit version is made available, I expect the Cardinal data type will occupy 64 bits.

A final comment. IMO, Delphi's string variables are phenomenal. One of their very best features.
-----------------------------------------------------------------------------------------------------------------------
DELPHI ARRAYS

Like most programming languages, Delpi enables you to use arrays. You can define arrays of numbers or strings as follows:

const MAX_CARDS = 520;

var S1, S2 : array[1..MAX_CARDS] of byte;
Names : array[1..10, 2..50] of string;

In the above code, the variables "S1" and "S2" are both defined as arrays of strings. They both have a single dimension and that dimension ranges from 1 thru 520.

Delphi also enables you to define constants. Constants can be used in the definition of arrays to specify the dimensions of the arrays.

The constant MAX_CARDS is defined as the number 520; It is used in the definition of the array "Names".

The array "Names" has two dimensions. The first dimension ranges from 1 thru 10. The second dimension ranges from 2 thru 50.

You can Google "Delphi programming" if you want more information about how to program in Delphi. But I hope that if I provide you with some of the basics of the language,
it should be sufficient to enable you to understand how my sim works. There is a wealth of info on the web concerning Delphi and how to use it.