Вы находитесь на странице: 1из 7

Шпаргалка по Delphi

1.Программа на языке Delphi состоит из следующих частей:


Дизайн – форма (окно), на которую можно положить разные компоненты (поля ввода и
вывода, кнопки и т.д.).
Код – текст, написанный на языке программирования, состоящий из процедур и функций.
Обычно процедуры связываются с каким-либо системным событием (нажатием кнопки,
щелчком мыши и т.д.), произошедшим в одном из компонентов (например, щелчок по
кнопке).
Проект – программа (exe-файл), которая создается после компиляции кода
(превращения кода в язык, понятный любому компьютеру). Эта программа появляется
после запуска вашего кода (Run или F9) и называется обычно Project1.exe, Project2.exe…
Этот файл вы можете скопировать себе на флэшку и выполнить потом на любом
компьютере.
2.Основные события Delphi:
События могут происходить как на форме, так и на любом из ее компонентов (см.
дальше). Чтобы выбрать событие, выберите из раскрывающегося списка в Objects
Inspector нужный компонент и перейдите на вкладку Events.

OnClick – одинарный клик мышью на объекте 


OnCreate – возникает при создании объекта. Процедура обработки этого события обычно
пишется для инициализации переменных, выполнения подготовительных действий
OnPaint – при появлении окна на экране
OnDblClick – двойной клик мышью на объекте 
OnMouseDown – нажатие кнопки мыши на объекте 
OnMouseUp – отпускание кнопки мыши на объекте 
OnMouseMove – движение курсора мыши по объекту 
OnEnter – объект становится выбранным (курсор внутри объекта) 
OnExit – объект перестает быть выбранным
OnKeyDown – нажатие любой клавиши на клавиатуре  
OnKeyUp – отпускание любой клавиши на клавиатуре 
OnKeyPress – нажатие клавиши на клавиатуре
OnChange – изменение целевых свойств объекта, например текста

3.Переменные и типы данных в Delphi


Переменные – это своеобразные "ящики", в которых можно хранить ровно одно значение
определенного типа. Как только вы кладете в этот ящик новое значение (присваиваете
его переменной), старое значение пропадает.
Основные типы значений такие:
integer – целочисленные переменные в пределах от  -2147483648 до +2147483647. Этот
тип используется для переменных, принимающих относительно небольшие значения (в
пределах 2 миллиардов).
int64 – целочисленные переменные в пределах от  -263 до +263-1. Этот тип используется,
если вы работаете с числами, большими 2 миллиардов.
real – действительные числа в диапазоне от 5*10-324 до 1.7*10308. Они представляются как
число с запятой (максимум 15 знаков), умноженное на 10 в какой-то степени, например,
-4.456739345Е-12
boolean – принимает только два логических значения: true (истина) и false (ложь). Эти
переменные удобны как индикаторы состояния, например, вы можете определить
переменную ready:boolean; присвоить ей в процедуре form1.OnCreate значение false, а

1
потом – по нажатию клавиши или любому другому действию – изменить это значение на
true.
char – символы. Переменная этого типа может быть любой цифрой, буквой или другим
символом с клавиатуры, включая специальные символы (перевод строки, конец файла и
т.д.). Например, '2', 'f', ' ' (пробел), #13 (конец строки или клавиша enter).
string – строки (представляются как массив символов, см. ниже), например, 'Таня', '123',''
(пустая строка). Чтобы узнать, какой символ стоит, скажем, на 3-ем месте в строке t='how
are you', надо написать t[3].

Если мы попытаемся присвоить переменной одного типа значение другого типа,


программа выдаст ошибку. Чтобы этого не происходило, существуют функции-
конверторы. Например, любое значение можно перевести в строку с помощью функций
IntToStr() – переводит целое число в строку, FloatToStr() – вещественное число в строку. И
наоборот, строки (если в них есть только цифры) можно перевести в целые или
вещественные числа функциями StrToInt(), StrToFloat().

Имена переменных могут быть любыми комбинациями букв и цифр, начинающимися с


буквы. Лучше давать им осмысленные имена, тогда текст программы станет понятнее.
Чтобы программа научилась узнавать переменные, их сначала надо ей "представить" в
разделе var (от слова variables – переменные). Например,
var counter,month:integer; MySymbol: char; name2:string;
В каждой программе уже существует раздел var, в который можно дописать нужные вам
переменные. Однако если какая-то переменная используется вами только в одной
процедуре, лучше описать ее прямо там, между заголовком процедуры и основным
текстом (т.е. перед словом begin).

Набор данных одного типа называется массивом. Он описывается так:


var MyMassive: array [1:20] of integer; MyTable: array [1:5,1:6] of real;
В данном случае мы описали одномерный массив из 20-ти целых значений и двумерный –
из 5 строк по 6 вещественных (дробных) элементов. Одномерные массивы удобно
представлять себе как списки, а двумерные – как таблички. Чтобы обратиться к 3-му
элементу списка, достаточно написать MyMassive[3], аналогично, чтобы попасть в 6-й
элемент 5-ой строки, мы напишем MyTable[5][6].

Параметры основных компонентов тоже являются переменными (только их не надо


описывать). Например, параметр Visible, отвечающий за то, видим данный компонент или
невидим, имеет тип boolean (и значит, принимает значения true или false), параметр height
(высота компонента) имеет тип integer, параметры Caption и Text полей вывода и ввода –
string и т.д. Поэтому чтобы, скажем, вывести число 5 в поле вывода, надо это число
конвертировать в строку:
Label1.Caption:=IntToStr(5);

4.Операторы Delphi:
Основной текст программы, заключенный всегда между словами begin и end, состоит из
операторов – т.е. действий. После каждого оператора ставится точка с запятой.
Простейший и основной – оператор присваивания. Выглядит он так:
переменная:=выражение;
Например:
stroka7:=’ne hochu uchit informatiku’;
stroka8:=stroka7+’ i fiziku tozhe ne hochu uchit’;
dveNedeli:=odnaNedelia*2;
Также вы можете присвоить что-то любому параметру одного из компонентов, например,
установить высоту (параметр) кнопки (компонент) в 57 пикселей:
2
Botton1.height:=57;
Чтобы изменить значение какой-то переменной надо присвоить ей ее саму плюс (минус,
умножить и т.д.) какое-то выражение, например:
width:=width*3; {увеличивает ширину формы в три раза}
height:=height - width div 2; {уменьшает высоту формы на половину ее
ширины}
Присваивая переменной выражение, вы кладете в "ящик" новое значение, старое при этом
пропадает. Чтобы поменять значение двух переменных крест-накрест (переменной а
присвоить значение b и наоборот), нельзя написать a:=b; b:=a; поскольку уже на первом
шаге значение а затрется новым. Надо сохранить его сначала в отдельном "ящике"-
переменной.

Условный оператор позволяет выполнять одно или другое действие в зависимости от


того, выполняется ли данное условие. Выглядит он так:
if условие then оператор1 else оператор2 ;
Если условие выполняется, будет исполнен оператор1, в противном случае – оператор2.
Если вам нужно выполнить не одно действие, а несколько, их надо заключить в "скобки"
begin-end, например:
if a<>0 then begin {эти действия выполнятся, если а не равно нулю}
b:=100/a;
Label1.Caption:=FloatToStr(b);
end
else {Это действие выполнится, если а равно нулю}
Label1.Caption:='На ноль делить нельзя';
Запомните, что перед словом else не должна стоять точка с запятой!!!
Условия бывают простыми и составными. Простые условия: равенства и неравенства (=,
<>, <=,>=), нечетность (функция Odd()). В качестве условия может выступать переменная
типа boolean, например, if ready then...
Составные условия строятся с помощью not, or, and (не, или, и), при этом простые
условия заключаются в скобки, например:
if (a>=0) and (a<=9) then Label1.Caption:='а – цифра';

Оператор выбора используется, когда имеется выбор из трех и более случаев. Он


записывается так:
case выражение of
первое значение: оператор;
второе значение: оператор;
третье значение: оператор;

