Practical work in delphi 7. Calculating the values ​​of the final sum of a series. Creating an Animated Image

Listingsubroutines

procedure TForm1. RadioButton1Click(Sender: TObject);

var i: Integer;

ComboBox1.Clear;

ComboBox1.Tag:= (Sender as TRadioButton).Tag;

for i:= 0 to 5 do

ComboBox1.Items. Add(ListBox1.Items);

ComboBox1.ItemIndex:= 0;

Image1.Picture. LoadFromFile(ListBox2.Items);

procedure TForm1.FormCreate(Sender: TObject);

RadioButton1Click(RadioButton1);

procedure TForm1.ComboBox1Change(Sender: TObject);

Image1.Picture. LoadFromFile(ListBox2.Items);

Practical work № 17

"Calculating Interest"

The purpose of the work is to Create a program that does the following:

After starting the program, the window displays three text fields.
Clicking the Clear button clears the field values. Next, new values ​​are entered into the fields. To exit the program, click on the close button in the title bar.

1. Open a new project.

2. Place component instances on the form: command button Button, inscription Label, text field Edit.

Table 19.

Selected object

Window tab

Object Inspector

Property name/

event name

Action

Setting the form name "Calculate Interest"

Enter the title “Calculating percentages!”

Clear property value

Clear property value

Clear property value

Describe local Number, Percent, Prn


Continuation of table 19.

Selected object

Window tab

Object Inspector

Property name/

event name

Action

Enter the name "Clear"

Fragmentprograms

Number, Percent, Prn: Real;

procedure TForm1.Button1Click(Sender: TObject);

Number:=StrToFloat(Edit1.Text);

Percent:= StrToFloat(Edit2.Text);

PrN:=0.01*Procent*Number;

Edit3.Text:=FloatToStr(PrN);

procedure TForm1.Button2Click(Sender: TObject);

Practical work No. 18

"Puzzle No. 1"

MsoTableGrid" width="657 " style="width:492.85pt;border-collapse:collapse;border:none">

Selected object

Window tab

Object Inspector

Property name/

event name

Action

Setting the name of the form "Puzzle"

Set the value to bsSingle

CheckListBox1

(Additional tab)

We set the composition of the list. Click on the builder button. The String List editor window will open. Enter to list given numbers via Enter. Click OK.

Select a value so that all numbers fit into the list (without scroll bars).

Describe cleaning a list. Check whether the checkbox is checked or not. After updating the list, you need to calculate the sum of the selected numbers. List items look like numbers but are text strings(use the StrToInt function).


Continuation of table 20.

Selected object

Window tab

Object Inspector

Property name/

event name

Action

ListBox1

(Standard Tab)

Select a value so that all numbers fit into the list (without scroll bars). Initially the list is empty. It will be filled in while the program is running.

(Standard Tab)

Enter text: "Amount: 0"

Set to False

Set taCenter value

4. Save the project, run and test it.

Listingsubroutines

procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);

var i, s: Integer;

for i:=0 to CheckListBox1.Items. Count-1 do

if CheckListBox1.Checked[i] then

ListBox1.Items. Add(CheckListBox1.Items[i]);

for i:= 0 to ListBox1.Items. Count -1 do

s:= s + StrToInt(ListBox1.Items[i]);

Label1.Caption:= ‘Amount: ’ + IntToStr(s);

if s = 50 then

Label1.Caption:= ‘Amount:’ + IntToStr(s);

CheckListBox1.Enabled:= False;

ListBox1.Enabled:= False;

Practical work No. 19

"Puzzle No. 2"

Goal of the work - create computer version puzzle: set all of the five cleared flags shown. But when you select one checkbox, the state of the next two changes.

Create a program that does the following:

After starting the program, the window displays five cleared flags. Clicking is only allowed on cleared checkboxes. Clicking a checked checkbox has no effect. When you select a checkbox, the state of the next two checkboxes changes. In this case, cleared flags are checked, and checked ones are reset. To exit the program, click on the close button in the title bar.

Description of the program development plan

1. Open a new project.

2. Place component instances on the form: list of checkboxes CheckBox, inscription Label.

3. Complete the following steps:

Table 21.

Selected object

Window tab

Object Inspector

Property name/

event name

Action

Setting the form name to "All Five"

Create a global boolean variable s. During the time when processing in progress events, the variable is True.

