Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2010, 17:13   #1
Nazar1994
Пользователь
 
Аватар для Nazar1994
 
Регистрация: 25.10.2009
Сообщений: 75
Вопрос Список

Как написать список с нуля (без наследования у Tlist) чтоб туда можно было добавлять любые типи данних на delphi?

Последний раз редактировалось Nazar1994; 03.07.2010 в 17:21.
Nazar1994 вне форума Ответить с цитированием
Старый 04.07.2010, 12:31   #2
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

TRecord не подойдет?
fbus вне форума Ответить с цитированием
Старый 04.07.2010, 12:37   #3
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от Nazar1994 Посмотреть сообщение
чтоб туда можно было добавлять любые типи
данних на delphi?
В списке используй тип данных Variant...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 04.07.2010, 13:07   #4
Nazar1994
Пользователь
 
Аватар для Nazar1994
 
Регистрация: 25.10.2009
Сообщений: 75
По умолчанию

Grag спасибо! А если ето objects игры (Tpul например, Tplane, и те что от них походят).
Nazar1994 вне форума Ответить с цитированием
Старый 04.07.2010, 13:10   #5
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

OleVariant...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 04.07.2010, 18:19   #6
Nazar1994
Пользователь
 
Аватар для Nazar1994
 
Регистрация: 25.10.2009
Сообщений: 75
По умолчанию

Цитата:
OleVariant...
Обявил массив типа olevariant и при присвоении TBitmap -- несовместимость типов.

Последний раз редактировалось Nazar1994; 04.07.2010 в 18:21.
Nazar1994 вне форума Ответить с цитированием
Старый 04.07.2010, 20:11   #7
L_M
Форумчанин Подтвердите свой е-майл
 
Регистрация: 25.02.2008
Сообщений: 289
По умолчанию

Собственно просто список:
Код:
type
    TList=^PList;
    PList=record
        data:TBitmap;   //ну или какой-то другой тип
        next:TList;
    end;

var
    p:TList;
Как-то так...
Упс...
L_M вне форума Ответить с цитированием
Старый 04.07.2010, 21:27   #8
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Чтот не пойму саму идею... Если правильно догадываюсь то можно как в "7"... И через указатели всё...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 04.07.2010, 22:42   #9
Nazar1994
Пользователь
 
Аватар для Nazar1994
 
Регистрация: 25.10.2009
Сообщений: 75
По умолчанию

Цитата:
Чтот не пойму саму идею... Если правильно догадываюсь то можно как в "7"... И через указатели всё...
Например пишу я игру . Создал главный класс от которого наследуются все object игры (патроны, сам игрок, монстры). Мне надо создать класс список в который можно загонять все ети objects для того чтоб я потом мог пройтись по всему списку и просчитать физику например.
Цитата:
Собственно просто список:
Код:

type
TList=^PList;
PList=record
data:TBitmap; //ну или какой-то другой тип
next:TList;
end;

var
p:TList;
Как-то так...
обясните пожалуйста как ето работает и пример использования(мне кажется что в етот список можно загонять только один тип данных )
Nazar1994 вне форума Ответить с цитированием
Старый 05.07.2010, 08:57   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Мне надо создать класс список в который можно загонять все ети objects
Класс-Контейнер:
Код:
  TCont=class
  private
   FObj:TObjectList;
    function GetObg(i: integer): TObj;
  public
   Property Item[i:integer]:TObj read GetObg;default;
   procedure Add(NewObj:Tobject);
   Constructor Create;
   Destructor Free;
  end;
...
{ TCont }

procedure TCont.Add(NewObj: Tobject);
begin
 FObj.Add(NewObj);
end;

constructor TCont.Create;
begin
 FObj:=TObjectList.Create;
end;

destructor TCont.Free;
begin
 FObj:=nil;
end;

function TCont.GetObg(i: integer): TObj;
begin
  if (i>=0)and(i<FObj.Count) then Result:=tObj(FObj[i]) else Result:=nil;
end;
А Сам обьект обьявляй как обычно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка слиянием(1 сорт список+2 сорт список=3 сорт список) Promolol Помощь студентам 0 21.05.2010 23:49
C++. Односвязный список. Уничтожить список Olya90 Помощь студентам 2 10.06.2009 18:52
Список werser Общие вопросы C/C++ 0 27.05.2009 22:50
Данные-проверка-список (список на другом листе) Inbox Microsoft Office Excel 7 26.12.2008 01:43