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

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

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

  Реклама:

|  Сайт 1001 чудо света - рассказы о чудесах света | http://www.xme.ru/ мебель для спален купить мебель для спальни.  |

Default
Деректива
Определяет обработку для property используемую по умолчанию unit
  
1 Indexed property declaration; Default

2 Ordinal property declaration Default Ordinal constant;

Google  
 
Описание
Директива Default используется двумя отдельными, и весьма различными способами со свойствами (property) для установки обработки заданной по умолчанию.

Версия 1

Когда вы имеете одно или более свойств, которые использут индекс как параметр (см. пример и Index для больших подробностей), вы можете определить директиву по умолчанию (Default). Это позволяет вам использовать более компактный способ использования свойства.

Вместо:

myValue := MyObject.GetItem(23);

Мы можем использовать:

myValue := MyObject.GetItem(23);

Это может cделать код более читаемым и компактным, но может и запутать новичков в Delphi - они будут видеть, что MyObject - не массив и будут находить это трудным для нахождения механизма. Особенно, если класс большой.

Версия 2

Имеет намного больше специализированного использования. Она не сохраняет порядковое значение свойства, заданное по умолчанию, в run time информации для класса, а просто сообщает компилятору о том, следует ли хранить текущее значение опубликованное свойство в соответствующий файл "*.dfm".
Похожие команды
Private  Начинает частный (Private) раздел данных и методов в классе

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

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

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

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

 
Пример кода : Простой пример
// Полный код Модуля.
// -----------------------------------------------------------
// Вы должны поместить этот код в модуль с именем Unit1 и с формой
// названную Form1, которая имеет событие OnCreate названное FormCreate.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  // Класс с Индексированными свойствами
  TRectangle = class
  private
    fCoords: array[0..3] of Longint;
    function  GetCoord(Index: Integer): Longint;
    procedure SetCoord(Index: Integer; Value: Longint);
  public
    property Left   : Longint Index 0 read GetCoord write SetCoord;
    property Top    : Longint Index 1 read GetCoord write SetCoord;

    property Right  : Longint Index 2 read GetCoord write SetCoord;
    property Bottom : Longint Index 3 read GetCoord write SetCoord;
    property Coords[Index: Integer] : Longint
             read GetCoord write SetCoord; Default;
  end;

  // Сам класс формы
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Свойство TRectangle подпрограмма 'Получатель'
function TRectangle.GetCoord(Index: Integer): Longint;
begin
  // Только разрешенные допустимые индексные значения
  if (Index >= 0) and (Index <= 3)
  then Result := fCoords[Index]
  else Result := -1;
end;

// Свойство TRectangle подпрограмма 'Установщик'
procedure TRectangle.SetCoord(Index, Value: Integer);
begin
  // Только разрешенные допустимые индексные значения
  if (Index >= 0) and (Index <= 3)
  then fCoords[Index] := Value;
end;

//  Основная линия кода
procedure TForm1.FormCreate(Sender: TObject);
var
  myRect : TRectangle;

begin
  // Создание моего маленького прямоугольника
  myRect := TRectangle.Create;

  //  И установка угловых координат
  myRect.Left := 22;       // Левых, используя прямой метод
  myRect.Top  := 33;
  myRect.SetCoord(2,44);   // Правых, используя индексированный метод
  myRect.SetCoord(3,55);

  // Получение первых двух координат используя имя метода получения
  ShowMessage('myRect coord 0 = '+intToStr(myRect.GetCoord(0)));
  ShowMessage('myRect coord 0 = '+intToStr(myRect.GetCoord(1)));

  // Теперь используя более компактную версию для получения сохранённых координат
  // Это возможно только, когда мы имеем индексированное свойство 'default'
  ShowMessage('myRect coord 1 = '+intToStr(myRect[2]));
  ShowMessage('myRect coord 1 = '+intToStr(myRect[3]));
end;

end.

myRect coord 0 = 22
myRect coord 1 = 33
myRect coord 2 = 44
myRect coord 3 = 55
 


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


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