Недавно обновившись до последней версии Inno Setup 6.0.3, вы столкнулись с появлением белых рамок вокруг изображения в компоненте TBitmapImage. Данная проблема наблюдается, когда ваш дисплей увеличен примерно на 125%. В данной статье мы рассмотрим, как решить эту проблему и вернуть все к нормальному состоянию.
Причина проблемы
Проблема заключается в том, что дисплей, на котором отображается ваше окно MainForm, увеличен/приближен. Когда вы устанавливаете родительский элемент (Parent) для компонента, он автоматически масштабируется в соответствии с целевым дисплеем. Чтобы предотвратить это, необходимо установить родительский элемент до (явного или неявного) установки размера.
Решение проблемы
Чтобы устранить проблему белых рамок вокруг TBitmapImage, выполните следующие шаги:
Создайте экземпляр TBitmapImage и установите его в качестве родительского элемента для MainForm.
Установите свойства Left, Top и AutoSize для TBitmapImage.
Загрузите изображение в компонент BitmapTBitmapImage.
Вот пример кода на Object Pascal (Delphi), иллюстрирующий данное решение:
ExtractTemporaryFile(ExpandConstant('{#BackgroundImage}'));
BackgroundBitmapImage := TBitmapImage.Create(MainForm);
BackgroundBitmapImage.Parent := MainForm; // Установите родительский элемент до установки размера
BackgroundBitmapImage.Left := 0;
BackgroundBitmapImage.Top := 50;
BackgroundBitmapImage.AutoSize := True;
BackgroundBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\{#BackgroundImage}'));
Обратите внимание, что нет необходимости вызывать ExpandConstant для {#BackgroundImage}, так как оно не содержит никаких констант.
Подтвержденный ответ
После внесения этих изменений в ваш код, белые рамки вокруг TBitmapImage должны исчезнуть, и все должно работать так, как и ожидалось.
Альтернативный ответ
Если вы по-прежнему испытываете затруднения, попробуйте явно установить размеры TBitmapImage с помощью свойств Width и Height, а затем установите AutoSize в False, как показано в примере ниже:
Однако, этот альтернативный подход может привести к тому, что изображение не будет отображаться в полной мере, если его размеры не соответствуют размерам TBitmapImage.
Данный текст описывает проблему появления белых рамок вокруг компонента TBitmapImage в Inno Setup 6.0.3 при увеличении дисплея до 125%, а также предлагает решения для устранения этой проблемы.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.