CheckBox1

(Standard Tab)

Set the value to "1".

You need to work with checkboxes like an array. The form is a container for checkboxes. Container objects have a Controls property - an array of controls located in this container: Controls [i] as TCheckBox.

You can use the clipboard copy method to create five more checkboxes.

CheckBox2

Set the value to "2".

CheckBox3

Set the value to "3".

CheckBox4

Set the value to "4".

CheckBox5

Set the value to "5".


Continuation of table 21.

Selected object

Window tab

Object Inspector

Property name/

event name

Action

(Standard Tab)

Enter text: "Amount: 0"

Set to False

Set taCenter value

4. Save the project, run and test it.

Listingsubroutines

procedure TForm1.FormCreate(Sender: TObject);

procedure TForm1.CheckBox1Click(Sender: TObject);

var Index, i, num: Integer;

if s then Exit; (If the program calls the processing procedure again, the Exit statement will be executed - an immediate exit from the procedure)

for Index: = 0 to 4 do {break statement interrupts the loop)

if Sender = Controls[i] then break; (Detects which checkbox was toggled)

(When the loop completes, the value of the Index variable corresponds to the toggled flag)

(If the Checked property value is False, the checkbox is cleared, and if True, the checkbox is checked. The number of the checkbox in the array is determined by the Index variable)

if not(Controls as TCheckBox).Checked

then(Controls as TCheckBox).Checked:= True (The condition is satisfied if the checkbox is now cleared, i.e. it was checked before the click)

else(Programming to change the state of "additional flags". The current flag is already toggled)

num:= Index + 1; (Toggle the next two checkboxes)

if Index = 4 then num:= 0; (Changing the state of the zero flag)

(The checkbox state must be changed to the opposite)

(Controls as TCheckBox).Checked:= not

(Performing an array out-of-bounds check)

num:= num + 1; if Index = 3 then num:= 0;

(Controls as TCheckBox).Checked:= not(Controls as CheckBox).Checked;

e:= True; (The puzzle is solved if all five checkboxes are checked)

for i:= 0 to 4 do

e:= e and (Controls[i] as TCheckBox).Checked;

(After the loop the value will remain True if all checkboxes are checked)

if e then(Puzzle solved)

Objectives of the lesson.

Educational: study modern application creation technology by using Delphi environment components; study ADO technology that provides connection to the database Microsoft data Access; teach how to design an application and provide access to the MS Access database “Children's Clinic”.

Developmental: develop students’ ability to analyze, draw independent conclusions, and also develop self-control and mutual control.

Educational: to promote the formation of such personality qualities as a responsible attitude to the assigned work; attentiveness, ability to express oneself.

BY: Microsoft Access, Borland Delphi7, ready-made working database “Children's Clinic”.

Exercise

Exercise: Create a project in Borland Delphi 7 and provide access to the previously created Microsoft Access database “Children's Clinic”, using Delphi environment components, obtain information from the database and present it in table form.

The “Children's Clinic” database was created in Microsoft Access and filled with information (application).

The information system “Children's Clinic” stores information about doctors, patients, diseases, child care institutions and provides the following data:

  • information about the doctor (last name, specialization, length of service, salary, part-time job);
  • information about the patient (last name, age, address, child care facility, place of work of parents, chronic diseases, vaccinations, last visit to the doctor);
  • information about the child care institution (name, address, number of children, presence of quarantine, identified infectious diseases, date of last preventive examination).
  • a list of children's institutions where infectious diseases have been recorded.

Project development environment in Delphi

Delphi is a rapid development environment that uses Delphi as its programming language. The Delphi language is a strongly typed object-oriented language based on Object Pascal. The integrated environment allows you to create, compile, test and edit a project in a single programming environment.

Working on a new project ,

Form ( Form)– the development basis is placed in it necessary components, create the program interface. The properties of the form determine its appearance: size, position on the screen, title text, etc.

To view and change the values ​​of the properties of the form and its components, use the window Object Inspector(Object Inspector) . At the top of the window Object Inspector the name of the object whose property values ​​are displayed in this moment. In the left column of the tab Properties(Properties) lists the properties of the object, and on the right - their values ​​are indicated (Fig. 1). The Object Inspector is the designer of the form.

