AIMP Forum

AIMP for Windows => Skin Editor, Skin Engine => Вопросы / Questions => Topic started by: BehemothXxx on August 11, 2015, 09:03:33

Title: Как перемещать местами контейнеры
Post by: BehemothXxx on August 11, 2015, 09:03:33
подскажите! может есть возможность контейнер с деревом перемещать местами,например нажал кнопку и он уже не справа а слева?
мне говорили что с помощью ScriptableOperatorCounter можно так сделать,только там не понятно как,справка не помогла,мне бы пример может есть у кого

(http://mepic.ru/up/pic_b/5a8480c634bb4d8567a08b54b26fb62b.png)
Title: Re: контейнер с деревом перемещать местами
Post by: Black_AVP on August 11, 2015, 09:50:47
Для этого достаточно сменить выравнивание контейнера liLibraryContentClientTreePane на laRight. В скрипте это будет выглядеть так:
ContainerName.Set('Alignment', 'laRight');
Title: Re: контейнер с деревом перемещать местами
Post by: BehemothXxx on August 11, 2015, 10:16:38
Для этого достаточно сменить выравнивание контейнера liLibraryContentClientTreePane на laRight. В скрипте это будет выглядеть так:
ContainerName.Set('Alignment', 'laRight');
Вы наверное не правильно поняли! мне нужно сделать кнопку в обложке которая будет менять местами контейнер с деревом,
Title: Re: контейнер с деревом перемещать местами
Post by: Black_AVP on August 11, 2015, 10:23:52
Вы наверное не правильно поняли! мне нужно сделать кнопку в обложке которая будет менять местами контейнер с деревом,
Да, нет, я так и понял. Кнопку надо связать со скриптовым счётчиком, в связи прописать Value + 1, модуль счётчика = 2. Сам скрипт совсем простой:
Code: [Select]
procedure Execute(var State: Integer);
var
  P: TComponent;
 
begin
  P:= FindObject('liLibraryContentClientTreePane');
  if P = nil then Exit;
  if State = 0 then
    P.Set('Alignment', 'laLeft')
  else
    P.Set('Alignment', 'laRight')
end;
Title: Re: контейнер с деревом перемещать местами
Post by: BehemothXxx on August 11, 2015, 11:03:43
Да, нет, я так и понял. Кнопку надо связать со скриптовым счётчиком, в связи прописать Value + 1, модуль счётчика = 2. Сам скрипт совсем простой:
Вот спасибо,все получилось,правда немного не так как я хотел! все таки жаль только что нельзя ето дерево клонировать как и PlaylistTabs,  :(
Title: Re: контейнер с деревом перемещать местами
Post by: Black_AVP on August 11, 2015, 11:38:04
Если нужно, чтоб менялся ещё и вид кнопки (пиктограмма), надо State кнопки связать с Position счётчика.
Title: Re: контейнер с деревом перемещать местами
Post by: Artem on August 11, 2015, 17:10:01
Клонирование элементов негативно сказывается на производительности, с введением возможности перемещать контейнеры, лучше использовать ее.
Title: Re: контейнер с деревом перемещать местами
Post by: BehemothXxx on September 29, 2015, 09:48:35
Code: [Select]
procedure Execute(var State: Integer);
var
  P: TComponent;
 
begin
  P:= FindObject('liLibraryContentClientTreePane');
  if P = nil then Exit;
  if State = 0 then
    P.Set('Alignment', 'laLeft')
  else
    P.Set('Alignment', 'laRight')
end;
у меня есче один вопрос, может можна как нибуть одной кнопкой перемещать контейнер с деревом и есче один контейнер? например дерево справа а контейнер рядом слева а потом дерево слева а контейнер рядом справа
Title: Re: контейнер с деревом перемещать местами
Post by: Black_AVP on September 29, 2015, 21:58:40
у меня есче один вопрос, может можна как нибуть одной кнопкой перемещать контейнер с деревом и есче один контейнер? например дерево справа а контейнер рядом слева а потом дерево слева а контейнер рядом справа
Точно также, просто добавяться ещё строчки для контейнера:
С.Set('Alignment', 'laLeft') и С.Set('Alignment', 'laRight'), где С - имя переменной того самого контейнера, AlignmentLevel контейнера можно задать в свойствах, а можно и в скрипте менять, смотря какая структура нужна.
Title: Re: контейнер с деревом перемещать местами
Post by: BehemothXxx on September 29, 2015, 22:23:22
Точно также, просто добавяться ещё строчки для контейнера:
С.Set('Alignment', 'laLeft') и С.Set('Alignment', 'laRight'), где С - имя переменной того самого контейнера, AlignmentLevel контейнера можно задать в свойствах, а можно и в скрипте менять, смотря какая структура нужна.
мне не понятно,как только что то в скрипт напишу так сразу ничего не работает,
как ето добавить до готового скрипта?
Title: Re: контейнер с деревом перемещать местами
Post by: Black_AVP on September 30, 2015, 10:20:53
мне не понятно,как только что то в скрипт напишу так сразу ничего не работает,
как ето добавить до готового скрипта?
Чтобы было понятно, нужны хотя бы элементарные познания в паскале. В инете полно онлайн учебников, например:
http://mif.vspu.ru/books/pascal/
http://pascal.proweb.kz/index.php?page=2

А если нужен готовый скрипт, так надо так и писать. а не спрашивать "можна" или нет и объяснять задачу досконально или выкладывать свой проект - иначе не получится.
Title: Re: контейнер с деревом перемещать местами
Post by: BehemothXxx on September 30, 2015, 10:55:38
Чтобы было понятно, нужны хотя бы элементарные познания в паскале. В инете полно онлайн учебников, например:
http://mif.vspu.ru/books/pascal/
http://pascal.proweb.kz/index.php?page=2

А если нужен готовый скрипт, так надо так и писать. а не спрашивать "можна" или нет и объяснять задачу досконально или выкладывать свой проект - иначе не получится.
надо чтобы как только переключу дерево в лево,сразу переместился контейнер с обложкой вправо, вобщем надо пример как одной кнопкой перемещать два контейнера
Title: Re: контейнер с деревом перемещать местами
Post by: Black_AVP on September 30, 2015, 14:53:07
надо чтобы как только переключу дерево в лево,сразу переместился контейнер с обложкой вправо, вобщем надо пример как одной кнопкой перемещать два контейнера
Так?
Title: Re: контейнер с деревом перемещать местами
Post by: BehemothXxx on September 30, 2015, 15:03:20
Так?
:)да, Спасибо!
Title: Re: Как перемещать местами контейнеры
Post by: Black_AVP on September 30, 2015, 15:09:22
Только не забывай, что дерево от таблицы фонотеки разделено сплиттером и их размер может меняться, тогда при таком переключении таблица будет "прыгать", что не есть красиво. Это к тому, что стоит ли так делать.
Title: Re: Как перемещать местами контейнеры
Post by: BehemothXxx on September 30, 2015, 16:15:34
Только не забывай, что дерево от таблицы фонотеки разделено сплиттером и их размер может меняться, тогда при таком переключении таблица будет "прыгать", что не есть красиво. Это к тому, что стоит ли так делать.
а если нельзя будет разделять или менять размер дерева,тогда не будет прыгать?
Title: Re: Как перемещать местами контейнеры
Post by: Black_AVP on September 30, 2015, 18:45:08
В данном частном случае таблица остаётся на месте только благодаря тому, что изначальные размеры контейнеров дерева и кавера одинаковы по ширине.
Можно, конечно, убрать сплиттер, задать жёстко размеры контейнеров, запретить их растяжку по ширине. Но удобно ли будет пользоваться таким скином?