Показать сообщение отдельно
  #4  
Старый 14.11.2018, 02:09
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, в принципе, в правильном.
Как я понимаю, у тебя размер картинок одинков?
Тогда так:
1. Загружаем все, повторяю ВСЕ, картинки в память. Можно, конечно, не грузить, просто нужно кол-во картинок на каждом уровне.
2. Ищем самый "широкий" уровень (где больше всего картинок) и запоминаем его общую ширину (включая промежутки между картинками).
3. Теперь рисуем поуровнево. Для текущего уровня опять считаем общую ширину картикок с промежутками и рисуем их от позиции Х как (Wmax - Wlvl)/2 (т.е. ширина уровня с наибольшим кол-вом картинок минус ширина текущено уровня деленная пополам - по сути, ценкровка картинок уровня).
Ответить с цитированием