Справочник функций и процедур Delphi: Published

  Навигация по первой букве:

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z

  Навигация по категории:

Compiler directives, Directives, Keywords / Types, Variables, Constants / Functions, Procedures

  Реклама:

 

Published
Деректива
Начинается изданный, внешне доступный раздел класса unit
  
type Class declaration
Published
Field | Property | Method declaration
{...}
end;

Google  
 
Описание
Директива Published начинает раздел объявлений определения класса. В разделе Published, Поля(Fields), Свойства(Properties) и Методы(Methods) объявлены как доступные для этого класса и классов, происходящих от этого, и код используют экземпляры класса. И информация об этих доступах зарегистрирована в рантайм информации для класса.

Поскольку public и published доступ обеспечивает связь видов с внешним кодом, Вы должны избегать везде, где возможно, создание изменений в этих разделах.
Примечания
Предупреждение: избегайте делания полей published - всегда лучше определить свойство, чтобы ним обращаться. Это обеспечивает некоторое разъединение от внутренней организации класса.

Только один Constructor может быть объявлен столь как published - overload версии должны быть определены как public.

Published свойства не могут возвращать массивы.
Похожие команды
Function  Определяет подпрограмму, которая возвращает значение

Private  Начинает частный (Private) раздел данных и методов в классе

Procedure  Определяет подпрограмму, которая не возвращает значение

Property  Определяет управляемый доступ к полям класса

Protected  Начинает раздел класса частных данных доступных подклассам

Public  Начинает внешне доступный раздел класса

Type  Определяет новую категорию переменной или процесса

 
Пример кода : Простой пример
// Полный код Модуля.
// -----------------------------------------------------------
// Вы должны поместить этот код в модуль с именем 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
 


Copyright © 2004-2016 Delphi Sources (источник – "DelphiBasics.ru")
 


Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook