Разное
Облака / Clouds
The bast cloud service
Get 20 GB free!!!
Support WebDav.
Show more >>
time-tested cloud storage
Support WebDav.
Последние книги
Самое популярное
Все бесплатно
Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.
Навигация
Вопросы
Добавить данные в EXE файл и получить их
Категория: Файловая система
Категория: Файловая система
Удалить или оставить симолы
Категория: Текст и строки
Категория: Текст и строки
Округление в большую сторону
Категория: Математика
Категория: Математика
Как получить размер текстового файла, не открывая его
Категория: Файловая система
Категория: Файловая система
Отступ в Memo
Категория: Компоненты
Категория: Компоненты
Перекодировка в DBASE
Категория: Базы данных
Категория: Базы данных
Создать таблицу ABS (AbsoluteDB)
Категория: Базы данных
Категория: Базы данных
Как соединить несколько файлов в один
Категория: Текст и строки
Категория: Текст и строки
Как нарисовать календарь
Категория: Текст и строки
Категория: Текст и строки
Удалить лишние символы из строки
Категория: Текст и строки
Категория: Текст и строки
Delphi - Справочник: Default
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 |