четверг, августа 24, 2006

Record Helpers

С чего-то нужно было начинать, поэтому я начну с того о чем уже упоминал. Несмотря на то, что в документации BDS 2006 не сказано о наличии record helper'ов для платформы Win32 (я во всяком случае не нашел) эта изумительная вещица работает! Простейший пример иллюстрирует всю прелесть данной конструкции:

 Type
  TRectHelper = Record Helper For TRect

Function GetWidth : Integer; Inline;
Function Getheight : Integer; Inline;

Property Width : Integer Read GetWidth;
Property Height : Integer Read GetHeight;

End;

...

//
Function TRectHelper.GetWidth : Integer;
Begin

With Self Do
Result := Right - Left;

End;
//

//
Function TRectHelper.GetHeight : Integer;
Begin

With Self Do
Result := Bottom - Top;

End;
//

После чего все переменные типа TRect получают свойства Width и Height.

Комментариев нет: