Организация окон в приложении SDI Delphi

В приложении Delphi MDI я могу использовать процедуры Tile, Cascade и ArrangeIcons для организации своих дочерних окон, эти методы работают только тогда, когда для свойства FormStyle установлено значение fsMDIForm. Как я могу добиться того же эффекта в SDI application, я имею в виду, как я могу организовать мои открытые окна в приложении, отличном от MDI?


person Salvador    schedule 15.07.2010    source источник


Ответы (2)


Вам придется упорядочивать их вручную, просматривая список TScreen::Forms[], корректируя свойства Left/Top по мере необходимости.

person Remy Lebeau    schedule 15.07.2010
comment
Я поддерживаю ответ Реми и хочу отметить, что если вы поддерживаете несколько мониторов, вам также следует взглянуть на TScreen.Monitors[]. Не очень сложно, но вы должны знать о последствиях. Особенно, если вы хотите, чтобы позиции окон сохранялись между сеансами программы. Например. что, если пользователь перезапустит программу с другой конфигурацией монитора (один вместо двух мониторов, ноутбук, пристыкованный дома, имеет два экрана... в дороге только один...) - person Christian; 16.07.2010

Обычно вам не нужно. Пользователи, которые хотят переупорядочить окна, могут щелкнуть правой кнопкой мыши панель задач и выбрать команды плитки и каскада в контекстном меню. И я видел телевизионную рекламу Windows 7, показывающую, что вы даже можете просто перетаскивать окна определенным образом, чтобы они располагались сами по себе.

Если вы все же хотите ввести команду самостоятельно, используйте TileWindows и CascadeWindows функции API.

person Rob Kennedy    schedule 15.07.2010