TLineClipboard=class

public LineData:TLineData; procedure CopyToClipboard; procedure PasteFromClipboard;

end;

Структура TLineData состоит из пяти полей. Именно эту структуру мы будем помещать в буфер обмена. Как ты уже понял, объект Clipboard не может работать со структурами, и мы сейчас напишем модуль, с помощью которого мы научим его это делать.

После структуры идёт объявление нового объекта. Здесь мы объявляем новый объект вручную описывая все его метода и свойства. Чаще всего за нас это делал Delphi. Обрати внимание на то, что он объявлен, как простой объект без каких либо родителей (TLineClipboard=class). Несмотря на это, он будет иметь родителя – TObject, потому что все объекты должны иметь родителя и если ничего не указано, то будет использоваться базовый объект TObject. У нового объекта будет только одно свойство типа структуры TLineData и два метода для копирования и вставки данных в буфер обмена.

Теперь, после раздела typeнапишем varи опишем одну переменную:

var CF_PERSONDATA:word;

В этой переменной будет храниться указатель на зарегистрированный формат для буфера обмена. Давай не будем откладывать это дело на потом, а сразу же реализуем регистрацию в системе этого нового формата. Для этого в конце модуля, перед последним «end.» пишем:

initialization CF_PERSONDATA:=RegisterClipboardFormat('CF_PDATA');