Перейти к содержанию
  • Регистрация
  • 0
Menkos1

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

Вопрос

Форма на FireMonkey

студия: Delphi XE10.1

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

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

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

 

 

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


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

Рекомендуемые сообщения

  • 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
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 у меня подхватывается?

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


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

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

×
×
  • Создать...