Использование ключевого слова implements

Многие классы CLX Kylix имеют в качестве некоторых своих свойств объекты. Кроме того, вы можете применять в качестве свойств класса интерфейсы. В том случае, когда свойство имеет тип интерфейса, вы можете использовать ключевое слово implements для определения методов, которые данный интерфейс передает объекту. По умолчанию ключевое слово implements передает все методы интерфейса. Тем не менее, вы можете самостоятельно определить список тех методов интерфейса, которые передаются объекту.

В листинге 10.5 представлен пример использования ключевого слова implements при создании объекта адаптера цвета, предназначенного для преобразования восьмибитного значения цвета RGB.

Листинг 10.5. Использование ключевого слова implements

unit cadapt; 
     type
IRGB8bit = interface
['{1d76360a-f4f5-lldl-87d4-00c04fbl7199}']
function Red: Byte;
function Green: Byte;
function Blue: Byte; end;
IColorRef = interface
['{ld76360b-f4f5-11dl-87d4-00c04fbl7199}']
function Color: Integer; end;
TRGB8ColorRefAdapter = class(TInterfacedQbject, IRGB8bit, IColorRef) private
FRGB8bit: IRGB8bit;
FPalRelative: Boolean; public
constructor Create(rgb: IRGB8bit);
property RGB8Intf: IRGB8bit read FRGB8bit implements IRGB8bit;
property PalRelative: Boolean read FPalRelative write FPalRelative; function Color: Integer; end; implementation
constructor TRGB8ColorRefAdapter.Create(rgb: IRGB8bit); begin
FRGB8bit := rgb; end;
function TRGB8ColorRefAdapter.Color: Integer; begin
if FPalRelative then
Result := PaletteRGB(RGB8Intf.Red, RGB8Intf.Green, RGB8Intf.Blue) else
Result := RGB(RGB8Intf,Red, RGB8Intf.Green, RGB8Intf.Blue); end; end.
Hosted by uCoz