VR
Virtual Reality On-line   Журнал
Новости   |     Журнал    |    Хаkер    |     Магазин   |   Проекты
[   Вход    ]
[Kарта сайтa]

[ Download  ]
[  Конкурс  ]
[ Анекдоты  ]
[  Ссылки   ]
[  Реклама  ]
[ Почтальон ]
[ О проекте ]






TopList
Объектно-ориентированное программирование:
Logo

Я уже много рассказывал о программировании на Delphi и мы достаточно много рассмотрели примеров, но для начинающего не всё понятно, потому что немного не хватает теории. Сегодня я решил заделать эту пробоину, так что меньше слов и переходим к делу.

Рассмотрим самый простейший пример программы на Delphi:


unit Unit1; // Название проекта
interface // После этого ключевого слова идут объявления

uses  Windows, Messages, SysUtils; //Подключаются глобальные модули.

Type //Объявление типов
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
//Объявления событий и свойств
  private
    { Private declarations }
    procedure ExitProgramm;
//Объявление закрытых процедур и функций.
  public
    { Public declarations }
//Объявление открытых процедур и функций.
  end;//Конец объявления объекта TForm1

var
  Form1: TForm1; //Объявление глобальных переменных

Implementation //После этого слова идёт код программы

uses Unit2; //Локальные объявления

const //Константы
 Mode = 1;

{$R *.DFM}// подключаем файл формы

procedure TForm1.FormCreate(Sender: TObject);
var
 I:Integer; // Объявление локальной переменной
Begin //Начало процедуры
 //Здесь пишется код программы.
end;//Конец процедуры FormCreate

procedure TForm1.ExitProgramm;
begin
Close;
end;

end.// Конец модуля - "end" и точка.

Теперь разберём всё подробнее. В самом начале у нас стоит название формы. Оно может быть любым, но таким же, как и имя файла без расширения. Желательно давать понятные названия, чтобы ты мог по имени определить, что находится внутри.

Подключение глобальных модулей. Все процедуры, функции, константы описаны в каком-нибудь модуле, и прежде чем эти процедуры использовать, нужно подключить этот модуль. Ты можешь знать о существовании какой-нибудь функции. Но чтобы об этом узнал компилятор, ты должен указать модуль, где описана эта функция понятным для компилятора языком.

Как узнать, в каком модуле объявлена нужная процедура? Очень просто, для этого существует помощь. Вот вырезка из файла помощи для процедуры StrToInt:

Converts a string that represents an integer (decimal or hex notation) 
to a number.

Unit
Sysutils

Category
type conversion routines

function StrToInt(const S: string): Integer;

Первая строка объясняет назначение функции. Во второй строке ты можешь увидеть слово Unit, после которого идёт Sysutils. Значит эта функция описана в модуле Sysutils, вот именно его тебе и надо подключить.

Дальше идут объявления типов. Строка TForm1 = class(TForm) говорит о том, что мы создаём новый объект TForm1 , который будет происходить от объекта TForm . А это значит, что TForm1 Будет обладать всеми возможностями TForm , и плюс то, что мы захотим.

После этого идут объявления событий. Здесь ты не будешь работать ручками. Все объявления здесь делает Delphi когда ты устанавливаешь на форму новый компонент или создаёшь для него событие.

Объявление закрытых и открытых процедур и функций и переменных. Тебе нужно помнить, что закрытые процедуры и функции видны только внутри объекта, а открытыми ты можешь пользоваться из другого объекта. В нашем примере объявлена одна закрытая процедура - ExitProgramm . Эту процедуру можно использовать в любой другой процедуре объекта TForm1 . Но если ты создашь другой объект и попытаешься использовать ExitProgramm , то нарвёшься на мешок ошибок. В этом случае придётся перенести объявление процедуры в раздел Public .

Объявление глобальных переменных - эти переменные будут видны во всех процедурах, функциях, объектах этого модуля. Мы объявили одну переменную Form1 типа TForm1 . Вот именно через эту переменную ты будешь работать, когда захочешь вызвать процедуру объекта TForm1 из какого-нибудь другова объекта.

Подключение локальных модулей (Вообще-то разделение на локальные и глобальные я делаю условно). В этом объявлении ты объявляешь свои модули проекта. Например, в твоём проекте два модуля (две формы), и чтобы ты мог из первого модуля вызвать процедуру находящуюся во втором модуле, ты должен подключать второй модуль здесь. Для примера я подключил свой модуль Unit2, в котором создам ещё одну форму. Запомни, что ты подключаешь здесь те модули, которые подключены к твоему проекту. Конечно же ты можешь подключать и другие модули, но желательно этого не делать. Чтобы не запутаться, используй для объявления меню "Use unit" из меню "File". Чтобы просмотреть, какие формы у тебя есть в проекте, используй "Project meneger" из меню "Project".

Объявление констант. А зачем они нужны? В принципе можно обойтись без них, но представь себе ситуацию: Ты очень часто используешь какое-нибудь число, и вдруг тебе нужно изменить его на другое. В этом случае тебе придётся лазить по всему модулю и менять числа, а я в это время изменю одно число и всё. Во избежание таких проблем используются константы. Я присваиваю имени (в данном случае Mode) какое-то число, и потом обращаюсь к этому числу через имя (например, I:= Mode+1, результатом будет "2").

Константы нельзя изменять внутри программы, потому что это не переменные, а числа. Представь себе запись Mode:=5, это тоже самое, что написать 1:=5, а это не реально.

Подключение файла формы. Здесь также не желательно ничего менять, потому что Delphi. Это подключение файла, в котором храниться всё, что ты визуально наделал на форме. Изменения здесь нужны только в крайних случаях, но я их ещё не встречал. В процедуре FormCreate я объявил локальную переменную. Эту переменную можно использовать только внутри этой процедуры. В других она не будет видна.

Вот и всё. Я надеюсь, что у тебя теперь будет намного меньше вопросов. Единственное, на чём я хочу ещё остановится, так это на том, когда нужно ставить begin и end, а когда нет.

Условный оператор IF выглядит так:

if условие then оператор

Оператор может быть только один. Если нужно выполнить несколько операторов, то надо заключить их в скобки из begin и end. Например

if I=0 then 
I:=2;// Begin не нужен, оператор только один

if I=0 then 
 begin //Дальше будет два оператора, поэтому ставлю begin.
 I:=2;
 I:=I+5;
 end;// Конец условия IF

Тоже самое происходит с циклом FOR.

for условие1 to условие2 do оператор

В цикле выполняется только один оператор, а если нужно несколько, то ставится begin и end. Вроде бы на сегодня всё, надеюсь, что скоро увидимся.


Design by FMk group ©
Copyright©: Horrific aka Флёнов Михаил ©