|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.07.2009, 22:55 | #1 |
Пользователь
Регистрация: 14.07.2007
Сообщений: 40
|
Проблема с Property Sheet
Здравствуйте, я пишу плагин для миранды (на delphi) и у меня появилась необходимость добавить свой пункт в диалог настроек миранды. Диалог настроек это по сути тот же Property Sheet (стандартный контрол windows).
Чтобы добавить диалог настроек необходимо: 1) Создать файл с ресурсами диалога 2) Заполнить специфичную для миранды структуру TOptionsDialogPage (в правильности её заполнения я уверен) и передать её опять же, специфичной для миранды функции MS_OPT_ADDPAGE (тут я думаю тоже всё нормально ) 3) Определить процедуру обратного вызова, в которой будут обрабатываться сообщения предназначеные для диалога. Вобщем все эти шаги я выполнил, пункт в настройки добавился, но контролы (чекбоксы всякие) которые я определил в файле ресурсов почему-то не отображаются. Да и сам диалог, как бы не обновляется - то есть стандартные кнопки ок, отмена, принять не подсвечиваются под курсором мыши (хотя на нажатия реагируют). А если окно какого-нибудь приложения перетащить поверх моего диалога - изображение этого окна останется на диалоге, даже после того как это окно убрать (надеюсь понятно объяснил). Привожу свой файл ресурсов и код процедуры обработки сообщений от диалога: Файл ресурсов: Код:
Код:
Котэ покарает тебя, %username%!
Последний раз редактировалось Longedok; 08.07.2009 в 22:58. |
08.07.2009, 22:58 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
хм...а разве сообщение WM_PAINT обрабатывать не надо?
(перерисовку окна) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
08.07.2009, 23:10 | #3 |
Пользователь
Регистрация: 14.07.2007
Сообщений: 40
|
Ну, в исходниках других плагинов я обработки такого сообщения не видел. Вот код из другого (вполне работающего) плагина:
Код:
http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx
Котэ покарает тебя, %username%!
|
10.07.2009, 21:50 | #4 |
Пользователь
Регистрация: 14.07.2007
Сообщений: 40
|
Точно, надо было обрабатывать это сообщение. Даже не обрабатывать а просто написать в теле обработчика result := false - и дальше это сообщение уже обрабатывается чем-то другим. Не знаю почему не сработал result := false в теле процедуры (вне case ... of).
Котэ покарает тебя, %username%!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Property AuthProxyRetries does not exist indy 10 :( | Crivel | Работа с сетью в Delphi | 8 | 30.03.2020 21:56 |
Error 1 Property 'Item' is 'ReadOnly' | [SK]OzzY | Общие вопросы .NET | 2 | 18.04.2009 23:49 |
Оформление Excel, sheet | ALERDCOM | Помощь студентам | 1 | 11.10.2008 04:41 |