-
Постов
82 -
Зарегистрирован
-
Посещение
-
Победитель дней
15
Dmitry_4501 стал победителем дня 2 ноября 2025
Dmitry_4501 имел наиболее популярный контент!
Посетители профиля
6 984 просмотра профиля
Достижения Dmitry_4501
-
Frol отреагировал на ответ на вопрос:
Изменение параметров анимации, определенной в стиле
-
По сути, StylesData обращается к полю типа TDictionary<string, TValue>, и позволяет хранить там свои данные. Можно написать что-то вроде // Запись значений TreeViewItem.StylesData['custom.isLocked'] := true; TreeViewItem.StylesData['custom.id'] := 'id'; TreeViewItem.StylesData['custom.groupId'] := 1234; // Получение значений var isLocked: Boolean := TreeViewItem.StylesData['custom.isLocked'].AsBoolean(); var id: string := TreeViewItem.StylesData['custom.id'].AsString(); var groupId: Integer := TreeViewItem.StylesData['custom.groupId'].AsInteger(); И т.д. Разумеется custom не является обязательным, можно использовать любое.
-
Frol отреагировал на ответ на вопрос:
Изменение параметров анимации, определенной в стиле
-
Допустим, на форме есть кнопка со своим стилем, её стиль выглядит допустим так, и надо найти opacityanimation. Искать надо не от sublayout_6, а от самой кнопки, т.е: Если функция находит нужный объект стиля и возвращает true, то тогда можем работать с переменной _opacityAnimation, ведь в неё придет ссылка на объект анимации из стиля. Всё просто. Но кстати, можно работать и другим способом. Если нужно обратиться к одному или нескольким свойствам какого-то объекта внутри стиля то можно использовать первый способ (желтый) А если нужно получить объект, то есть второй способ (зеленый). В принципе логика можно сказать такая же что и в самом первом способе через FindStyleResource Полезная особенность StylesData. Его можно использовать для хранения любых пользовательских данных.
-
Frol отреагировал на ответ на вопрос:
Изменение параметров анимации, определенной в стиле
-
Я такое поведение реализовал с одними лишь стилями, код вообще не писал. А вот при помощи кода решил другой ваш вопрос (про AlternatingRowBackground) FMXProject.zip
-
Такое поведение было нужно? 20251030-1634-06.2957183.mp4
-
Можно ваш проектик? Хотелось бы самому увидеть структуру вашего стиля и код.
-
Какой StyleName у вашей анимации в стиле? FindStyleResource, StylesData ищут именно по StyleName. К тому же покажите код, как вы ищете анимацию. И да, изменения, внесенные в компоненты стиля будут утрачены после перерисовки (а конкретно после вызова метода ApplyStyleLookup)
-
Как было правильно подмечено Поэтому делать стили компонентам можно в самой RAD Studio. Их даже рисовать не обязательно. При желании можно строить стили компонентов на TRectangle. Хотя есть некоторые моменты, которые доставляют определнные неудобства при работе со стилями.
-
Можно попробовать вот это: https://github.com/neslib/Neslib.Yoga/
-
Dmitry_4501 отреагировал на ответ на вопрос:
Как получить иконку файла или папки?
-
Компонент TPanel в своём стиле строится на компоненте TRectangle, который в свою очередь имеет два прекрасных свойства XRadius и YRadius, которые и отвечают за степень закруглённости углов. Выбираете нужную панель, правая кнопка мыши -> Edit Custom Style
-
AngryOwl отреагировал на ответ на вопрос:
Ошибка сборки программы под RedOS (cannot find -lgcc_s).
-
krapotkin отреагировал на ответ на вопрос:
Ошибка сборки программы под RedOS (cannot find -lgcc_s).
-
Dmitry_4501 отреагировал на ответ на вопрос:
Ошибка сборки программы под RedOS (cannot find -lgcc_s).
-
Tumaso отреагировал на ответ на вопрос:
Ошибка сборки программы под RedOS (cannot find -lgcc_s).
-
В общем. Я решил тоже установить RedOS. Установил на виртуалку. Собрал SDK в Delphi. Попробовал собрать проект - не получилось Тогда я начал искать в сети решения. Нашел как установить gcc и прочие утилиты и библиотеки для разработки. (при помощи команды dnf groupinstall "Development Tools" После установки я решил обновить SDK при помощи кнопки Update Local File Cache По итогу ничего не получилось. Тогда я решил при помощи Beyond Compare сравнить файлы и папки моих SDK (один для RedOS не работающий и второй для Ubuntu полностью рабочий). Я заметил различие в том что в SDK для RedOS отсутствовала папка gcc. Я полез искать эту папку в самой RedOS и нашел её, но почему-то PAServer её не передал во время создания SDK. Зайдя в папку я нашел причину проблемы. Для Ubuntu папка с gcc называется вот так - x86_64-linux-gnu А для RedOS папка с gcc называется вот так - x86_64-redsoft-linux Вот и вся причина. PAServer ничего не знает ни о какой x86_64-redsoft-linux и поэтому при создании SDK её не копирует. Отсюда и ошибка сборки проекта на стадии линковки. В общем, решил эту проблему самым простым способом - создал символическую ссылку ln -s ./x86_64-redsoft-linux ./x86_64-linux-gnu А затем ещё раз в Delphi нажал на кнопку Update Local File Cache После того как процесс обновления файлов SDK завершился я попробовал собрать проект и... Краткое руководство как получить рабочий SDK для RedOS. 1. Загружаем PAServer в систему 2. Выполняем команду dnf groupinstall "Development Tools" 3. В терминале переходим по пути из / в /usr/lib/gcc 4. Создаем символическую ссылку ln -s ./x86_64-redsoft-linux ./x86_64-linux-gnu 5. В Delphi создаем\обновляем (при помощи Update Local File Cache) SDK для RedOS Готово
-
Может поможет создание еще одного SDK но уже для RedOS?
-
Dmitry_4501 подписался на Замечали ли вы у себя такое поведение IDE?
-
Уже давно замечаю такое странное поведение, но увы, отловить пока причину так и не смог. Не сказать бы что это хоть как-то влияет на работу самой IDE. В общем. При открытии и установке пакетов иногда среда может поломать пути в настройках в секции Library, исключительно для Windows 32-bit, для остальных платформ всё нормально. Вот как это выглядит. А вот как выглядит на Windows 64 Разницу заметили? Если нет, то вот в чём она выражается Среда, с какого-то момента изменяет пути таким образом, чтобы ни одной переменной не было. Причём, если добавить новый путь с использованием переменных, то спустя какое-то время и он изменится.
-
gorodoro отреагировал на ответ на вопрос:
Рисование на неклиентской часть окна
-
Letter отреагировал на ответ на вопрос:
Удалить файлы отмеченные
-
Попробуйте вот так (не самый идеальный вариант, но он работает и ошибок не выдает). procedure TForm1.Button1Click(Sender: TObject); begin var selectedItems: TArray<TListBoxItem>; // Объявляем массив из объектов TListBoxItem for var item: TFMXObject in ListBox1.Children.Items[1].Children do // Перебираем каждый дочерний компонент в ListBox, который является экземпляром класса TListBoxItem. begin if item is TListBoxItem then // Проверяем, является ли item экземпляром класса TListBoxItem if TListBoxItem(item).IsChecked then // Проверяем, является ли элемент отмеченным галочкой begin System.SetLength(selectedItems, System.Length(selectedItems) + 1); // Увеличиваем длину массива selectedItems[High(selectedItems)] := TListBoxItem(item); // Вставляем элемент в массив end; end; DeleteAllCheckedFiles(selectedItems); end; procedure TForm1.DeleteAllCheckedFiles(items: TArray<TListBoxItem>); begin if System.Length(items) < 1 then Exit; for var i: Integer := 0 to System.Length(items) - 1 do begin var item: TListBoxItem := items[i]; if Assigned(item) then begin // TFile.Delete(item.Text); item.Free(); // Освобождаем память, тем самым объект уничтожится и больше не будет находиться в списке элементов TListBox end; end; end;
-
Можно увидеть вашу реализацию безрамочной формы и вашей WindowProc?