procedure Execute(Sender, Arguments: TComponent);
begin
FindObject('BT').Set('PlaceInfo.Margins.Left', Arguments.Get('X')-(FindObject('BT').Get('PlaceInfo.Size.Width')/2) );
FindObject('BT').Set('PlaceInfo.Margins.Top', Arguments.Get('Y')-(FindObject('BT').Get('PlaceInfo.Size.Width')/2) );
end;
procedure Execute(Sender, Arguments: TComponent);
var scaling: Double;
begin
scaling := BindingsGetDataAsInteger('AIMPMainForm', 'CurrentDPI') / 96;
FindObject('BT').Set('PlaceInfo.Margins.Left', Arguments.Get('X')/scaling - FindObject('BT').Get('PlaceInfo.Size.Width')/2);
FindObject('BT').Set('PlaceInfo.Margins.Top', Arguments.Get('Y')/scaling - FindObject('BT').Get('PlaceInfo.Size.Width')/2);
end;
А если так
Тут явно багВ случае с контейнерами это багом не считалось.
В случае с контейнерами это багом не считалось.
Что именно? Текущий размер контейнера?Да
Да
Размер возвращается в пикселях ровно тот, который контейнер занимает.Да, в этом и проблема. Не вижу практического применения этому размеру при создании скина.
А вот если скин не будет поддерживать масштабирование, то и этот размер будет возвращаться = 100%, т.к. растягивание будет происходить самого окна, а не контейнера.Не понял, скины с поддержкой масштабирования и без нее работают с контейнерами по-разному? Можно поподробнее?
Да, в этом и проблема. Не вижу практического применения этому размеру при создании скина.Не понял, скины с поддержкой масштабирования и без нее работают с контейнерами по-разному? Можно поподробнее?
Кстати, в справке у свойства объекта PlaceInfo.ActualXXX и у свойств контейнера Width/Height одинаковое описание: "реальные размеры элемента (только чтение).", при этом одно возвращает размер с учетом масштаба, а другое - без.
Вы до этого размеры контейнера как получали? Через что-то еще?Размеры контейнера получал через Width/Height, потом применял костыль как в посте выше.
PlaceInfo.ActualXXX возвращают размеры для масштаба в 100%, не важно какой он и кем обрабатывается.Да, логично было бы, если б у контейнера тоже было свойство, возвращающее размеры для масштаба в 100%.
Вот, попробуйте на этой сборке:
https://yadi.sk/d/U_XW1N9m3VGRgJ
Сейчас должно быть все нормально
Размеры контейнера получал через Width/Height, потом применял костыль как в посте выше. Да, логично было бы, если б у контейнера тоже было свойство, возвращающее размеры для масштаба в 100%.
Нужно запрашивать ActualWidth и ActualHeight, они возвращают размеры независимые от dpi.У контейнеров нет таких свойств.
У контейнеров нет таких свойств.