.NET Development
About Us

Component Pascal Source Code Examples

A number of simple example programs are installed in your Documents\CPIde\Examples folder when you install CPIde. These are primarily intended to help newcomers to Component Pascal to get started, but they should also be useful if you have limited experience developing software for the .NET framework.

The Console Applications display their output in a separate pane in the main CPIde Window where the compilation error messages are also displayed. The WinForms programs are executed as a separate Windows application.

Both types of programs can be run independently of CPIde, if preferred, without any modifications. The source files included are: 

Simple Console Output Examples
Evens.cp FOR Loop
Display the even numbers from 2 to 10.
Out.cp Console Output Functions
Basic output library module used by some of the following programs. Useful if porting simple examples from an Oberon environment.
CountChars1.cp WHILE Loop
Count, one by one, the number of characters in a string array.
CountChars2.cp ARRAY OF CHAR / Strings
Count the number of characters in a string using the standard Component Pascal LEN function.
CountChars3.cp IF THEN ELSE Statement
Count the number of letters and digits in a string using IF THEN ELSE statements.
CountChars4.cp IF THEN ELSIF Statement
Count the number of occurrences of different categories of characters in a string using IF THEN ELSIF statements.
CountChars5.cp CASE Statement
Count the number of occurrences of different categories of characters in a string using a CASE statement.
CountChars6.cp Performance Timing
Count the number of occurrences of different categories of characters in a huge string (1 million characters) using two different techniques. One uses a CASE statement and the other uses IF THEN ELSE statements. To compare the relative efficiencies, the processing time of each technique is measured using .NET timing procedures which have microsecond resolution.
FileCountChars.cp Text File Input
Count the number of occurrences of different categories of characters in a text file using a StreamReader, Command-line arguments and a CASE statement.
CopyText.cp Text File IO
When you run the program it creates a duplicate (called Copy of CopyText.cp) of its source.  Uses StreamReader and StreamWriter functions to copy an entire text file to / from a string.
Text File IO
Uses StreamReader and StreamWriter functions to read the contents of the text file SplitText.txt line by line, creating a set of subfiles SplitText.001, SplitText.002 etc. each with a maximum of 100 lines.
MergeText.cp Text File IO
Uses StreamReader and StreamWriter text file IO functions to join the set of files SplitLines.001, SplitLines.002 etc. into a single file MergeLines.txt
EnvironmentVars.cp Environment Variables
Display the contents of the system's PATH and CPSYM environment variables.
Registry.cp Windows Registry
Display the current values of some of the CPIde registry keys read from the Windows Registry.
Directory.cp Directory Listing
Display the list of files and their attributes in the current directory. Uses the SET data type to conveniently process System.IO.AttributeFlags.

BouncingBall.cp Simple Animated Graphics
A ball bouncing off the borders of a resizable form.
BouncingBalls.cp Simple Animated Graphics
Two independent balls bouncing off the walls of a resizable form. It is designed to be easily modified to add extra balls of different size, colour and speed.
Graphics.cp Graphic Shapes, Text and Lines
Draws squares, circles, text with different fonts and lines of different colours on a .NET PictureBox.
ImageFromFile.cp Display an Image
Enter the filename of a jpg or bmp format file when prompted by a standard File Open dialog. The image is displayed on a resizable form.
MouseMove.cp Event Handling
Move the mouse over the resizable form. The Mouse Move events are registered and the corresponding mouse co-ordinates are displayed in the Status Bar.
MenuStrip.cp MenuStrip
Select a menu item and the menu caption is displayed on the StatusBar. Includes a function to strip non-alphabetic characters from a string using a StringBuilder.
SecondsTimer.cp Seconds Timer
A minutes and seconds timer.  Uses Timer control, Timer.Tick event and DateTime data type.
Countdown.cp Countdown Timer
A minutes and seconds countdown timer.  Uses NumericUpDown and Timer controls, Form.Activated and Timer.Tick events and DateTime data type.
Send an Email
Functions of the System.Net.Mail assembly are used to create and send emails.  Uses a MenuStrip, a Panel, Labels, TextBoxes and a RichTextBox control.
Birthday Reminder
Read a list of birthdays from a tab-separated (tsv) text file and display it in a DataGridView component. The fields, current age and date of next birthday, are read-only. They are automatically calculated from the date of birth. The display is sorted by 'Next Birthday, Last Name' so that, by default, the next occurring birthday is at the top of the list.

Library Module Examples
NetLibs.cp Interface Definitions for Commonly Used .NET Modules
Open this file in the Component Pascal IDE (CPIde version 2.0 or later) then double-click on the name of one of the listed imported modules in the CPI Imports Window to view the definition of the module's interface.
Additional Maths Functions
Sum, Mean, Variance, Standard Deviation and Random functions are implemented.
A Non-modal FindText dialog
Uses the following Windows Forms controls: CheckBoxes, Buttons, a Label, and a ComboBox. A multi-line TextBox is used to log any user actions.


Copyright © 2019 CFB Software All rights reserved. Privacy Policy
ABN 20 939 391 060