• 0
Menkos1

[Windows] Сворачивание приложение

Вопросы

Форма на FireMonkey

студия: Delphi XE10.1

Суть проблемы:

Запускаю скомпилированное приложение, нажимаю на него на панели задач и ничего не происходит, а должен как и многие другие приложения и папка - сворачиваться и при следующем нажатие - разворачиваться.

Не могу понять, почему приложение не сворачивается.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

28 ответов на этот вопрос

  • 0
2 часа назад, Menkos1 сказал:

Форма на FireMonkey

студия: Delphi XE10.1

Суть проблемы:

Запускаю скомпилированное приложение, нажимаю на него на панели задач и ничего не происходит, а должен как и многие другие приложения и папка - сворачиваться и при следующем нажатие - разворачиваться.

Не могу понять, почему приложение не сворачивается.

 

 

Где то уже это обсуждали по моему. Это глюк (баг или фича) fmx ;)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
32 минуты назад, Vitaldj сказал:

Где то уже это обсуждали по моему. Это глюк (баг или фича) fmx ;)))

Круто, спасибо, попробую поискать то самое "это".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Бага это. У меня, если приложение развернуто на весь экран и нажать на иконку в панеле задач - меняет состояние из (Разверное) в (Нормальные размеры), вместо того что бы принять состояние (Свернутое)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Есть вот такая темка Как свернуть форму, находящуюся в режиме FullScreen?

А вообще, да, была недавно тема, но что-то не найду её...

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

И вот такая тема Скрытие приложения с панели задач. Там ближе к концу обсуждали сворачивание.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
35 минут назад, Andrey Efimov сказал:

Есть вот такая темка Как свернуть форму, находящуюся в режиме FullScreen?

А вообще, да, была недавно тема, но что-то не найду её...

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

И вот такая тема Скрытие приложения с панели задач. Там ближе к концу обсуждали сворачивание.

Прочитал - ничего подходящего не нашел, автору в личку отписал - жду.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 2

кто-то в чатике просил сделать подобное, вот что получилось

FMX.AppMinimized.zip

сворачивание/разворачивание делается, только после разворота не делается активация формы (не было времени с этим разбираться у меня)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
2 часа назад, Равиль Зарипов (ZuBy) сказал:

кто-то в чатике просил сделать подобное, вот что получилось

FMX.AppMinimized.zip

сворачивание/разворачивание делается, только после разворота не делается активация формы (не было времени с этим разбираться у меня)

Спасибо, вставил твой кусок в FMX.Platform.Win.pas от XE10.1 - и все отлично заработало, на счет активации ничего не понял - разницы не заметил после разворота.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
1 минуту назад, Menkos1 сказал:

Спасибо, вставил твой кусок в FMX.Platform.Win.pas от XE10.1 - и все отлично заработало, на счет активации ничего не понял - разницы не заметил после разворота.

А ну значит в Берлине что-то сломали, работает и отлично.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Я верно понял, что с панели задач должно убраться название приложения?

 

А то неясно нужно ли оно, при том что не компиляется ))

[dcc32 Error] FMX.Platform.Win.pas(240): E2291 Missing implementation of interface method IFMXWindowService.CanShowModal

[dcc32 Error] FMX.Platform.Win.pas(240): E2291 Missing implementation of interface method IFMXApplicationService.Running

Изменено пользователем POV

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

компилируете в Токио?

7 часов назад, POV сказал:

Я верно понял, что с панели задач должно убраться название приложения?

нет, не должно убираться. это обычное сворачивание

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Угу, ясно.. а по своим заботам - нашёл файл "FMX.Platform.Win.pas" в Берлине Токио, подключил, получил доступ к хендлу окна и убрал с панели задач. В берлине Токио файло уже дописанное, ручками не потребовало ничего делать.

Изменено пользователем POV

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 07.03.2017 в 08:55, Равиль Зарипов (ZuBy) сказал:

кто-то в чатике просил сделать подобное, вот что получилось

FMX.AppMinimized.zip

сворачивание/разворачивание делается, только после разворота не делается активация формы (не было времени с этим разбираться у меня)

Старая тема, но столкнулся с такой же проблемой, также добавил WM_SYSCOMMAND, точно также после разворота не активировалось окно, пофиксил это дело, выложу тут, может кому пригодится. Такая же проблема ив Tokyo 10.2.2 - хотелось бы, чтобы такой глюк был пофиксен из коробки, хотя бы в следующей версии

