![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Позиционирование TSaveDialogDelphi , Программа и Интерфейс , Диалоги и Фреймы
Автор: Krid Первый код-снippet - пример позиционирования контрола TSaveDialog при его отображении с помощью переопределения метода WndProc в Delphi. В этом примере класс TMySaveDialog переопределяет метод WndProc, чтобы поймать сообщения WM_NOTIFY и WM_UPDATEUISTATE. Когда эти сообщения получаются, код проверяет, инициализируется ли диалог или обновляется, и если да, то вызывает функцию SetWindowPos для позиционирования диалога на координатах (10, 30) относительно его родительского окна. Второй код-снippet - альтернативное решение, которое достигает того же результата с помощью custom dialog procedure. В этом примере класс TForm1 имеет метод SaveDialog1Show, который задает custom dialog procedure для контрола SaveDialog1. Custom dialog procedure реализуется как standalone-функция NewSaveDlgProc. Эта функция переопределяет стандартный процедуру окна, проверяя, является ли сообщение WM_SHOWWINDOW, и если да, то перемещает окно на желаемую позицию (10, 30) с помощью функции MoveWindow. Оба код-снippets достигают того же результата - позиционирования контрола TSaveDialog при его отображении. Первый snippet использует переопределение метода WndProc, а второй snippet - custom dialog procedure. Некоторые ключевые отличия между двумя подходами:
В целом, оба подхода могут работать хорошо в зависимости от вашей конкретной задачи и ограничений дизайна. Статья описывает два способа изменения положения диалогового окна TSaveDialog в Delphi, один с помощью наследования от TSaveDialog и другой с использованием SetWindowLong и SetWindowPos. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Диалоги и Фреймы ::
|
||||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |