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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2009, 23:59   #1
Эльфийский
Новичок
Джуниор
 
Аватар для Эльфийский
 
Регистрация: 20.08.2009
Сообщений: 5
По умолчанию Delphi Как связать и хранить кучу объектов?

Всем привет, я начинающий программист(любитель) у меня есть задание, но дело всё равно не в этом! Я начал просчитывать алгоритм программы и понял что если я буду создавать кучу объектов(динамически) и хранить их либо в масиве либо в записи, у меня будет большой геморрой с перемещением их из одного места в другое(например даны 2 массива 4 на 4 и мне надо 1 2 переместить во 2 массив 4 3 и при етом чтобы то что находиться на позиции 4 3 сместилось дальше и всё остальное циклически... Но у меня 10 массивов и не 4 на 4 а 150 150 ес не больше)
помогите мож есть чтонить кроме массивов и записей похожее на связь?

если чтото я не так оформил, извините я первый день тут... если удалите ету тему прошу мне в ЛС напишите за что... чтобы я знал... зарание спасибо
Эльфийский вне форума Ответить с цитированием
Старый 21.08.2009, 00:04   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если обьекты(экземпляры классов) то это не так запарно ибо обьект это указатель то есть 4 байта...
перемещается довольно просто...
если же записи, то используй указатели на них и динамическую память(New,Dispose)
перемещать можно с помощью Copy,Insert(помоему можно для массивов)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.08.2009, 00:08   #3
Эльфийский
Новичок
Джуниор
 
Аватар для Эльфийский
 
Регистрация: 20.08.2009
Сообщений: 5
По умолчанию

да с перемещением нету проблем просто лагает зверски когда куча объектов начинает перемещаться из одного массива в другой и при етом им надо сохранять порядок
Эльфийский вне форума Ответить с цитированием
Старый 21.08.2009, 00:13   #4
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Списки? (TList)
пыщь
JTG вне форума Ответить с цитированием
Старый 21.08.2009, 00:15   #5
Эльфийский
Новичок
Джуниор
 
Аватар для Эльфийский
 
Регистрация: 20.08.2009
Сообщений: 5
По умолчанию

я про списки ничего не говорил я про запись говорил а ес я не ошибаюсь запись ето рекорд а не лист)

вот смотрите образно пример приведу
у нас есть дерево из объектов и оно постоянно разветвляться и разветвляться, а тут бац и один из объектов по середине ветки удаляется и вся ветка и её отростки симметрично и не задевая ни один другой объект перебираются в низ... как это сделать с затратой минимума оперативы и прог. кода

Последний раз редактировалось Stilet; 21.08.2009 в 09:08.
Эльфийский вне форума Ответить с цитированием
Старый 21.08.2009, 00:53   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

перечитайте мой пост.
Цитата:
если же записи, то используй указатели на них и динамическую память(New,Dispose)
перемещать можно с помощью Copy,Insert(помоему можно для массивов)
пока НЕ дошло читаем вновь
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.08.2009, 01:00   #7
Эльфийский
Новичок
Джуниор
 
Аватар для Эльфийский
 
Регистрация: 20.08.2009
Сообщений: 5
По умолчанию

блин толи я вилы туплю толи спать хочу...
толи я не вкурю никак толи чёто тут не так
если не сложно объясни для особо одаренных плиз... буду очень признателен и смогу сказать то или не то...
Эльфийский вне форума Ответить с цитированием
Старый 21.08.2009, 01:37   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
type
 PMyRecord=^TMyRecord;
 TMyRecord=record
  I:integer;
  W,S:word;
 end;

var
 A:array of PMyRecord;

----------------------просто удобные функи

function Add(R:TMyRecord):integer;
begin
 SetLength(A,Length(A)+1);
 New(A[Length(A)-1]);
 A[Length(A)-1]^:=R;
end;

functuin Read(i:integer):TMyRecord;
begin
 Result:=A[i]^;
end;

---------------------обычное применение

procedure TForm1.Button1Click(Sender:TObject);
begin
 A[TrackBar1.Position]^.I:=StrToInt(Edit1.Text);
 A[TrackBar1.Position]^.I:=StrToInt(Edit2.Text);
 A[TrackBar1.Position]^.I:=StrToInt(Edit3.Text);
end;
а вообще, читаем учебник по дельфи главы: указатели и динамическая память
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.08.2009, 01:37   #9
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Ну я и говорю используй списки при удалении элемнта предыдущий сам сцепится со следующим
пыщь
JTG вне форума Ответить с цитированием
Старый 21.08.2009, 01:40   #10
Эльфийский
Новичок
Джуниор
 
Аватар для Эльфийский
 
Регистрация: 20.08.2009
Сообщений: 5
По умолчанию

ок спосиб терь ясно завтро попробую так сделать... а пока тема временно закрыта я спать))))
Эльфийский вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как связать среду разработки Delphi, с компонентами Simatic Step 7 Rid Компоненты Delphi 8 26.03.2011 15:02
Как хранить двумерный массив в таблице DBF ИВэТэшка Помощь студентам 1 04.06.2009 15:31
Delphi 7. Помещение рисунков(как отд. объектов) на Panel и соединение их. AlexandЯ Помощь студентам 2 22.04.2009 16:04
Как связать Отчет(qreport) в Delphi c Вордом? KingSize БД в Delphi 2 07.12.2008 11:20
где хранить рессурсы (Delphi) BanDit Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 25.01.2008 00:50