0 Members and 1 Guest are viewing this topic.
procedure Execute(var State: Integer); var MLT : TComponent; begin MLT := FindObject('MLGroupingTree'); case State of 0: begin MLT.Set('StyleContent.RowContentOffsets.Top', 8 ); // Отступ сверху MLT.Set('StyleContent.RowContentOffsets.Bottom', 0 ); // Отступ снизу MLT.Set('StyleContent.AlphabeticIndexIndentBetweenCells', 0 ); end; 1: begin MLT.Set('StyleContent.RowContentOffsets.Top', 0); MLT.Set('StyleContent.RowContentOffsets.Bottom', 8 ); MLT.Set('StyleContent.AlphabeticIndexIndentBetweenCells', 0 ); end; end;end;
Скрипт одинаковый и для MLGroupingTree и для MLTableДля второго скрипта вставить MLTable вместо MLGroupingTree.
procedure Execute(var State: Integer);begin with FindObject('MLTable') do begin Set('StyleContent.RowContentOffsets.Top', State); Set('StyleContent.RowContentOffsets.Bottom', State) endend;
В вышеприведённом скрипте строчка:MLT.Set('StyleContent.AlphabeticIndexIndentBetweenCells', 0 )не имеет смысла, поскольку в обоих случаях присваивается одно и тоже значение "0" - его можно задать в свойствах.Лучше одновременно менять отступы Top и Bottom, тогда текст остаётся правильно центрированным по вертикали.Во вложении пример, в которовм слайдером можно менять эти отступы от 0 до 9.Code: [Select]procedure Execute(var State: Integer);begin with FindObject('MLTable') do begin Set('StyleContent.RowContentOffsets.Top', State); Set('StyleContent.RowContentOffsets.Bottom', State) endend;Но, ИМХО, нет смысла выносить это в настройки скина и оперативно менять, достаточно просто указать эти значения в свойствах, применительно к размеру используемого шрифта.
... Плавное же изменение интервала, думаю, лишнее. Я, помимо дефолтного 8, сделал 2.
Дело не в плавности, к скрипту можно подключить и кнопку (и не одну), указав в Action конкретное значение. Вообще, стоит ли этим озадачивать пользователя? Поставь в свойствах значение, которое тебе нравится, полагаю, никто против не будет.