Облака / Clouds
    Go to Copy.com
    Copy.com
    The bast cloud service
    Get 20 GB free!!!
    Support WebDav.
    Show more >>

    Go to Dropbox.com
    Dropbox.com
    time-tested cloud storage
    Support WebDav.
Все бесплатно
    Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.



Вопросы
  Добавить данные в EXE файл и получить их
   Категория: Файловая система
  Удалить или оставить симолы
   Категория: Текст и строки
  Округление в большую сторону
   Категория: Математика
  Отступ в Memo
   Категория: Компоненты
  Перекодировка в DBASE
   Категория: Базы данных
  Создать таблицу ABS (AbsoluteDB)
   Категория: Базы данных
  Как соединить несколько файлов в один
   Категория: Текст и строки
  Как нарисовать календарь
   Категория: Текст и строки
  Удалить лишние символы из строки
   Категория: Текст и строки

Delphi - Справочник: Default

ABCDEFGHIJKLMNOPQRSTUVWXYZ

  << Вернуться  

 Default
1 Indexed property declaration; Default

2 Ordinal property declaration Default Ordinal constant;
Деректива (Unit )
Определяет обработку для property используемую по умолчанию
Описание:
Директива Default используется двумя отдельными, и весьма различными способами со свойствами (property) для установки обработки заданной по умолчанию.

Версия 1

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

Вместо:

myValue := MyObject.GetItem(23);

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

myValue := MyObject.GetItem(23);

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

Версия 2

Имеет намного больше специализированного использования. Она сохраняет порядковое значение свойства, заданное по умолчанию, в run time информации для класса. Его использование выходит за рамки Основ Delphi.
Пример кода: Простой пример

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

  << Вернуться