end;
Вот пример программы, меняющий цвет формы в зависимости от количества кликов:
i:=i+1;
case i mod 3 of
0: Color:=clred;
1: Color:=clblue;
2: Color:=clgreen;

end;
Оператор цикла служит для повторения одинаковых действий данное количество раз.
При этом переменная цикла пробегает все значения от начального до конечного.
Выглядит этот оператор так:
for i:=5 to 10 do нужноедействие;

3
Опять-таки, если действие нужно выполнить не одно, а несколько, их надо заключить в
begin end. Например,
res:=1;
for k:=2 to 10 do
begin
res:=res*k;
Label1.Caption:=Label1.Caption + ' ' + IntToStr(res);
end
Эта программа выдаст факториалы всех чисел от двух до десяти через пробел.

Условный цикл выглядит так:


while условие do оператор ;
Этот оператор будет выполняться до тех пор, пока условие не станет ложным. Например,
следующий цикл будет выполняться, пока в строке не обнаружится буква «ы»:
i:=1;
while MyString[i]<>’ы’ do
i:=i+1;
Обратите внимание на то, что если в строке этого символа вообще не найдется, программа
выдаст ошибку при попытке обращения к несуществующему элементу строки. В данном
случае следует либо исправить условие цикла, либо оператор, например, так:
while MyString[i]<>’ы’ do
begin
i:=i+1;
if i>length(MyString) then break;
end;

5.Процедура на Delphi состоит из следующих блоков:


заголовок procedure TForm2.FormClick(Sender: TObject);

раздел описания var a: integer;


переменных
собственно текст begin
a:=5;
height:=height+a;
end;
в заголовке содержится название (которое отражает, что процедура соответствует второй
форме и работает по щелчку мыши) и в скобках указываются переменные, которые
передаются данной процедуре. Этот раздел начинается со служебного слова procedure.
в разделе описания вы должны познакомить процедуру с новыми для нее именами. Этот
раздел начинается со служебного слова var. В нем вы не можете выполнять никаких
действий (ни присваивать, ни выполнять никакие операторы).
Основной раздел начинается со служебного слова begin. После него и до слова end; вы
пишете последовательность операторов через точку с запятой.
Помимо процедур, в Дельфи предусмотрены функции – процедуры, выдающие
определенное значение. Вот пример такой функции:
function TForm1.factorial (i: integer) : integer;
{получает на входе целое число i и выдает целое число}
var res,k: integer;
begin
res:=1;
for k:=1 to do
res:=res*k;
factorial:=res;
4
end;
6.Основные компоненты Delphi.
Каждый компонент содержит параметры и события. Каждому событию можно
сопоставить процедуру обработки события (которая запускается при наступлении
события). Параметры – это переменные с фиксированным именем, которые отвечают за
свойства объекта. Например, параметр height – за высоту объекта, width – за ширину, left
и top – за отступы слева и сверху. Чтобы получить доступ к параметрам компонента надо
указать сначала его имя, а потом, через точку, сам параметр. Например, Form1.height – это
высота формы, Button1.width – ширина кнопки и т.п.
Чтобы создать компонент вы просто перетаскиваете его мышкой с панели компонентов (в
правой части экрана) на форму. При этом параметры объекта (например, его
расположение на форме) настраиваются автоматически. Вы можете поменять их двумя
способами. Вы можете настроить их вручную (в Objects Inspector на вкладке Parameters в
левой части экрана) для каждого компонента (выбрав компонент из раскрывающегося
списка). В этом случае программа начнет работать с этими параметрами. Обязательно
проверьте, чьи размеры (кнопки, формы или какого-либо поля) вы настраиваете!
Также можно поменять параметры программно, написав соответствующий код. Тогда этот
параметр изменится в ходе выполнения программы.
Чтобы связать с событием в данном компоненте какую-то процедуру, выберите нужный
компонент и дважды кликните на соответствующем событии. Дельфи сам присвоит этой
процедуре имя (которое вы, впрочем, можете изменить) и вставит кусочек кода с
описанием данной процедуры. Вам останется только добавить в это описание нужные
операторы и описать новые переменные, которые вы будете в ней использовать.
поле вывода TLabel: предназначено для вывода информации. Чтобы напечатать что-то в
этом поле надо параметру Caption присвоить значение типа string, например, так:
Label1.Caption:='¡hola!';
Если вы хотите добавить информацию в это поле, напишите
Label1.Caption:=Label1.Caption+'¡hola!';
Если вам надо добавить пробел, прибавьте ' ', чтобы перейти на другую строку, прибавьте
#13.
поле ввода TEdit: предназначено для ввода информации. За содержание этого поля
отвечает параметр Text. Чтобы получить целое число из этого поля, напишите:
названиепеременной:=StrToInt(Edit1.Text);
кнопка TButton. Название кнопки содержится в поле Caption.
Многострочное поле ввода TMemo. Представляет собой список (или, если угодно,
массив) строк. Первая строка имеет номер 0. Чтобы обратиться к строке с номером 7,
напишите Memo1.Lines[7]. Чтобы узнать, каков второй символ третьей строки, напишите
Memo1.Lines[3][2].
Чтобы добавить строку, используйте метод Memo1.Lines.Add(‘Novaia stroka’);. Помимо
этого есть следующие полезные методы (не забудьте написать перед ними Memo1.Lines.):
Clear – очищает поле
Count – выдает количество строк (последняя имеет номер count – 1)
Delete(5) – удаляет строку номер 5.
Insert(5, ‘privet’) – вставляет строку на 5-ю позицию
LoadFromFile(‘a.txt’) – загружает в поле файл
SaveToFile(‘a.txt’) – сохраняет содержимое поля в файл.

