Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Это Mica, системный материал Windows 11 а не обычный цвет фона. Он работает полноценно только когда окно активно. При открытии или развороте окно временно считается неактивным и Windows показывает нейтральный серый фон. При взаимодействии с окном и получении фокуса Mica начинает учитывать тему и окружение и появляются цвета. Это штатное поведение Windows а не ошибка FMX.При открытии окна инсталлятора окно серое, потом я начинаю двигать и становится с цветами. Пр развороте опять серое. Так и задумано?
В панели задач окно Inno Setup. Оно пустое. Ищу решение. Но скорее всего так и оставлю.Не делал, чтобы в панели задач при наведении показывалась форма?
Вообще не интересуетВ форме выбора Русского языка обрывается троеточием слова, видимо там ещё текст есть в лейбле?
При чем тут "Классик форм"?. Нет и не будет у меня "Классик форм".Классик форм попробуй, на ней вроде работает превью на панели задач. Но цвет конечно топорно работает, когда форму двигать начинаешь как по мне.
Mica - эффект от Microsoft. Я тут только подключил, как было задумано. Если что не нравится при перетаскивании окна - это к дизайнерам Windows, не ко мне.Классик форм попробуй, на ней вроде работает превью на панели задач. Но цвет конечно топорно работает, когда форму двигать начинаешь как по мне.
audiofeel, позвольте вмешаться, там разработчик что-то наделал, толи с каскадностью окон, толи MainForm там главное родительское окно, не помню. Решается вроде посылом сообщения дочернему окну (WizardForm) на замену окна верхнего уровня, попробуйте пример:В панели задач окно Inno Setup. Оно пустое. Ищу решение. Но скорее всего так и оставлю.
[Setup]
AppName=My Application
AppVersion=1.5
CreateAppDir=no
[Code]
function SetWindowLong(Wnd: HWND; Index: Integer; NewLong: LongInt): LongInt; external 'SetWindowLongW@user32.dll stdcall';
function GetWindowLong(Wnd: HWND; Index: Integer): LongInt; external 'GetWindowLongA@user32.dll stdcall';
Function GetWindow(HWND: LongInt; uCmd: Cardinal): LongInt; external 'GetWindow@user32.dll stdcall';
const
GW_OWNER = 4;
GWL_HWNDPARENT = -8;
procedure InitializeWizard;
begin
with WizardForm do
SetWindowLong(Handle, GWL_HWNDPARENT, GetWindowLong(GetWindow(Handle, GW_OWNER), GWL_HWNDPARENT));
end;
В Проводнике Windows тот же самый Mica, но там его почти не видно - всё окно занято контентом, и эффект остаётся в заголовке. У меня это просто пример, чтобы проверить, как Mica работает.Понятно, что эффект виндовс, но выглядит, как я уже сказал - топорно.
Да, это вообще не та DLL, о которой тут все думают - это мой проект. Спасибо за подсказку, буду пробовать. Но чувствую, проблем будет немало: из другого окна картинку передать несложно, но она будет не живой и тем более при сворачивании скорее всего всё пропадает - придётся делать скрины каждый раз. При развороте картинка возможно будет смещаться в окне. В общем, скучно не будет. Почему не выбрал FMX в панели задач? Там то же проблемы которые нужно решать, это заголовок который не соответствует тому что ждет пользователь, это отсутствие иконки, ее то же нужно тянуть. Какие странные траблы со сворачиванием. Поэту выбрал Inno Setup.audiofeel, позвольте вмешаться, там разработчик что-то наделал, толи с каскадностью окон, толи MainForm там главное родительское окно, не помню. Решается вроде посылом сообщения дочернему окну (WizardForm) на замену окна верхнего уровня, попробуйте пример:
Код:[Setup] AppName=My Application AppVersion=1.5 CreateAppDir=no [Code] function SetWindowLong(Wnd: HWND; Index: Integer; NewLong: LongInt): LongInt; external 'SetWindowLongW@user32.dll stdcall'; function GetWindowLong(Wnd: HWND; Index: Integer): LongInt; external 'GetWindowLongA@user32.dll stdcall'; Function GetWindow(HWND: LongInt; uCmd: Cardinal): LongInt; external 'GetWindow@user32.dll stdcall'; const GW_OWNER = 4; GWL_HWNDPARENT = -8; procedure InitializeWizard; begin with WizardForm do SetWindowLong(Handle, GWL_HWNDPARENT, GetWindowLong(GetWindow(Handle, GW_OWNER), GWL_HWNDPARENT)); end;
procedure SetParentThumbnailOnce(ParentHandle, ChildHandle: HWND);
var
ChildDC, MemDC: HDC;
Bitmap: HBITMAP;
OldBitmap: HBITMAP;
R: TRect;
begin
// Скрываем дочернее окно из панели задач
var ExStyle := GetWindowLongPtr(ChildHandle, GWL_EXSTYLE);
ExStyle := (ExStyle and not WS_EX_APPWINDOW) or WS_EX_TOOLWINDOW;
SetWindowLongPtr(ChildHandle, GWL_EXSTYLE, ExStyle);
SetWindowPos(ChildHandle, 0,0,0,0,0, SWP_FRAMECHANGED or SWP_NOZORDER or SWP_NOMOVE or SWP_NOSIZE);
// Берем текущий bitmap дочернего окна
if not GetClientRect(ChildHandle, R) then Exit;
ChildDC := GetDC(ChildHandle);
MemDC := CreateCompatibleDC(ChildDC);
Bitmap := CreateCompatibleBitmap(ChildDC, R.Right, R.Bottom);
OldBitmap := SelectObject(MemDC, Bitmap);
try
BitBlt(MemDC, 0,0,R.Right,R.Bottom, ChildDC, 0,0, SRCCOPY);
if Assigned(DwmSetIconicLivePreviewBitmap) then
DwmSetIconicLivePreviewBitmap(ParentHandle, Bitmap, nil, 0);
finally
SelectObject(MemDC, OldBitmap);
DeleteObject(Bitmap);
DeleteDC(MemDC);
ReleaseDC(ChildHandle, ChildDC);
end;
end;
В принципе я догадываюсь с чем идет сравнение. Но это мой проект.Понятно, что эффект виндовс, но выглядит, как я уже сказал - топорно.