Delphi. Алгоритмы. Галерея своими руками или как выложить плитками фрэйм

Давно хотел записать это, так как часто пригождается, думаю транслировать на другие языки не составит труда. Итак, вот что у нас получится…

61

Я пока не стал выкладывать никакие картинки, просто хочу здесь описать саму логику алгоритма. Сам алгоритм я взял в книге Дмитрия Осипова по FireMonkey и немного адаптировал под свою задачу.

Итак, пусть есть N картинок заданного размера. Я создал отдельный объект фиксированного размера TPictureFrame и им выложил галерею так, чтобы если плитка не входит – она перемещалась бы на следующий ряд. Саму плитку раскрасил белым и окантовал серым.

Алгоритм выкладывания плиток

Алгоритм достаточно простой – выкладываем в ширину, и если не влезло переносим на следующий ряд. Сами плитки находятся в ObjectList и загружаются туда отдельно.

Вот полный код модуля

Вызов из главного модуля

Ну и модуль фрэйма, в котором мы берем PaintBox и на его Canvas рисуем белым, а кантуем его серым.

 

 

This entry was posted in Delphi, Алгоритмы. Bookmark the permalink.