Вопросы и предложения по FireMonkey (FM Platform) (IDE) #1
Начал работу над проектом с использованием FM Platform в Delphi XE4 с первым апдейтом. Соберу-ка здесь все то, что я не понимаю (очень надеюсь кто нить в комментариях подскажет), и то что мне не нравится при работе с этой платформой в самой IDE (разработчикам IDE на заметку так сказать) :)
- Создал проект, решил что все книги стилей у меня будут в отдельном дата модуле, на который будут ссылаться все формы и элементы. Вроде как бы логично. Проблема 1: когда StyleBook находится в дата модуле, дизайнер стилей не позволяет добавлять различные фигуры, а-ля TRectangle. Т.е. дизайнер не выполняет свою функцию. Проблема 2: При открытии формы, у который книга стилей из другой формы или дата модуля в среде выдается ошибка. (подводные камни: вместо дата модуля можно использовать скрытую форму, что решает проблему №1. Такую форму надо создавать первой в проекте при чем без использования Application, чтобы она не стала главной формой приложения. Проблема №2 остается)
- Если я кликаю в поле Fill я кликаю в редактирование градиента, то надо открывать вкладку Gradient, а не Color.
- Направление градиента (круглая вращающееся). Чтобы такое колесо было удобно использовать его надо делать пикселей 100 в диаметре. Колесо лесом, добавить Edit для ввода угла.
- Если форме редактирование цвета я вставляю 6ти байтовый код цвета аля AABBCC, то надо его преобразовывать в #FFAABBCC, а не выдавать ошибку. Большинство графических редакторов позволяют копировать цвет именно в таком формате.
- Конструктор форм и редактор стилей катострофически нуждаются в опции увеличения масштаба. Как можно рисовать мелкие объекты, когда ты не видишь их, какие там градиенты можно настраивать.
- Нужен быстрый способ копировать градиент из Fill в Stroke одного компонента, и вобще копирования градиента из компонента в компонент. Сейчас для дублирования градиента надо открыть окно градиента в исходном элементе, скопировать стартовый цвет, закрыть окно, перейти в целевой компонент, вставить цвет, закрыть окно, вернуться в первое, скопировать конечный цвет и так далее. С двумя цветами уже утомляет, а точно скопировать градиент с несколькими цветами вобще нереально.
- редактор градиентов нуждается в указании позиции точки (0 начало, 1 конец или т.п.), чтобы можно было настроить позицию и цвет, без этого точно не воспроизвести значения. (для работы с градиентами нужно взять и продублировать аналогичные окна, например, из фотошопа)
- Смещения градиентов также дожны настриваться руками. А то половина настройки отображения настраивается в IDE, половина только в коде (т.е. Gradient.RadialTransform.RotationCenter/Angle)
- Создал стилевую книгу, хочу добавить новый стиль, скажем для кнопки. Книга пустая. Что я должен сделать? Вроде раньше надо было перетащить какой нить TRectangle в дизайнер. Перетаскиваю в область дизайнера, ничего. В область дерева стилей, ничего. Жму Cancel, а мой квадрат на форме. Отрываю книгу снова, ввожу в поиске TRectangle, выбираю его, жму Enter. В инспекторе объектов появляются свойства объекта. Визуально сам прямоугольник нигде не наблюдаю, в дереве объектов его тоже нет. Как мне разрабыватывать новый стиль с нуля то? Вобще дерево структуры не меняется при добавлении. Если переоткрыть то вроде добавленный элемент появляется. Добавил прямоугольник, пытаюсь добавить внутрть круг. Визуально он есть, а в структуре нет.
- Допустим, я хочу сделать несколько стилевых книг для Custom Style компонентов. Логика проста, в одной хочу разные варианты кнопок, вдругой нарипример несколько Edit и т.п.. Добавил TSyleBook назвал ее MyStyleBook. Жму на кнопку, выбираю EditCustomStyle. В итоге создается компонент StyleBook2. эй! почему новый то? у меня есть один, хочу чтоыб стиль был в нем! Ок, коли создал 2ю книгу, то давайте свою удалим, а эту переименуем. Удалили MyStyleBook, StyleBook2 переименовали в MyStyleBook. Опять жмем в Edit Custom Style, сохраняем. Вуаля, на форме StyleBook1, моя книга переименовалась сама.
- Как удалить стиль из книги? Основной книге стилей теперь button1style. Del ничего не делает, в контекстном меню ничего нет (стили теперь хранятся в бинарном виде, а не текстом). UPD: в верхней части окна структуры есть кнопка удаления.
Ох. Я видимо не очень корректно понимаю концепцию стилей в FMX. Подскажите кто-нибудь что-нибудь по вопросам описанным выше. Я ведь могу использовать несколько стилевых книг на одной форме? Т..е у формы книга выбрана одна, а кнопке я присваиваю имя стиля из другой, так ведь? почему я тогда не могу запихивать стиль в разные книги и переименовывать их? Вобще это у всех так? Или может у меня что то со средой не так? Да что там про удаление стиля спрашивать из книги. Добавил на custom стиль кнопки TCircle, я его то теперь не знаю как удалить. Как?
Если кто поможет с решением данных проблем то буду признателен.
15.10.2013 в 02:35
15.10.2013 в 10:14
15.10.2013 в 12:45
1. Создаешь на форме объект-контейнер всех стилей (StyleContainer).
2. Создаешь внутри этого объекта стили для элементов.
3. Проверяешь и отлаживаешь их.
3.5 Подключаешь модуль FMX.Styles
4. Кидаешь на форму кнопку и пишешь её обработчик:
TStyleManager.SaveStyleToIndexedBinary(StyleContainer, TFileStream.Create('myStyle.style', fmCreate));
4.5 Гневно стираешь обработчик кнопки - нечего мемлики плодить :)
5. Открываешь StyleBook и загружаешь в неё файл myStyle.style
6. Profit
15.10.2013 в 13:41
4.1 Запускаешь приложение и нажимаешь кнопку с обработчиком :)
15.10.2013 в 13:34
15.10.2013 в 06:57
15.10.2013 в 10:10
нет ХЕ4 в списке поддерживаемых к сожалению. кто нить пробовал?
15.10.2013 в 11:45
15.10.2013 в 09:13
15.10.2013 в 10:11
15.10.2013 в 11:34
15.10.2013 в 12:23
15.10.2013 в 10:21
@Roman Yankovsky: Не пугай народ, Рома :) Никуда редактор стилей из XE5 не исчез. Исчезли только пункты контекстного меню для редактирования стилей контрола. А так пожалуйста, кидаешь на форму StyleBook и создаешь стиль. Правда он глючить стал ужасно. После нескольких открываний-закрываний вываливает AV и смещается внутри родительского окна.
15.10.2013 в 10:07
скачал вчера IDE Fix pack, мб поможет чем, надо проверить.
15.10.2013 в 11:11
15.10.2013 в 11:05
15.10.2013 в 20:29
15.10.2013 в 22:09
16.10.2013 в 11:53