RRYTY писал(а):Учебник, в данном случае, нужен по FreePascal.
Безусловно, язык знать получше мне бы не помешало. 

 Но всё же сущности типа Self, Sender, Tag и т. д. и т. п. больше относятся к Delphi / Lazarus / VCL. Всегда плохо понимал, что всё это значит и как его использовать. Но до сей поры и не требовалось. 
svk12 писал(а):- Код: Выделить всё
- procedure TForm1.LabelClick(Sender :TObject);
 begin
 
 label_index := Self.Tag;
 
 end;
Self - объект, которому принадлежит метод, в данном случае - экземпляр класса TForm1. 
Объект, вызвавший обработчик, передаётся через параметр Sender.
 
Спасибо всем за разъяснения, из них многое стало понятным. 
 Добавлено спустя 40 минут 11 секунд:
Добавлено спустя 40 минут 11 секунд:Почитал статьи на тему Self и Sender. 
Насколько я понял, записи 
- Код: Выделить всё
- procedure TForm1.LabelClick(Sender :TObject);
 begin
 
 label_index := Tag;
 
 end;
 
и 
- Код: Выделить всё
- procedure TForm1.LabelClick(Sender :TObject);
 begin
 
 label_index := Self.Tag;
 
 end;
 
полностью равносильны. Просто обычно случаев Self не указывается (опускается) при манипуляциях внутри метода этого класса, указываются просто свойства / методы класса (например, класса формы). Self - это как $this в php 

А если нам нужно внутри метода класса использовать свойство объекта другого класса (например, TLabel), мы используем конструкцию вида
- Код: Выделить всё
 label_index := (Sender as TLabel).Tag;
 
 
или 
- Код: Выделить всё
 label_index := TLabel(Sender).Tag;
 
 
для чего и нужен параметр Sender в методе класса.