TBitmapImage визуализируется больше его размера на масштабированном дисплее в Inno Setup 6 - PullRequest
1 голос
/ 10 февраля 2020

Только что обновлен до последней версии Inno Setup v.6.0.3. Но теперь я получаю белые границы на моем TBitmapImage изображении. Приведенный ниже скрипт прекрасно работал с более старой версией 5.

Итак, что же не так с более новой версией и сценарием, который я использовал годами?

Обратите внимание, что у меня есть масштабировал мой дисплей примерно на 125%.

ExtractTemporaryFile(ExpandConstant( '{#BackgroundImage}' ));
BackgroundBitmapImage := TBitmapImage.Create(MainForm);
BackgroundBitmapImage.Left := 0;
BackgroundBitmapImage.Top := 50;
BackgroundBitmapImage.AutoSize := True;
BackgroundBitmapImage.Bitmap.LoadFromFile( ExpandConstant('{tmp}\{#BackgroundImage}')  );
BackgroundBitmapImage.Parent := MainForm;

enter image description here

Ни точный размер изображения не устранил проблему.

ExtractTemporaryFile(ExpandConstant( '{#BackgroundImage}' ));
BackgroundBitmapImage := TBitmapImage.Create(MainForm);
BackgroundBitmapImage.Left := 0;
BackgroundBitmapImage.Top := 50;
BackgroundBitmapImage.Width := 600;
BackgroundBitmapImage.Height := 500;
BackgroundBitmapImage.AutoSize := False;
BackgroundBitmapImage.Bitmap.LoadFromFile( ExpandConstant('{tmp}\{#BackgroundImage}')  );
BackgroundBitmapImage.Parent := MainForm;

1 Ответ

1 голос
/ 10 февраля 2020

Дисплей, в котором находится ваше окно MainForm, масштабируется / масштабируется.

Когда вы устанавливаете .Parent, элемент управления масштабируется до целевого дисплея. Чтобы предотвратить это, установите .Parent перед (неявным) установлением размера.

ExtractTemporaryFile('{#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}', так как это не содержит никакой константы .

...