0 Members and 1 Guest are viewing this topic.
test_container.Parent := FindObject('W_equalizer');
Invalid class typecast
Пробуй
Был в отпуске и многое пропустил, посему вопрос: Предложение Black_AVP о возможности сохранения частей скина для повторного использования ещё не реализовано? Меня в первую очередь интересует сохранение и использование в дальнейшем Фонотеки. Мысль, что её каждый раз придётся редактировать заново, вводит в ступор.
Можно же делать экспорт ресурсов. Единственный минус - все текстуры скидываются в одну папку.
... Предложение Black_AVP о возможности сохранения частей скина для повторного использования ещё не реализовано?
А где это предложение, что-то уже и не вижу...
Прописать параметры в onLoaded - не помогает?
Можно ли сделать, так чтобы при применении скина со скриптом, значение счётчика которого равно 1, не срабатывал скрипт?
Ключевая функция для доступа к элементам скина и провайдерам (как к пользовательским, так и к внутренним).Синтаксис: Code: [Select]function FindObject(const ObjectName: string): TComponent;
function FindObject(const ObjectName: string): TComponent;
procedure Execute(var State: Integer);var window : TComponent; window_is_max : boolean; begin window := FindObject('AIMPMainForm'); if window <> nil then begin window_is_max := window.Get('Maximize'); if window_is_max then window.Set('Maximize', 'False'); end; end;
Пишет, что не найдено свойство "Maximize", то есть скрипт, получается, обращается к окну, а не к провайдеру.
Так и к источнику данных провайдера тоже напрямую подключиться нельзя.
procedure Execute(var State: Integer);var container, B_max : TComponent; B_max_bindings : TASEBindings; window_is_max : boolean; min_H, min_W, max_H, max_W : integer; begin container := FindObject('liMain'); B_max := FindObject('cmfButtonMaximize'); if container <> nil AND B_max <> nil then begin B_max_bindings := B_max.Get('Bindings'); //восстановление окна, если оно развёрнуто на весь экран window_is_max := B_max_bindings.GetDataAsBoolean('State'); if window_is_max then B_max_bindings.ExecuteAction('Action'); //считывание мин. и макс. размеров контейнера min_H := container.Get('SizeMinimal.Height'); min_W := container.Get('SizeMinimal.Width'); max_H := container.Get('SizeMaximal.Height'); max_W := container.Get('SizeMaximal.Width'); //запись в макс. размеры контейнера его мин. размеров container.BeginUpdate; container.Set('SizeMaximal.Height', min_H); container.Set('SizeMaximal.Width', min_W); container.EndUpdate; //восстановление первоначальных макс. размеров container.BeginUpdate; container.Set('SizeMaximal.Height', max_H); container.Set('SizeMaximal.Width', max_W); container.EndUpdate; end; end;
Первый вопрос:Я просто не могу понять, почему в одном случае при применении скина скрипт со счётчиком равным 1 срабатывает (например, в скрипте открывается окно), а в другом - нет (скрипт меняет размеры контейнеров)?