Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Форум группы: delphi > А знаете ли вы, ЧТО...


Автор: AlekXL 22.11.2012, 21:11
книг о Дельфи сейчас очень мало, а возможности языка растут.
Да не охота читать 10 страниц текста, описывающие особенность языка, которая интуитивно понятна разработчику на примере.
итак, для затравки: 


Автор: AlekXL 22.11.2012, 21:26
в Delphi можно получить доступ к приватным, и строго приватным полям, методам посредством class helper
Код

unit unit1;
type
  TSomeClass=class(TObject)
     strict private
     mPrivateField:integer;
     private
     mpriv2:integer;

  end;
---------------------
unit unit2;

type
 TSomeHelper=class helper for TSomeClass
  public
    function setPrivate(value:integer):integer;

  end;

implementation

function TSomeHelper.setPrivate(value: integer): integer;
begin
  result:=self.mPrivateField;
  self.mPrivateField:=value;
  self.mpriv2:=2;
end;




Добавлено @ 21:37
свойство массив могут быть перегружены по типу индексатора, но только если оно является свойством по умолчанию

Код

type
  tSomeClass=class
    protected
      function getProp(ix:integer):string;overload;
      function getProp(str:string):string;overload;
    public
    property Prop[ix:integer]:string read getProp; default;
    property Prop[ix:string]:string   read getProp;  default;

  end;


implementation

{ tSomeClass }

function tSomeClass.getProp(ix: integer): string;
begin
 result:=intTostr(ix);
end;

function tSomeClass.getProp(str: string): string;
begin
 result:=str;
end;

то же верно и для интефейсов.

Автор: AlekXL 22.11.2012, 21:57
----
В XE3 можно определять хелперы для встроенных типов: integer, string и т.д.
http://blog.marcocantu.com/blog/delphixe3_record_helpers.html

Автор: DarkProg 23.11.2012, 10:32
Эммм... вообще-то это появилось ещё в более ранних версиях делфи...

Автор: Akella 27.11.2012, 21:26
только в XE3

Автор: Akella 27.11.2012, 23:28
http://www.webdelphi.ru/2012/09/modul-s-xelperami-dlya-integer-char-i-tdatetime/

Добавлено через 5 минут и 14 секунд
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=951029&msg=13440798

Автор: DarkProg 28.11.2012, 16:52
Цитата(Akella @  27.11.2012,  22:26 Найти цитируемый пост)
только в XE3 

Хэлпер для класса можно юзать ещё с XE. Другое дело скажем для целых чисел.

Второе так я вообще думаю было очень давно...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)