- •View Project Manager
- •Interface
- •Implementation
- •Visible:boolean
- •VarType(V: variant):integer;
- •VarToStr(V:variant):string;
- •VarArrayCreate(bounds:array of integer; varType:integer):variant;
- •IsMasked:boolean
- •Image1.Picture.LoadFromFile(‘ ‘);
- •8 Вариантов
- •16 Вариантов
- •View/Debug Windows/Breakpoints
- •Interval:integer
- •Image1.Height
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Implementation
- •Implementation
- •ImageEditor (Tools)
- •Image Editor
- •I (Long Integer) 2147483647
- •Data Controls
- •Is not null
- •JavaScript
- •Var myName
- •Function()
Рис. 1
Рис. 2
Рис3
Р
ис.
4
Рис. 5
Листинг 1
type
<название класса> = object
<структура данных объекта>
[<перечень методов объекта>]
end;
Листинг 2
type
Dom = object
street: string[30];
nomer: 1..1000;
year: 1700..2020;
end;
Листинг 3
var
dom1, dom2: Dom;
Spisok: array[1..30] of Dom;
Листинг 4
for i := 1 to 30 do
begin
write('Введите улицу', i, '-го дома: ');
readln(spisok[i].street);
write('Введите номер', i, '-го дома: ');
readln(spisok[i].nomer);
. . .
Листинг 5
Mdom = record
street: string;
nomer: integer;
year: integer;
kolkv: integer;
kolfl: integer;
end;
Osob = record
street: string;
nomer: integer;
year: integer;
fio: string;
pl: real;
ot: string;
end;
Рис.
6
Листинг 6
type
kind = (md, os);
dom = record
street: string[30];
nomer: 1..1000;
year: 1700..2020;
case member: kind of
md: (kolkv: 1..1000;
kolfl: 1..100;);
os: (fio: string[30];
pl: real;
ot: string[30];)
end;
Листинг 7
type
...
<название записи> = record
<общие поля>
case <селектор варианта> of
<вариант 1>
<вариант 2>
...
<вариант n>
end;
<метка> {, <метка> }: <список полей>.
понедельник :
понедельник, вторник, среда :
понедельник .. пятница :
понедельник .. пятница, воскресенье :
Листинг 9
Mdom = object(Dom)
kolkv: 1..1000;
kolfl: 1..100;
end;
Osob = object(Dom)
fio: string[30];
pl: real;
ot: string[30];
end;
:
var
a: Mdom;
b: Osob;
Листинг 10
Town: array[1..2500] of Mdom;
…
Dom = object
street: string[30];
nomer: 1..1000;
year: 1700..2020;
procedure Input;
procedure Show;
function GetYear: string;
end;
Листинг 11
procedure Dom.Input;
begin
write('Введите улицу дома: ');
readln(street);
write('Введите номер дома: ');
readln(nomer);
write('Введите год основания: ');
readln(year);
end;
<объект>.<метод>
Dom1.Input
Листинг 12
procedure Dom.Show;
begin
writeln('Улица: ', street);
writeln('Номер: ', nomer);
writeln('Адрес: ', address);
end;
Листинг 13
Mdom = object(Dom)
procedure Mdom.Show;
begin
writeln('Улица: ', street);
writeln('Номер: ', nomer);
writeln('Год основания: ', year);
writeln('Количество квартир: ', kolkv);
writeln(Количество этажей': kolfl);
end;
Листинг 14
procedure Mdom.Show;
begin
Dom.show;
writeln('Количество квартир: ', kolkv);
writeln(Количество этажей': kolfl);
end;
Рис. 7
var
<имя>: ^<тип>
var
pt: ^integer;
pt^
a := pt^.
New Dispose
Рис. 8
Рис.
9
Рис. 10
Листинг 15
program dm;
uses
Crt;
type
p = ^Dom;
Dom = record
street: string;
nomer: integer;
year: integer;
next: p;
end;
var
f, l, n: p;
i: byte;
begin
ClrScr;
new(n);
write('Введите название улицы: ');
readln(n^.street);
write('Введите номер дома : ');
readln(n^.nomer);
write('Введите год постройки дома : ');
readln(n^.year);
n^.next := nil
f := n;
l := n;
for i:= 1 to 3 do
begin
new(n);
write('Введите название улицы: ');
readln(n^.street);
write('Введите номер дома: ');
readln(n^.nomer);
write('Введите год постройки дома : ');
readln(n^.year);
n^.next := nil;
l^.next := n;
l := n;
end;
n := f;
for i:= 1 to 4 do
begin
writeln('Название улицы ', n^.street);
writeln('Номер дома', n^.nomer);
writeln('Год постройки дома: ', n^.year);
n := n^.next;
end;
readln;
end.
Рис. 11
Листинг 16
program dm;
uses
Crt;
type
dom = record
street: string;
nomer: integer;
year: integer;
end;
var
mp : array[1..10] of ^dom;
i: byte;
begin
ClrScr;
for i := 10 do
mp[i] := nil;
for i:= 1 to 4 do
begin
new(mp[i]);
write('Введите название улицы: ');
readln(mp[i]^.street);
write(' Введите номер дома: ');
readln(mp[i]^.nomer);
write('Введите год постройки дома : ');
readln(mp[i]^.year);
end;
for i:= 1 to 4 do
begin
writeln(' Название улицы ', mp[i]^.street);
writeln(' Номер дома: ', mp[i]^.nomer);
writeln(' Год постройки дома: ', mp[i]^.year);
end;
readln;
end.
Листинг 17
program dm;
uses
Crt;
type
Dom = object
street: string;
nomer: integer;
year: integer;
constructor Input;
procedure Show; virtual;
end;
Mdom = object(Dom)
kolkv: integer;
kolfl: integer;
constructor Input;
procedure Show; virtual;
end;
Osob = object(Dom)
fio: string;
pl: real;
ot: string;
constructor Input;
procedure Show; virtual;
end;
pm = ^Mdom;
po = ^Osob;
constructor Dom.input;
begin
write(' Введите название улицы: ');
readln(street);
write(' Введите номер дома: ');
readln(nomer);
write(' Введите год постройки дома : ');
readln(year);
end;
procedure Dom.Show;
begin
writeln('Улица : ', street);
writeln('Номер: ', nomer);
writeln('Год постройки: ', year);
end;
constructor Mdom.input;
begin
Dom.input;
write('Количество квартир в доме: ');
readln(kolkv);
write('Количество этажей в доме: ');
readln(kolfl);
end;
procedure Mdom.Show;
begin
Dom.show;
writeln('Количество квартир: ', kolkv);
writeln('Количество этажей ', kolfl);
end;
constructor Osob.input;
begin
Dom.input;
write('Фамилия владельца дома : ');
readln(fio);
write('Площадь дома : ');
readln(pl);
write('Вид отопления: ');
readln(ot)
end;
procedure Osob.Show;
begin
Dom.Show;
writeln('ФИО владельца : ', fio);
writeln('Площадь дома : ', pl:6:1);
writeln('Вид отопления: ', ot)
end;
var
list: array[1..10] of ^Dom;
i, k: integer;
c : char;
begin
ClrScr;
for i := 1 to 10 do
list[i] := nil;
for i := 1 to 4 do
begin
writeln('Выберите вариант дома: м – многоэтажный, о - особняк');
readln(c);
if c = 'м' then
list[i] := new(pm, input)
else
list[i] := new(po, input);
end;
for i:= 1 to 4 do
list[i]^.Show;
readln;
end.
GUI - graphic user interface
WYSIWYG (What You See Is What You Get)
Рис. 12
event
event handler
event-driven programming
Рис. 13
ИСР Delphi
ObjectPascal
Рис. 14
View Project Manager
Options Project Options dialog
Windows-окно (форма)
on-line
Unit<номер>.pas
Form<номер>
F12
Standard
RAD (rapid application development)
Рис. 15
Properties
Visible := true
False
Enabled := true
False
color
Рис. 16
Delphi 6 355 Кб
Листинг 18
unit Unit1;
Interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Implementation
{$R *.dfm}
end.
var
Form1 : TForm1;
Button1: TButton;
. .
type
TForm1 = class(TForm)
Button1: TButton;
private
{ Private declarations }
. .
<название компонента>:<класс компонента>;
{$R *.DFM}
Tools/Environment Options
Preferences
Editors
files,
P
Рис. 17
- properties (свойства);
- events (события).
Properties |
|
Events |
||
Название свойства |
Значение свойства |
|
Название события |
Имя подпрограммы, обрабатывающей событие |
|
|
|
|
|
<название><значение>
Color
Width
Height
простые;
перечисляемые:
сложные (множественные);
объекты.
visible
+
<Object>.Color := Value;
GetColor, SetCoLor
Рис. 18
Листинг 19
program Project1;
uses
Forms, Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Project/View Source
Tools/Image Editor
Form2.Edit1.Clear
Color := clFuchsia Form1.Color := clFuchsia
Uses
Project/Options
Application
.ico
File/Save All
►
F9
Ctrl/F9
Run/Run
Run/ProgramReset Ctrl/F2
Caption
Delphi 4 170, Delphi 5 - 200, Delphi 6 – 227
TLabel
Font
Size
Color
Style
OnClick
Листинг 20
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
….
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
. . .
end;
Button1.сaption := "Запуск расчета";
Ctrl/J
Sender:Tobject
onCreate, onMouseMove, onPaint
procedure TForml.Label1Click(Sender: TObject);
begin
…
end;
position poScreenCenter
Рис. 19
caption
height
width
name
align
alBottom
alLeft
alTop
alRight
alClient
alCustom
alNone
OK
Additional TBitBtn
Kind
- OK;
- Close;
- Cancel;
- Help и др.
abI
TEdit
А
TLabel
TMemo
- lines
- text
- scrollBars:
ssNone
ssVertical
ssHorizontal
ssBoth
- WordWrap:boolean
Листинг 21
procedure TfmExample.bbRunClick(Sender:ТObject);
begin
lbOutput.Caption := edInput.Text;
mmOutput.Lines.Add(edInput.Text);
edInput.Text := '';
edInput.SetFocus;
end;
OnActivate OnCreate
Events
procedure TfmExample.FormActivate(sender:TObject);
begin
edInput.SetFocus;
end;
Form1.ActivateControl := BitBtn1;
Рис. 20
Additional -> TMaskEdit
EditMask
Рис. 21
- name → bbResult;
- visible → false.
var
x, y:integer;
Листинг 22
OnActivate
procedure TfmExample.FormActivate(sender:TObject);
begin
edInput.SetFocus;
lbOutput.Caption := 'Введите первый опреранд';
end;
Листинг 23
procedure TfmExample.bbRunClick(Sender:TObject);
begin
x := strToInt(Trim(edInput.Text)); //преобразование в число первого операнда
mmOutput.Lines.Add('1-ый операнд: '+ edInput.Text);
edInput.Text := '';
edInput.SetFocus;
mmOutput.Caption := 'Введите 2-ый операнд';
bbResult.Show;
bbRun.Hide;
end;
Листинг 24
procedure TfmExample.bbResultClick(Sender:TObject);
begin
y := strToInt(Trim(edInput.Text)); //второй операнд преобразуется в число
mmOutput.Lines.Add('2-ой операнд: '+ edInput.Text);
mmOutput.Lines.Add('Результат: '+ IntToStr(x) + ' ' + IntToStr(y) + '=' + IntToStr(x + y)); //вычисляем и показываем результат
edInput.Text := ''; //очищаем строку ввода
edInput.SetFocus;
lbOutput.Caption := 'Введите первый операнд'; //приглашение к вводу первого операнда
bbResult.Hide;
bbRun.Show;
end;
Trim - удаляет из вводимой строки обрамляющие пробел
StrToInt - преобразует строку символов в целое число;
IntToStr – производит обратное преобразование.
\
