Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 04.03.2019
Сообщений: 68

Как закрыть окно с сообщением

04.02.2020, 20:38. Показов 4775. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте форумчане, здесь возник небольшой вопрос по поводу закрытия простого ShowMessage(''), как сделать это программно, а именно нажать на кнопку ОК, то есть с имитировать клик за пользователя.Не подскажите ли, как это сделать, причем, если данный код не решает проблему.

Delphi
1
2
3
ShowMessage('fdg');
p:=FindWindow(nil, 'Project1'); - заголовок этого окна сообщения.
SendMessage(p, WM_CLOSE, 0, 0);
Здесь, конечно закрывается, но только форма, и после того как вручную кликаешь на OK, как сделать чтобы кликнуть программно, как будто это сделал пользователь.

Delphi
1
Btn:=FindWindow(p, 0, nil, 'OK');
пробовал и так конечно, но дискриптор оказывается не найден, или даже, если он и будет найдет не очень верится что это сработает. Так что делать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.02.2020, 20:38
Ответы с готовыми решениями:

Вывести окно с сообщением после того как закончил вводить текст в Memo, который был выведен в RichEdit
Здравствуйте, ситуация такова. На форме есть кнопки начать и установить шаблон, после нажатия на начать выводит текст в RichEdit. И тип...

Как создать кнопку, выводящую окно с сообщением?
Как создать кнопку на Win32 Api? :help: Внизу код моей первой программы:). Я хочу сделать так, чтобы над строчкой...

Как закрыть окно формы и открыть окно другой
Код такой. Нужно по нажатии кнопки закрыть форму 1 и открыть форму 2... но, что-то так не работает private void button2_Click(object...

4
Модератор
4146 / 2357 / 812
Регистрация: 15.11.2015
Сообщений: 9,433
04.02.2020, 20:43
ShowMessage создаёт модальное окно и p:=FindWindow(nil, 'Project1'); сработает только после того, как будет нажата "Ок" и окно закроется.

Лично я рекомендую не использовать ShowMessage и подобные модальные окна для сообщения. Лучше внизу окна программы поставить ListBox для сообщений.
А если хочется именно окно с сообщением, то можно создать своё окно с блэкджэком таймером, который закроет окно.
0
561 / 230 / 88
Регистрация: 11.07.2015
Сообщений: 817
04.02.2020, 22:52
Примерно так по таймеру.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.Button1Click(Sender: TObject);
begin
  Timer1.Enabled := True;
  ShowMessage('My message');
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
var
  h: HWND;
begin
  h := FindWindow(nil, PChar(Application.Title));
  if h <> 0 then
  begin
    Timer1.Enabled := False;
    SendMessage(h, WM_CLOSE, 0, 0);
  end;
end;
1
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,612
05.02.2020, 03:37
Цитата Сообщение от Сергей_029 Посмотреть сообщение
Здравствуйте форумчане, здесь возник небольшой вопрос по поводу закрытия простого ShowMessage(''), как сделать это программно
А зачем?
Цитата Сообщение от AzAtom Посмотреть сообщение
Лично я рекомендую не использовать ShowMessage и подобные модальные окна для сообщения.
Сообщение сообщению рознь. Если сообщение выведено для того чтобы пользователь решил выбрать какое-то решение, то альтернативы модальному окну практически нет.
0
Модератор
 Аватар для D1973
9924 / 6460 / 2457
Регистрация: 21.01.2014
Сообщений: 27,410
Записей в блоге: 3
05.02.2020, 04:35
Цитата Сообщение от northener Посмотреть сообщение
Если сообщение выведено для того чтобы пользователь решил выбрать какое-то решение...
Но тогда и используется отнюдь не ShowMessage()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.02.2020, 04:35
Помогаю со студенческими работами здесь

Как закрыть или скрыть основное окно и открыть дочернее, и как потом закрыть дочернее окно и открыть основное
Здравствуйте, передо мной возникла проблема, с которой я не могу справиться. Суть проблемы в том, что мне необходимо, чтобы по клику по...

как сделать так,чтобы когда я нажимаю кнопку закрыть в правом верхнем углу выходило окно сообшение?(типа вы хотите закрыть программу/да или нет/)
как сделать так,чтобы когда я нажимаю кнопку закрыть в правом верхнем углу выходило окно сообшение?(типа вы хотите закрыть программу/да или...

Как убрать окно с сообщением "Обновления для Office готовы к установке, но ."?
При открытии любого файла Office(Аксес, Ворд, Ексель) стало появляться окно с сообщением: &quot;Обновления для Office готовы к установке,...

Вывести окно с сообщением
всем привет, как можно вывести окно с сообщением о том что надо ввести свое имя, если имя не введено, повторно запрашивается? спасибо....

Как закрыть окно?
Нужно чтобы при нажатии на ссылку, закрылся окно, до момента пока пользователь не покинет сайт. делал так &lt;a...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru