Składniki sekcji Published


Składniki sekcji published mają taką samą widoczność jak składniki sekcji public. Różnica polega na tym, że dla składników sekcji published generowana jest informacja o typie w czasie biegu programu - RTTI (Runtime Type Information). RTTI pozwala aplikacji na dynamiczne sprawdzanie pól i właściwości obiektów oraz na określenie lokalizacji ich metod. Delphi używa RTTI do uzyskiwania dostępu do wartości właściwości podczas zapisu i ładowania formularzy z plików (.DFM), do wyświetlania właściwości w Inspektorze Obiektów, i do kojarzenia specjalnych metod (procedur obsługi zdarzeń) ze specyficznymi właściwościami (zdarzeniami).

Właściwości published mogą posiadać tylko ściśle określone typy. Są to: typ porządkowy, łańcuchowy, klasowy, interfejsowy, typ wskaźnika metody. Moga to być typy zbiorowe, z dolna i górną granicą, określone na porządkowym typie bazowym od 0 do 31. (Inaczej mówiąc, zbiór musi się mieścić słowie jedno-, dwu- lub czterobajtowym.) Typy rzeczywiste poza Real48 są również dozwolone. Właściwości tablicowe nie mogą być umieszczane w sekcji published.

Wszystkie metody magą być umieszczane w sekcji published, ale klasa nie może mieć więcej niż jednej metody przeładowanej (overload) o takiej samej nazwie. Pola w sekcji published mogą być tylko typu klasowego lub interfejsowego.

Klasa nie może mieć składników published jeśli nie jest skompilowana z dyrektytwą {$M+}, lub nie pochodzi od klasy skompilowanej z dyrektywą {$M+}. Większość klas ze składnikami published pochodzi od klasy TPersistent, która jest skompilowana z dyrektywą {$M+}, zatem rzadko istnieje potrzeba jawnego używania dyrektywy $M.