The source text of the development module is contained in the Editor Window and has the original title Unit1.pas(Fig. 1). Code Explorer displays form module objects (* pas), which allows you to quickly access objects and create new classes.

Rice. 1. Basic elements of the Delphi development environment

Form module file Unit1.pas(Fig. 1) contains a description of the form class (placement, behavior of components and operation of event handlers) and is created automatically.

Any project has at least six files (Table 1).

Table 1

Main project files

Purpose

Main project file (project code) – PROGECT.DPR The main one is a program in Pascal.
First program module (form module) UNIT.PAS Automatically appears at the beginning of the work; it can be called by any other name. Contains the text of the program in Pascal.
File main form(form descriptions) – UNIT.DFM Used to save information about appearance main form.
Resource description file – PROGECT.RES Contains an icon for the project, created automatically.
Project parameters file – PROGECT.OPT Text file for saving settings associated with this project.
Modules - *.PAS Additional Modules. Contains program text in Pascal.

Application development consists of two stages:

1. Creating the application interface.

2. Determining the functionality of the application.

To create an interface, you need to determine the appearance of the project, select the necessary components according to functionality and place it on the form.

To ensure the functionality of the application, you need to set the values ​​of properties and procedures of event objects in the Object Inspector, write program code event processing.

You must set the changed project parameters using the menu command Project/Build Project. If you need to combine several forms under a single beginning, run the command Project/Options.

Compilation is a mandatory process - the process of translating the entire program and then executing it. This process can be performed at any stage of project development. Compilation produces:

Ready-to-execute file (*exe),

Dynamically loaded library (*DLL).

You can run the project from the Delphi environment with the command Run/Run from Windows environment (Application Name.exe).

Creating an application for working with an Access database

Working on a new project , this is what the application being developed is called in Delphi; it begins with the creation of a start form.

Creating bookmarks in the form designer.

1. In the Object Inspector, change the parameters of some properties: Align -> alClient, color-> clMoneyGreen, caption-> Children's clinic, font, name-> Form (Fig. 1).

2. Create bookmarks in the form designer using the PageControl component on the Win32 tab (Table 2) (Win32->PageControl).

3. In the Object Tree window, create a Page (Context menu->New Page). In the Object Inspector, change the name parameters (Caption->Patient) (Fig. 2).

Rice. 2. Creating bookmarks in the form designer

4. In a similar way, create bookmarks whose names correspond to the names of the tables in the MS Access database data schema (Fig. 7).

5. Place the ADOConnection component on the form (ADO> ADOConnection tab) and configure it (Table 2; Fig. 3).

      table 2

      ADOConnection component property values

    Property Note
    PageControl Set of panels with bookmarks.
    Each panel can contain its own set of interface elements and can be accessed by clicking on the tab associated with it. Win32 tab Contains interface elements for 32-bit operating systems 2000.
    Windows systems LoginPromt
    False Click on the button with three dots (located in the property values ​​field).

    Click on the Build button.

    On the Data Provider tab, select Microsoft Jet 4.0 OLEDB Provider.

    On the Connection tab, specify the “Children’s Clinic” database file.

Additionally, specify Access rights: ReadWtite.

To enable asynchronous mode, you must set the ConnectOptions property of the TADOConnection component to coAsyncConnect. In this case, new requests will be executed without waiting for a response from previous requests.

Fig.3. Setting up ADOConnection in the Object Inspector parameters

    6. Place the ADOTable(ADODB) component on the form (ADO->ADOTable tab) and configure it (Table 3; Fig. 3).

    Table 3

    Property ADOTable(ADODB) component property values Note
    Meaning Connection
    The name of the ADOConnection component that provides a connection to the database TableName The team that provides information from specific table DB
    Expand the list located in the property value field and select the name of the desired table Active
    True ADO technology
    This is synchronous/asynchronous execution of operations with the data store. Using the connectoptions property, you can set the connection mode to the data store TADODataSet TADOCoommand Common Components
    for working with ADO technology, they allow you to execute commands in the language of the data provider. DataSourceObject

Data store.

    7. Place the DataSource component on the form (Data Access -> DataSource tab) and configure it (Table 4; Fig. 3)

    Table 4

DataSource component property values

    8. Place the DBGrid component on the form (Data Controls->DBGrid tab) and configure it (Table 5; Fig. 3)

    Table 5

Property ADOTable(ADODB) component property values Note
DBGrid, Edit, Button component property values DataSource Component name DataSource
Expand the list in the property value field and select the component name Align
alClient DBGrid
Edit The component is designed for data visualization, input and editing.
Button Input line. Designed to enter, display or edit one text line. Command button

. This component's OnClick event handler is typically used to implement some command.

9. Similarly, create other columns of the table (for the “Children’s Clinic” project). Figure 4 shows the result of correctly completed task actions.

To do this, add the ADOQuery(ADODB) component. The values ​​of this component correspond to the values ​​of the properties of the ADOTable(ADODB) component. In the parameters of the Object Inspector, enter the SQL command:

ADOQuery1.Clear:= True;

ADOQuery1.Add("SELECT DU.DU, DU_Adres.DU, DU.Inf_Zab, DU.Data_obs");

ADOQuery1.Add("FROM DU");

ADOQuery1.Add("WHERE ((DU.Data_Obs) BETWEEN (DateValue(""" + Edit1.Text + """)) AND (DateValue(""" + Edit2.Text + """)));") ;

ADOQuery1.Active:= True;

11. Place the Edit1 and Edit2 components on the form. In the parameters of these components we will specify the default date: Edit1->Text->01/01/2009; Edit2->Text->12/31/2009.

12. Place the Button component on the form (Fig. 5).

13. Create a procedure for handling the Click event, providing SQL execution– commands. Procedure for processing the Click event on the “Update Query” button (Button1):

procedure TF.OtClick(Sender: TObject);

      sqlfile:TextFile;

      ADOQuery1.SQL.Clear;

      ADOQuery1.SQL.Add("SELECT DU.DU, DU.Adres_DU, DU.Inf_Zab, DU.Data_obs");

      ADOQuery1.SQL.Add("FROM DU");

      ADOQuery1.SQL.Add("WHERE ((DU.Data_Obs) BETWEEN (DateValue(""" + Edit1.Text +""")) AND (DateValue(""" + Edit2.Text + """))); ");

      ADOQuery1.Active:= True;

      AssignFile(sqlfile,"sql_instructions.txt");

      Rewrite(sqlfile);

      for i:= 0 to ADOQuery1.SQL.Count-1 do Writeln(sqlfile, ADOQuery1.SQL.Strings[i]);

      CloseFile(sqlfile);

      Fig.5. Form designer window.

    1. 14. Tab “Recorded infectious diseases” Final stage . Creation executable file – Project1.exe application using the compilation process (Project/Compile ). The compiler generates executable program

as a console application. An example of how the program works, i.e. The view of the program window after execution is shown in Fig. 6.

Fig.6. Executable file – application Project1.exe

The finished project - application in Delphi is presented in the application.

  1. Literature
  2. Darakhvelidze P.G., Markov E.P. Programming in Delphi 7. - St. Petersburg: BHV - Petersburg, 2003. Kultin N.B. Programming in Turbo Pascal
  3. 7.0 and Delphi 7. – St. Petersburg: BHV – Petersburg, 2007. Petrov A. et al. Computer technology and programming., 2008.
  4. graduate School

Internet: www.PowerBuilder.sbn Delphi 8 for Microsoft. NET Framework is an integrated development environment running on the Microsoft .NET platform and supporting the full life cycle of application development. The interface of the environment is very different from the interfaces of previous versions, for example from Delphi 7. Below we will look at creating various types

Creating a Basic Windows Forms Application

After clicking the “Hello, world!” button you will receive a form.

When creating applications for Windows platforms option can be selected VCL (Visual Component Library) Forms Application, which is specifically left for compatibility with previous versions Delphi. As in an application like Windows Forms Application, the Form Designer will appear on the IDE desktop. Note that properties and events are different for class object instances Form1 And TWinForm(in this name we see a discrepancy with the rules adopted in Delphi - this is how types are usually designated) like TForm1 And System.Windows.Forms.Form performing similar functions. When creating new projects, we recommend using Windows Forms Application, as more appropriate for the platform. The development environment automatically loads the required form designer and tool palette depending on the application type you select.

Creating a Basic VCL Forms Application

Scenario for creating an application type Windows VCL Application is:

As a result of clicking the “Hello, world!” button a form will be received.

As you can see from the application forms above, despite minor differences, the overall functionality is the same. Note also that during the application construction process, the sets of components available for use also differ.

In addition, Delphi 8 has some different language constructs compared to Delphi 7, which are presented in the table.

Main differences in the syntax of Delphi 7 and Delphi 8

Delphi 7

Delphi 8 Real48
Double Absolute, Addr, @
Not supported GetMem, FreeMem, ReAllocMem
New, Dispose or dynamic array Type object
Type class File of any type, including records
Streams, serialization, databases Inline assembly or asm with Absolute, Addr, @
keywords Absolute, Addr, @
ExitProc FillChar, Move
Redefining Variables in a Loop PChar
String or StringBuilder (The String type in .NET is not efficient for concatenation operations. Use the StringBuilder type) Absolute, Addr, @
ADO, WebBroker, InternetExpress, WebSnap and XML support associated with TXMLTransform components Absolute, Addr, @

Components from the System tab: OLEContainer, DdeClientConv, DdeClientItem, DdeServerConv, DdeServerItem

Creating Console Applications The simplest console application


is created as follows: Below is an example of a console application that, thanks to directives will work equally well when compiled on Delphi for .NET, Delphi 7 or Kylix 3, producing the appropriate line:

programHelloWorld;

($APPTYPE CONSOLE)

($IFDEF CLR) // Delphi for .NET

writeln("Hello, .NET world!");

($IFDEF WIN32) // Delphi 7

writeln("Hello, Win32 world!");

($IFDEF LINUX) // Kylix

writeln("Hello, Linux world!");

ReadLn; //to delay execution

The following example is a console application that works with files:

1. Select a menu option File=>New=>Other=>Delphi for .Net Projects Console Application.

2. In the implementation section of the automatically generated application framework, paste the code.

WriteLn ("Demonstration of working with files!");

AssignFile(FT, "file-text.txt");

WriteLn(FT, "Hello, developer!");

3. After saving and executing the project, the application window will appear on the monitor screen.

Let us note two points related to this application.

Firstly, although the documentation does not say anything about the impossibility of working with untyped files, the FB: file of word; does not compile, but the error “Unsupported language feature: typed or untyped file” is displayed.

Secondly, the writeln statement successfully prints a string to the screen Russian language, but with a similar attempt to output to a file, the code page of the resulting text turns out to be different. When working with text files There are no problems with code pages.

Creating Database Applications

The following scenario describes how to build an ADO.NET application that uses the Windows Forms Application template and new technology BDP.NET, which includes the components needed to build database applications:


When moving an application to another computer, it is important that the employee.gdb database is located in a specific location (for example, d:/data) - otherwise you will need to redefine the bdpConnection1 component instance.

Aligning the table relative to the form can be done using properties Anchor And Dock.

When adding links to a project with the command Add Reference… No spaces are allowed in the path.

Creating ASP .NET Applications

Comment. If you want to install Delphi 8 to create ASP .NET applications, Internet Information Services must already be installed on your computer. If ISI were installed after Delphi 8, then for correct operation ASP .NET applications should enter the command:

aspnet_regiis.exe /i

To create ASP .NET applications:


When designing this application, two things emerged. functional features, characteristic of ASP .NET technologies, which were absent in Web application development technologies before Delphi 8. First - ASP .NET allows you to create only DLL applications, but in the case of combining debugging through IIS and debugging in the development environment, constant calls to the utility are not required iisreset.exe to enable translation of the next version of the dynamic library.

The second is that, at the same time, in the case of defining a global variable, as this was done in the project under consideration, when the resource is called again, its previous value is saved, and its reset can only be done using utilities like iisreset.exe.

For transfer this project on another machine, you need to copy the HelloWorld directory to the appropriate directory, described in IIS as a virtual directory.

Pressing the button Create, you need to make the mentioned directory the application directory (the figure above shows the window for the properties of the HelloWolrd directory in Windows 2000 Advanced Server). After completing these steps, the Web application can be called on local machine team

1. Calculation of an explicitly specified function. Do program, and console version of the program, calculating the value of the function. Implement a domain check for this function. Use the components Label, Edit, Button, BitBtn, LabeledEdit. Draw an icon in (ImageEditor) and use it in the program. Select the appropriate Cursor images. Make it possible to change the transparency of the form (AlphaBlend). Change the form border type, font settings, and control color. Use hints. Use ShowMessage to report errors.

2. Determining whether a point belongs to a closed area.

Assignment: Write a program to determine whether set point in this area.

Use components: Image, MainMenu, PopupMenu, Checkbox, RadioButton and ActionList.

Implement a software check for the correctness of data entry.

3. Calculation of the values ​​of the final sum of the series.

Task: Calculate the sum of a power series. Use multiple forms. Place the conditions on the first form, the remaining data and functionality on other forms.

Use components: Shape, Bevel, Splitter.

Use forms in modal mode and in normal. Use form templates, place them in object storage.

4. Processing of one-dimensional arrays.

Write a program for accessing a data vector.

Task: Dividing the numerical data of a given vector by the sum of the largest and smallest. get a new vector of numbers.

Use components: Memo, ListBox.

5. Processing of two-dimensional arrays (matrices).

Use: PageControl, StringGrid, Bookmarks, try...except block.

Task: Order the rows of a given matrix of numbers in descending order of the elements in a certain column.

6. String processing.

Working with string data.

Use components: ImageList, RichEdit, ToolBar.

Task: Get a new line by changing the first and last “words”. Use functions or procedures, as well as modules.

7. Draw a graph of the given function.

Use: OnResize, ClientHeight, ClientWidth, OLEContainer, TEdit, Chart.

8. Create an animated image.

Requirements for the program: Two moving with at different speeds object. One as a procedure by drawing individual arcs, lines using the base point method. Place the second one drawn in the ImageEditor by changing the Left and Top properties in the Image component. Use Timer. Implement stopping and changing direction of movement.

Task: Objects "Boat" and "Yacht".

9. Working with typed files.

Use components: OpenDialog, SaveDialog. Create appropriate filters for these components.

Task: Given a file real numbers. Find the arithmetic mean of its components and remove all components exceeding the mean.

10. Working with local base data.

Use: Paradox for DB, BDE data access engine, DataSource, Table, DataModule, DBGrid, DBNavigator, DBEdit, DBText, Query and DBChart. Implement software change SQL query text.

Task: Create a database "School", with information: last name, class, year of birth of the student, address, telephone. Determine how many students have a phone. Make a list of students in a given class.

Practical work No. 1

Topic: FIRST PROJECT

Purpose of the lesson: using the Label and Button components of the Standard component palette, handling the OnClick event - pressing a button.

Task No. 1.

Create a program that does the following:

After starting the program by clicking on the “Welcome” button, the message “First successes!” appears. To exit the program, click on the “Exit” button.

What's new in this work is:

Stages of program development

1. Open a new project.

2. Place component instances on the form: a Label and two Buttons

3. Select Button2, go to the Object Inspector to the Properties tab, find the Caption property and change Button2 to the title

"Exit". Go to the Events page of the Object Inspector window, find OnClick event, to the right of it, double-click. Once in the program code, more precisely, in the template procedure TForm1.Button2Click, write only one Close command; (be sure to include a semicolon after “Close”).

procedure TForm1.Button2Click(Sender: TObject);

begin

Close;

end;

4. Save the program code and project under names such as Unit2.pas and Pr2.dpr.

5. Run the program, then close the project window by clicking on the “Exit” button.

6. Select the form, and in the Caption property of the Object Inspector window, replace the word Form1 with “My Project”. This will be the title of the main program window.

7. Select the Button1 button, and in the Caption property of the Object Inspector window, replace the word Button1 with the name of the “Welcome” button. If necessary, increase the length of the button.

8. With Button1 still selected, go to the Events page of the Object Inspector window and find the OnClick event, double-click to the right of it

mouse. Enter the following code: Label1.Caption:= 'First successes!';

9. Save the project finally, run and test it.

Task No. 2.

1. Make the font for the replica “First successes!” different from the standard in appearance, color and size.

2. Replace the appearance of the “Exit” button with a more attractive one.

3. Make sure that after pressing the “Welcome” button, the message “First and not last!” appears on the screen.

4. Run the Pr2.exe executable file not in Delphi environment, but on Windows.


On the topic: methodological developments, presentations and notes

Lesson - generalization of knowledge on the topic "Computer structure". The main emphasis is on the device for entering information into the computer - the keyboard. To work in graphic editor Paint are designed practically...

Independent work on text formatting tools and two practical works in MS Word 2007

A little independent work to consolidate the material. Two practical works on creating and processing tables in a text editor....