Цитата(Василий1488 @ 12.04.2014 1:40)
Здравствуйте!
Возникла такая проблема:
Не могу присвоить процедурной переменной метод объекта (пишет неправильное использование функции)
На сколько помню, то в делфи для этого при объявлении проц. типа надо указать of object. Как это сделать в турбопаскале? Если никак, то где можно прочитать про то, как происходит вызов метода объекта (есть идея вызвать непосредственно по адресу, но как его заставить обработать нужный объект?)...
Заранее спасибо!
Для того, чтобы объявить класс на Pascal необходимо воспользоваться ключевым словом Object . Так как класс всегда является типом, делать это можно лишь в Type части программы:
Type
Class1 = Object
{список полей}
A: Byte;
V: Real;
{список методов}
Procedure Nothing(Var K: Byte);
End;
Легко заметить, что поля и методы (общее для них название - члены класса) объявляются очень похоже на поля записи и обычные процедуры/функции. Объекты класса объявляются так же, как и обычные переменные:
Var Object1, Object2: Class1;
Соотвенно, доступ к полям объекта некоторого класса производится аналогично доступу к полям записи:
Object1.V:= Object2.A;
Обращение к методам класса производится аналогичным образом:
Object1.Nothing(Object1.A);