Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перегрузка [] 
:(
    Опции темы
lukash256
Дата 12.2.2009, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 23.7.2007
Где: Гомель/Беларусь

Репутация: нет
Всего: нет



Добрый день!
пишу класс-контейнер и в качестве одного из его интерфейсов хачу сделать доступ к содержимому по  [],  как к элементам массива.  на С++ это раз плюнуть, а как ето сделать на Code Gear Borland Delphi 2007 ??
спасибо.
PM MAIL ICQ   Вверх
THandle
Дата 12.2.2009, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 65
Всего: 372



lukash256, директива default.

Код

type
  TExampleClass = class
  private
    FStrings: TStringList;
    function GetInteger(Index: Integer): String;
  public
    constructor Create;
    destructor Destroy;
    procedure Add(const S: String);
    property Strings[Index: Integer]: String read GetInteger; default;
  end;

procedure TExampleClass.Add(const S: String);
begin
  FStrings.Add(S);
end;

constructor TExampleClass.Create;
begin
  inherited;
  FStrings := TStringList.Create;
end;

destructor TExampleClass.Destroy;
begin
  FStrings.Free;
end;

function TExampleClass.GetInteger(Index: Integer): String;
begin
  if Index in [0..FStrings.Count - 1] then
    Result := Fstrings[Index];
end;



Код

procedure TForm1.Button1Click(Sender: TObject);
var
  Example: TExampleClass;
begin
  Example := TExampleClass.Create;
  try
    Example.Add('Str');
    { Одно и то же }
    ShowMessage(Example.Strings[0]);
    ShowMessage(Example[0]);
  finally
    Example.Free;
  end;
end;




Это сообщение отредактировал(а) THandle - 12.2.2009, 16:02
PM   Вверх
skyboy
Дата 12.2.2009, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



перегрузка аж в 2007 версии, может, и так есть. но я хотел напомнить о давнем механизме - свойствах-массивах. одно из свойств-массивов может быть default.
код не приведу, потому как по памяти могу ошибиться в синтаксисе - лучше в хелпе посмотреть.
PM MAIL   Вверх
lukash256
Дата 12.2.2009, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 23.7.2007
Где: Гомель/Беларусь

Репутация: нет
Всего: нет



Спасибо ! Понял.

Это сообщение отредактировал(а) lukash256 - 12.2.2009, 16:08
PM MAIL ICQ   Вверх
cemick
Дата 12.2.2009, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 6.7.2006
Где: Санкт-Петербург

Репутация: 2
Всего: 6



propety[integer]: TObject read write ;????
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0457 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.