WM_SYSCOMMAND:
begin
  if wParam = SC_MINIMIZE then
    PlatformWin.MinimizeApp
  else if wParam = SC_RESTORE then
    PlatformWin.RestoreApp;

  DefWindowProc(HWND, uMsg, wParam, LPARAM);

  sleep(50); // у FMX какая-то беда с потоками, иногда при нажатии по иконуе приложения в TaskBar окно не сворачивается а снова активируется, sleep уменьшает количество таких глюков
  Winapi.Windows.SetActiveWindow(FormToHwnd(LForm)); // после разворота активирует окно - проверил в Berlin и Tokyo 10.2.2
end;

Нужно добавить код в FMX.Platform.Win в функцию function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Может где тему отдельную завести "исправляем ошибки в fmx сами", где наработки подобные собирать? Сегодня часа 4 убил, что бы найти ошибку разработчиков, что бы TLabel всегда выводил правильный шрифт после обновления информации в себе. Кому интересно, файл FMX.Objects.pas, procedure TText.DoSetText(const Value: string);Ищем строчку

FLayout.LayoutCanvas := Canvas;

после неё вставляем

FLayout.Font := Self.Font;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 02/02/2018 в 06:58, sargon сказал:

Нужно добавить код в FMX.Platform.Win в функцию function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;

Старательно последовал этой рекомендации, но ни малейшего результата не наблюдаю. Что могло пойти не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
4 часа назад, Вадим Смоленский сказал:

Что могло пойти не так?

Старые dcu точно удалили?
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
22 минуты назад, Akad сказал:

Старые dcu точно удалили?

Ну, вот сейчас удалил, результат тот же. При щелчке по иконке приложение теряет/возвращает фокус, но не сворачивается.

Я правильно понял, что имеются в виду dcu собственно проекта? Каких-то других dcu ведь нигде не спрятано?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

исправленный FMX.Platform.Win скопировали в папку с проектом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
42 минуты назад, Вадим Смоленский сказал:

Каких-то других dcu ведь нигде не спрятано?

Нет, надо удалить FMX.Platform.Win.dcu из папки ...Embarcadero\Studio\19.0\lib\win32\ debug/release. Ну и естественно положить pas в release.

17 минут назад, wamaco сказал:

исправленный FMX.Platform.Win скопировали в папку с проектом?

И копировать в каждый новый проект? Смысл?

 

Изменено пользователем Akad

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
15 минут назад, wamaco сказал:

исправленный FMX.Platform.Win скопировали в папку с проектом?

Сделал и это. Результат тот же.

По идее, достаточно ведь просто скопировать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Только что, Akad сказал:

Нет, надо удалить FMX.Platform.Win.dcu из папки debug/release. Ну и естественно положить pas в release.

Ага... И тогда, получается, это будет работать только на сборках для релиза, но не для отладки, так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
1 минуту назад, Вадим Смоленский сказал:

Ага... И тогда, получается, это будет работать только на сборках для релиза, но не для отладки, так?

Если где-то не хватит файла - студия скажет. :D
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
7 минут назад, Akad сказал:

Ну и естественно положить pas в release

В смысле, положить FMX.Platform.Win.pas в  ...Embarcadero\Studio\19.0\lib\win32\release ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
17 минут назад, Akad сказал:

И копировать в каждый новый проект? Смысл?

Смысл - не паганить файлы, которые идут со студией. Знать что правили. При переносе на другой компьютер, не заниматься повторением операций по решению проблемы (т.к. со временем забудете).... и т.д. еще могу доводов накидать, но уже и так достаточно!

Изменено пользователем wamaco

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
29 минут назад, Вадим Смоленский сказал:

Embarcadero\Studio\19.0\lib\win32\release

вроде так и написал?

22 минуты назад, wamaco сказал:

Смысл - не паганить файлы, которые идут со студией. Знать что правили. При переносе на другой компьютер, не заниматься повторением операций по решению проблемы (т.к. со временем забудете).... и т.д. еще могу доводов накидать, но уже и так достаточно!

Я всегда ставлю маркер. И после переползания на новую версию смотрю пофиксили баг или нет. Фиксы прилетают раз в 3 мес. в среднем, каждый раз что ли перетряхивать все папки со всеми своими проектами прошлыми и текущими?  Нафиг надо. 1 раз через diff поправил новые файлы и всё. А на другой компьютер - скопировал *.pas из release. Всё.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Нет, что-то не получается, всё выходит по-старому.

Есть ли способ проверить, какая редакция FMX.Platform.Win у меня подхватывается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу