Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Автоматически закрыть TCommonDialog

Delphi , Программа и Интерфейс , Диалоги и Фреймы

Автоматически закрыть TCommonDialog

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
  It is possible to close a common dialog shown by TCommonDialog.Execute 
  (or its overriddens) method while it is visible and application handles messages. 
  The solution is: 

  Es ist moglich einen TCommonDialog der mit TCommonDialog.Execute geoffnet wurde, 
  automatisch zu schliessen wahrend er sichtbar ist. Die Losung ist: 
}


 SendMessage(GetParent(OpenDialog1.Handle), WM_SYSCOMMAND, SC_CLOSE, 0);

Here's the translation of the content into Russian:

Код:

SendMessage(GetParent(OpenDialog1.Handle), WM_СИСТЕМНОЕПОВЕДЕНИЕ, SC_ЗАКРЫТЬ, 0);

Цель: Автоматически закрыть TCommonDialog (или любое диалоговое окно) в то время, когда оно еще видно и приложение обрабатывает сообщения.

Описание:

  • GetParent(OpenDialog1.Handle) возвращает родительское окно диалогового окна (OpenDialog1). Это необходимо потому что SendMessage требует handle окна как первого параметра.
  • WM_СИСТЕМНОЕПОВЕДЕНИЕ - это сообщение Windows, указывающее, что была выдана система команда (например, закрытие окна).
  • SC_ЗАКРЫТЬ - код системы команды для "Закрыть" (то есть закрыть окно).
  • Последний параметр, 0, не используется в этом случае.

Как это работает: Когда вы вызываете SendMessage с этими параметрами, она отправляет сообщение родительскому окну диалогового окна, инструктируя его обрабатывать систему команду. В этом случае, эта команда - "Закрыть". В результате, диалоговое окно будет автоматически закрыто.

Примечание: Это код предполагает, что диалоговое окно еще видно и приложение обрабатывает сообщения. Если диалоговое окно уже было закрыто или приложение не обрабатывает сообщения, это код может не работать так, как ожидалось. В целом, это простой и эффективный способ программно закрыть TCommonDialog в Delphi, когда оно еще видно.

Автоматическое закрытие диалогового окна TCommonDialog может быть выполнено с помощью вызова функции SendMessage в сочетании с Handle диалогового окна и кодом сообщения WM_SYSCOMMAND.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Диалоги и Фреймы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:50:40/0.013938903808594/1