0 Members and 4 Guests are viewing this topic.
Помогите. Хочу сделать масштабируемую обложку альбома, так чтобы при изменении окна она сохраняла пропорции, но также когда достигнет определённого размера переставала растягиваться, а окно в котором она можно было дальше растягивать.
Делал я растягиваемое окно с сохранением пропопрций кавера
Можно ли как-нибудь упростить(укоротить) скрипт, который меняет одно свойство у нескольких объектов одного вида?У меня скриптом меняется цвет текстовых меток, их больше 10. Лень писать много однотипного текста в скрипте
Если метки обозвать с изменяющимся номером (txt_1. txt_2, .. ,txt_10, например) то можно сделать в цикле по аналогии с https://www.aimp.ru/forum/index.php?topic=27831.msg313880#msg313880
procedure Execute(var State: Integer);var N: Integer; begin for N:= 1 to 3 do FindObject('Label' + IntToStr(N)).Set('Font.Color', $FFFF0000)end;
Read more...Для текстовых меток с именами Label1, Label2, .. LabelN будет выглядеть так:Code: [Select]procedure Execute(var State: Integer);var N: Integer; begin for N:= 1 to 3 do FindObject('Label' + IntToStr(N)).Set('Font.Color', $FFFF0000)end;Конечный параметр цикла подставь свой по числу меток (вместо "3"), цвет в примере красный.
XXX.Set('SizeMinimal.Width', N);XXX.Set('SizeMinimal.Height', N);
procedure Execute(EventData: TComponent);var CC, SMP: TComponent; SizeP : Integer; begin CC:= FindObject('ControlsContainer2'); SMP:= FindObject('SizeMP1'); SizeP:= SMP.Get('Position'); CC.Set('SizeMinimal.Width', (140 + SizeP*8) ); CC.Set('SizeMinimal.Height', (140 +SizeP*8) );end;//SizeMP1 - простой счётчик значение которого изменяются слайдером
Новый вопрос - не работает скрипт почему?
И ещё как узнать текущую высоту контейнера?
Насколько понял, приведённый скрипт у тебя для панели, на событие onResize. Но он будет выполняться только при изменении размеров панели - на то он и onResize.Подключи слайдер к скриптовому счетчику, в нём и напиши скрипт, что тебе нужен, а размеры можно будет вычислять из значения State.
procedure Execute(var State: Integer); var CC: TComponent;begin CC:= FindObject('limpControlsContainer2'); CC.Set('SizeMinimal.Width', (140 + State *10) ); CC.Set('SizeMinimal.Height', (140 +State *10) );end;
Скрипт для изменения размера окна, в частности миниплеера. Чтобы он квадратным оставался. И благодарю.Но всё таки очень хочется сделать без слайдера, так чтобы при изменении размера курсором окно сохраняло пропорции. Можно так сделать? Чтобы провайдер срабатывал при изменении размера.
Ну и ещё вопросик - можно ли через скрипт как нибудь поменять окно-мастер? Я хочу сделать чтобы при сворачивании главного окна окно настроек (в моей обложки Arc) переходило к миниплееру, т.е. оставалось на экране.
Так, всё-таки, что тебе нужно? Я то подумал, что ты хочешь слайдером менять размеры контейнера. А если ресайзить мышкой, то зачем тогда слайдер? Опиши задачу конкретнее, а то, по сведениям от Soolo, телепаты все в отпусках - лето...
Можно положить в него панель, привязать за все стороны с отступом 0 и считывать размеры уже у панели через PlaceInfo.ActualWidth и PlaceInfo.ActualHeight.
Для этого у всех компонентов есть свойство Parent, но как определить переход в миниплеер и состояние плеера (развёрнут/свёрнут)? Вроде, это невозможно.