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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2011, 22:57   #1
Mariacho
 
Регистрация: 18.02.2011
Сообщений: 5
Вопрос Как объединить изображения и работать с ними в делфи

Всем привет.
Возможно этот вопрос уже задавали.. но все же погуглив я не нашел ответа конкретно на свой вопрос;

Вообщем, такое дело;
У меня в проге планируется куча мелких изображений, возможно ли как-нибудь их назвать отдельным элементом и обращаться к нему?
например, я хочу убрать эти объекты с экрана, т.е. пишу group.visible:=false и все 100 объектов стают невидимы;

Кроме этого возможно ли так сделать, что когда к примеру объект А приближается к любому из объектов группы GROUP, то совершить какое-то действие..

~делфи изучаю самостоятельно, дня 3-4, поэтому сильно не пинайте за такой вопрос)

Последний раз редактировалось Mariacho; 12.04.2011 в 23:03.
Mariacho вне форума Ответить с цитированием
Старый 12.04.2011, 23:14   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Реализовать для этого класс на основе Tlist=)
Человек_Борща вне форума Ответить с цитированием
Старый 12.04.2011, 23:25   #3
Mariacho
 
Регистрация: 18.02.2011
Сообщений: 5
По умолчанию

пожалуйста подробнее)
а если будет пример, то вообще замечательно
Mariacho вне форума Ответить с цитированием
Старый 12.04.2011, 23:30   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Читаем в книгах(и интернетах) про реализацию собственных классов. Там будет понятно, и всё расписано. И примеры будут.
Класс Tlist вам подойдёт.

Исходить вам надо из того что, ваш класс это 1 группа, много групп много классов.

При желании можно организовать класс грурры и класс списка груп.

Последний раз редактировалось Человек_Борща; 12.04.2011 в 23:41.
Человек_Борща вне форума Ответить с цитированием
Старый 13.04.2011, 11:03   #5
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Код:
formpaint (sender : tobject);
var i : integer;
begin
if group.visible
  then begin
  for i := group.minindex to group.maxindex do
  group[i].paint;
// другая отрисовка
end;
естественно объявить класс Tgroup и переменную/поле формы group.
ну и, конечно, учить ооп и вообще програмирование, для создания необходимого функционала класса.
захотите разные группы - создаете разные и в формпейнте рисуете всё что захотите.

коллизии(столквения, по-нашему), конечно, тоже можно реализовать в классе, но там посложнее будет, особенно если групп много.

у меня есть исходнички отдаленно похожей штуки, но могу предоставить только без саппорта, ну или с саппортом, но не бесплатно, ибо сейчас времени кому-то уделять просто так не могу, много своих проектов висит
phomm вне форума Ответить с цитированием
Старый 13.04.2011, 17:40   #6
Mariacho
 
Регистрация: 18.02.2011
Сообщений: 5
По умолчанию

phomm твой вариант понятен, я так и сделаю в крайнем случае; просто будет довольно не рационально делать в моей проге;
При движении объекта я каждый раз должен буду прогонять весь цикл на проверку объекта.. если например у меня будет 1000 картинок в этом массиве, то получается каждое нажатие клавиши он будет прогонять столько вариаций.. это не есть хорошо(

... Если по-другому не выйдет.. то придется сделать так.
Человек_Борща завтра вечером попробую вникнуть в создание собственных классов;

Спасибо за помощь, однако тема еще актуальна;
Мне кажется делается это намного проще..
Mariacho вне форума Ответить с цитированием
Старый 13.04.2011, 17:42   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Мне кажется делается это намного проще..
цикл на чужих плечах это проще?
может их на панель закинуть, тогда убрать все будет легко.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 13.04.2011 в 18:09.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.04.2011, 18:03   #8
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 369
По умолчанию

Создается компонент Panel, на него ложатся компоненты Image cо своими изображениями. Хочешь скрыть все изображения на панели:
Код:
Panel1.Visible:=false;
наоборот:
Код:
Panel1.Visible:=true;
.
Программирую по необходимости
tsar_ вне форума Ответить с цитированием
Старый 13.04.2011, 22:56   #9
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

тормозность будет зависеть от того как Вы сами напишете, например
Код:
procedure tgroupimg.paint...
begin
if changed // при установке новых координат указали, что объект изменил положение и надо переисовать, при этом changed поставили true 
  then begin
  // рисуем
  changed := false;
  end;
end;
из приведенного кода видно, что отрисовка постигнет только тех, кто поменял положение.
В общем случае, любые интеракции с кучей объектов требуют перебора )) так что без этого никак, просто кое-где оптимизируйте и всё будет гуд
phomm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы *.blb что это такое и как с ними работать brato4karik Общие вопросы Delphi 1 15.04.2010 17:10
модули в Си, как с ними работать? elka Помощь студентам 8 09.01.2010 02:57
делфи отказываеться работать, как исправить? zotox Свободное общение 1 08.12.2008 22:37
Как в Microsoft Visual Basic 6.0 открыть Exel файл, считать с него данные(числа) и дальше работать с ними Dimon88 Microsoft Office Excel 7 20.10.2007 13:30
Где найти коды, подключение, синхронизацию Motorola p2k с ПК и как с ними работать? Captain Nemo Свободное общение 0 02.10.2007 11:10