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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> объекты и вариантная запись 
:(
    Опции темы
zloom
Дата 26.12.2010, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В общем, есть программка для хранения и просмотра объектов 3-х видов. У этих объектов есть 2 общих поля (одно из которых номер под которым объект хранится в массиве) и 2 оригинальных (у каждого вида свои). При реализации этой программки с помощью вариантной записи проблем не возникло при реализации ее с помощью объектов столкнулся с проблемой, где хранить эти объекты возможно ли их хранить в массиве если нет то, как лучше?
и еще вопрос в чем разница между 
Код

room = class
{в описании}

и
Код

room = object
{там же}


PM MAIL ICQ   Вверх
PsiMagistr
Дата 26.12.2010, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Точно не знаю, но по моему использование room = object, устаревшее, пришедшее еще с ТурбоПаскаля.



--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
zloom
Дата 28.12.2010, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



кто нибудь еще может помочь?
PM MAIL ICQ   Вверх
CodeMonkey
Дата 28.12.2010, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

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



object - забудьте. Это старые объекты из TurboPascal-я.

Пример на классах:

Код
type
  TBase = class
  private
    FField1: Integer;
    FField2: String;
  public
    constructor Create(const AField1: Integer; const AField2: String); virtual;
    property Field1: Integer read FField1;
    property Field2: String read FField2;
  end;

  TChild1 = class(TBase)
  private
    FField3: Extended;
    FField4: Boolean;
  public
    constructor Create(const AField1: Integer; const AField2: String; const AField3: Extended; const AField4: Boolean); reintroduce;
    property Field3: Extended read FField3;
    property Field4: Boolean read FField4;
  end;

  TChild2 = class(TBase)
  private
    FField5: Cardinal;
    FField6: Byte;
  public
    constructor Create(const AField1: Integer; const AField2: String; const AField5: Cardinal; const AField6: Byte); reintroduce;
    property Field5: Cardinal read FField5;
    property Field6: Byte read FField6;
  end;

constructor TBase.Create(const AField1: Integer; const AField2: String); 
begin
  inherited Create;

  FField1 := AField1;
  FField2 := AField2;
end;

constructor TChild1.Create(const AField1: Integer; const AField2: String; const AField3: Extended; const AField4: Boolean); 
begin
  inherited Create(AField1, AField2);

  FField3 := AField3;
  FField4 := AField4;
end;

constructor TChild2.Create(const AField1: Integer; const AField2: String; const AField5: Cardinal; const AField6: Byte); 
begin
  inherited Create(AField1, AField2);

  FField5 := AField5;
  FField6 := AField6;
end;

var
  Obj: array of TBase;
begin
  SetLength(Obj, 3);

  Obj[0] := TBase.Create(1, '1');
  Obj[1] := TChild1.Create(2, '2', 3.4, False);
  Obj[2] := TChild2.Create(3, '3', 9, 0);

  Tag := Obj[0].Field1 + Obj[1].Field1 + Obj[3].Field1;

  if Obj[0] is TChild2 then
    Tag := Tag + TChild2(Obj[0]).Field5;
  if Obj[1] is TChild2 then
    Tag := Tag + TChild2(Obj[1]).Field5;
  if Obj[2] is TChild2 then
    Tag := Tag + TChild2(Obj[2]).Field5;

  FreeAndNil(Obj[2]);
  FreeAndNil(Obj[1]);
  FreeAndNil(Obj[0]);
end;


(писал на коленке, могут быть опечатки)


Это сообщение отредактировал(а) CodeMonkey - 29.12.2010, 22:59


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
zloom
Дата 28.12.2010, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



большое спс за помощь осталось только самому разобраться=) с наступающим!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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