7.Чтение из текстового файла и запись в файл.


Сначала следует описать переменную типа TStringList, потом уже в самой процедуре
создать ее (выделить на нее память), загрузить ее из файла и работать с ней, как с полем
Мемо. Затем результат можно сохранить в файл. В примере показано, как найти самую
длинную строку в файле, выдать ее и завершить программу.

5
procedure TForm2.FormCreate(Sender: TObject);
var MyFile: TstringList; k:integer; LargestLine:string;
begin
MyFile:=TStringList.Create;
MyFile.LoadFromFile('c:\a.txt');
LargestLine:='';
for k:=0 to MyFile.Count - 1 do
if length(MyFile[k])>length(LargestLine) then LargestLine:=MyFile[k];
ShowMessage('The largest line is '+LargestLine);
MyFile.Free;
Application.Terminate;
end;

8.Исключительные ситуации.
Дельфи позволяет перехватывать ошибки, могущие возникнуть в процессе выполнения
программы. Впишите в основную процедуру (или на OnCreate)
application.OnException:=MyExcept;
и создайте специальную процедуру, в которой вы произведете нужное действие:
procedure TForm2.MyExcept (Sender: TObject; E: Exception);
begin
Label1.Caption:='Этого делать нельзя!!!'
end;
Переменная Е отвечает за тип исключения. Например, вы можете поменять текст этой
процедуры на такой:
if E=EZeroDivide then ShowMessage('Делить на ноль нельзя!')
else ShowMessage(‘Другая какая-то ошибка‘);

9.Комментарии.
Если вам надо пояснить что-либо в тексте программы, заключите ваш комментарий в
фигурные скобки. Весь закомментированный текст отобразится зеленым.

10. Математические функции


Формула Функция Значение
|x| Аbs (x) Абсолютное значение n
[x] Trunc(x) Целая часть числа x
{x} Frac(x) Дробная часть X

6
√x Sqrt (x) Квадратный корень из x
x 2
Sqr (x) Квадрат x
Sin x Sin (x) Синус x
Cos x Cos (x) Косинус x
arctg x Arctan (x) Арктангенс x
ex Ехр(x) Экспонента x
ln x Ln(x) Натуральный логарифм x
Pi Число
xn exp(n*ln(x)) Число х в степени n
n
√x exp(1/n*ln(x)) Корень в n-ой степени
Rardom(n) Случайное целое число в диапазоне от 0 до n- 1

Вам также может понравиться