Разное
Облака / Clouds
The bast cloud service
Get 20 GB free!!!
Support WebDav.
Show more >>
time-tested cloud storage
Support WebDav.
Последние книги
Самое популярное
Все бесплатно
Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.
Навигация
Вопросы
Быстрое копирование файлов
Категория: Файловая система
Категория: Файловая система
Компоненты TrackBar и ScrollBar
Категория: Компоненты
Категория: Компоненты
Поиск по EasyTable
Категория: Базы данных
Категория: Базы данных
Удалить пробелы в начале и конце
Категория: Текст и строки
Категория: Текст и строки
Отступ в Memo
Категория: Компоненты
Категория: Компоненты
Автоматическое определения кодировки текста
Категория: Текст и строки
Категория: Текст и строки
Удалить лишние символы из строки
Категория: Текст и строки
Категория: Текст и строки
Как получить размер текстового файла, не открывая его
Категория: Текст и строки
Категория: Текст и строки
Изменить пароль для Paradox
Категория: Базы данных
Категория: Базы данных
Узнать запущен ли сервис FireBird
Категория: Интернет и Сети
Категория: Интернет и Сети
Delphi - Справочник: Published
Published
|
type Class declaration Published Field | Property | Method declaration {...} end; |
Деректива (Unit )
|
Начинается изданный, внешне доступный раздел класса
|
Описание:
|
Директива Published начинает раздел объявлений определения класса. В разделе Published, Поля(Fields), Свойства(Properties) и Методы(Methods) объявлены как доступные для этого класса и классов, происходящих от этого, и код используют экземпляры класса. И информация об этих доступах зарегистрирована в рантайм информации для класса. Поскольку public и published доступ обеспечивает связь видов с внешним кодом, Вы должны избегать везде, где возможно, создание изменений в этих разделах. |
Пример кода: Простой пример
|
// Полный код Модуля. // ----------------------------------------------------------- // Вы должны поместить этот код в модуль с именем Unit1 и с формой // названную Form1, которая имеет событие OnCreate названное FormCreate. unit Unit1; interface uses Forms, Dialogs, Classes, Controls, StdCtrls, SysUtils; type // Определение базового класса TSquare : TSquare = class private // Известный только внутренне squareArea, squareWidth, squareHeight : Integer; Published // Известный внешне: также имеет информацию во время выполнения property width : Integer read squareWidth; property height : Integer read squareHeight; property area : Integer read squareArea; constructor Create(width, height : Integer); end; // Определение класса формы используемой этим модулем TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} // Вложение определений формы // Создание объекта TSquare constructor TSquare.Create(width, height: Integer); begin // Сохранение ширины и высоты squareWidth := width; squareHeight := height; // И вычисление и сохранение площади квадрата squareArea := width * height; end; // Основная линия кода procedure TForm1.FormCreate(Sender: TObject); var mySquare : TSquare; begin // Создание объекта square mySquare := TSquare.Create(30, 40); // Каковы атрибуты квадрата ? : ShowMessageFmt('Площадь квадрата = %d * %d = %d', [mySquare.width, mySquare.height, mySquare.area]); end; end.
Результат:
|
Площадь квадрата = 30 * 40 = 1200 |
Примечание:
|
Предупреждение: избегайте делания полей published - всегда лучше определить свойство, чтобы ним обращаться. Это обеспечивает некоторое разъединение от внутренней организации класса. Только один Constructor может быть объявлен столь как published - overload версии должны быть определены как public. Published свойства не могут возвращать массивы. |