Перейти к содержанию
Fire Monkey от А до Я
  • 0

[Android] Изменить вид кнопки по умолчанию


Kitty

Вопрос

Рекомендуемые сообщения

  • 0

Самый простой способ - отредактировать стиль, добавив копию "donetoolbutton", но обозвав ее иначе, например "donetoolrectbutton".

Создав копию, и обозвав ее "donetoolrectbutton", у вас останется и старый стиль и будет новый (собственный). А вот с "donetoolrectbutton" вы уже можете делать что пожелаете. Т.е. - добавить в слой новый объект - тот же TRectangle.

Можете изменить и "родной" стиль, добавив ему то, что требуется.

 

P.S. Как создать копию... На мой взгляд - проще всего в том же редакторе (например Notepad++).

Ссылка на комментарий
  • 0

Можно ли показать пошаговый урок работы со стилями для моей ситуации?

Я смотрела это видео по работе со стилями: https://www.youtube.com/watch?v=eqrVYWZ8SPk

В этом видео щелкают в дизайне по кнопке правой клавишей мыши и там есть пункт Edit Custom Style. Выбрав этот пункт можно изменить кнопку по своему вкусу. В моем Андроид приложении при выборе кнопки этого пункта в меню правой кнопки нет, поэтому я не понимаю как изменить стиль. :(

Ссылка на комментарий
  • 0
  • Модераторы
В моем Андроид приложении при выборе кнопки этого пункта в меню правой кнопки нет, поэтому я не понимаю как изменить стиль.

Такая кнопка доступна, только когда вы создаёте не мобильный проект.

 

В случае с мобильными проектами, необходимо кидать на форму компонент TStyleBook, в него подгружаете необходимый стиль и прописываете StyleBook в форме, в свойстве StyleBook. Как изменить дизайн конкретного стиля, вам написал AlexG.

 

На форуме есть большой раздел "Стили", посвящённый работе со стилями, там можно найти ответы на многие вопросы.

Вот ещё полезная тема: [Mobile platform] где редактор стилей?

Ссылка на комментарий
  • 0

Спасибо за рекомендации.

 

 

В случае с мобильными проектами, необходимо кидать на форму компонент TStyleBook, в него подгружаете необходимый стиль и прописываете StyleBook в форме,

 

Хотелось бы здесь получить доп. разъяснения...

Евгений Крюков автор FMX, в видео ролике который я привела выше, говорит что загружать полностью стиль в TStyleBook не правильная практика. TStyleBook только для малого числа местных локальных изменений. Хранить полностью стиль TStyleBook не верно, или для мобильных проектов эти рекомендации для TStyleBook не имеют значения? 31 минута 10 секунда видео...

Ссылка на комментарий
  • 0
  • Модераторы

Я тоже стараюсь придерживаться данного правила. По ссылкам, которые находятся выше, я уже писал, что:

Если необходимо внести небольшие изменения в стандартный стиль, например, изменить расстояние между картинкой и текстом в ListBoxItem, то можно создать и подгрузить стиль только с вашим изменением, тогда сам файл (в данном примере) будет весить всего 34 КБ.

Стиль будет весить достаточно мало, и подгружаться быстро.

Ссылка на комментарий
  • 0

 

Самый простой способ - отредактировать стиль, добавив копию "donetoolbutton"

 

Где взять оригинал стиля donetoolbutton?

 

1. Создаю новый мобильный проект.

2. На форму добавляю кнопку StyleLookup=donetoolbutton.

3. Добавляю на форму TStyleBook, чтобы в будущем добавить в TStyleBook фрагмент стиля.

4. Открываю в блокноте файл стиля C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\Redist\styles\Fmx\Light.Style

В файле нет записи donetoolbutton...

В каком файле искать стиль donetoolbutton?

Спасибо.

Ссылка на комментарий
  • 0

Ну вариантов два.

1. Создать собственный стиль.

1.1. Можете скопировать (создать дубль) в редакторе donetoolbutton или подобный (например ButtonStyle), обозвать его на свой лад (например donetoolMYbutton)

post-115-0-77186800-1408979914.png

post-115-0-28163800-1408979920.png

 

1.2. Сохранить файл и загрузить его в контейнер TStyleBook

1.3. Исправить в Вашем варианте то что Вам требуется (добавить элементы, заменить, и т.д. и т.п.)

1.4. Применить изменения

и пользовать для кнопок свой стиль (например donetoolMYbutton)

 

так Вам не потребуется конструировать большую часть элементов кнопки, если таковые есть...

 

2. Раз Ваш проект под Android, то можно загрузить стиль KitKatStyle_XE5, а именно AndroidDark.style или AndroidLight.style

Там уже есть стиль donetoolbutton и Вам потребуется сделать его дубль и соответствующие изменения,

либо изменить просто его так как Вам требуется

 

P.S. Ответ "нарисовал" примерно, не особо вдаваясь в детали. Но думаю, что все будет понятно.

Изменено пользователем AlexG
Ссылка на комментарий
  • 0

 

2. Раз Ваш проект под Android, то можно загрузить стиль KitKatStyle_XE5, а именно AndroidDark.style или AndroidLight.style

Там уже есть стиль donetoolbutton и Вам потребуется сделать его дубль и соответствующие изменения,

либо изменить просто его так как Вам требуется

 

У меня не получаетмя реализовать этот вариант. Проблема в том, что этих файлов AndroidDark.style/AndroidLight.style на моем компьютере нет, поэтому я не могу найти файл в котором могла бы посмотреть как устроен андроид стиль donetoolbutton и соответственно отредактировать его.

Наверное эти файлы надо скачивать откуда-то отдельно?

Ссылка на комментарий
  • 0

Эти стили есть тут (http://cc.embarcadero.com/item/29701)

Не уверен, что тут можно выложить этот архив или стили, так как согласно лицензионному соглашению, насколько я понял, - они бесплатны, их можно использовать в своих продуктах, но нельзя сохранять в проекте эти стили в виде отдельных файлов (в качестве встроенного ресурса - не вопрос).

Так-что в смысле "выложить их тут" - это скорее к нашим гуру (владельцам данного форума).

Если Вы имеете лицензионную копию XE5-6, то по данной ссылке можете скачать их без проблем.

Ссылка на комментарий
  • 0

Большое спасибо. Теперь понимание наступило, а то ищу по своему компьютере стили и найти не могу и не понимаю как выполнить рекомендации. :)

 

P.S.

Скачала, буду пробовать...

Ссылка на комментарий
  • 0

С другой стороны если я могу выбрать в андроид проекте StyleLookup=donetoolbutton, то значит в каком-то файле, помимо выше указанного архива, все же также есть описание стиля donetoolbutton.

Ссылка на комментарий
  • 0

С другой стороны если я могу выбрать в андроид проекте StyleLookup=donetoolbutton, то значит в каком-то файле все же есть описание стиля donetoolbutton.

Есть. В стиле по default

Ссылка на комментарий
  • 0

 

С другой стороны если я могу выбрать в андроид проекте StyleLookup=donetoolbutton, то значит в каком-то файле все же есть описание стиля donetoolbutton.

Есть. В стиле по default

 

О чем и говорилось в ролике, который Вы процитировали (https://www.youtube.com/watch?v=eqrVYWZ8SPk)

Ссылка на комментарий
  • 0
Есть. В стиле по default

 

 

В каком файле храниться стиль андроид default?

Тут его нет: C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\Redist\styles\Fmx\Light.Style

 

 

Скачала архив с AndroidLight.vsf

1. Хочу открыть AndroidLight.vsf в Блокноте, найти стиль donetoolbutton, скопировать его в новый файл и отредактировать его под свои нужды.

Однако в блокноте этот файл выглядит не как текстовый. Не могу в нем найти нужную секцию.

2. Открываю AndroidLight.vsf в программе Bitmap Style Designer. Как вычленить в отдельный текстовый файл информацию которая относиться к donetoolbutton, чтобы потом загрузить этот файл в StyleBook?

Ссылка на комментарий
  • 0

Приношу свои извинения за то, что вероятно ошибся со стилем (так как он под XE5)

Рекомендую Вам скачать архив для XE6 (http://cc.embarcadero.com/item/29808)

Там есть стили под все ОС.

AndroidDiamond

AndroidJet

AndroidSterling

 

Судя по Вашим скринам и в целом - Вам нужен AndroidSterling. Хотя можете попробовать и другие.

Вот там точно есть то что Вам нужно.

 

P.S. Хотя и скачанный Вами AndroidLight.vsf тоже можно загрузить и сохранить как .style

Проблема у него в том, что он не совсем совместим с XE6. Его можно подправить "ручками", чтобы он грузился. Но это уже другая история)...

Изменено пользователем AlexG
Ссылка на комментарий
  • 0

Большое спасибо!

 

Открыла в Блокноте AndroidSterling.style. Есть запись:

  object TLayout
    StyleName = 'donetoolbutton'
    Align = Contents
    Height = 50.000000000000000000
    Width = 50.000000000000000000
    FixedHeight = 48

 

Как правильно сюда добавить рамку? Не могли бы Вы выложить рекомендации как это правильно делать?

Моя попытка была такая - открыла этот файл в StyleBook и затем добавила к стилю donetoolbutton компонент Rectangle align=Client. Как дальше вычленить нужный мне кусок кода из этого дизайнера я не понимаю. :(

Ссылка на комментарий
  • 0

Как получилось у меня:

1.То что вы открыли в Блокноте я полностью скопировал этот

object TLayout
    StyleName = 'donetoolbutton'

  ...

end

 

Сохранил его в отдельный файл, при этом поменял StyleName = 'mydonetoolbutton'

2. На форму бросил StyleBook1, щелкнул на нем два раза попал в редактор. По кнопке Load... выбрал выше созданный файл и его немного подредактировал: добавил Rectangle (Fill.Kind := None; Stroke (рамка) уже есть)

 

ss2.png

 

Немного повозился с размерами и выравниванием. После кнопка Apply and Close

3. Бросаю две SpeedButton, у одного набираю в StyleLookUp = mydonetoolbutton, у другого из списка выбираю StyleLookUp = donetoolbutton.

 

ss3.png

 

Результат достигнут. На непоколебимость данного варианта не претендую, хотелось бы узнать мнение гуру.

Ссылка на комментарий
  • 0

 

3. Бросаю две SpeedButton, у одного набираю в StyleLookUp = mydonetoolbutton,

 

Сделала по пунктам как у Вас. StyleBook присвоила форме. Однако у кнопки в выпадающем списке StyleLookUp нет моего нового стиля. Что и где подправить? С++ Builder XE6.

Ссылка на комментарий
  • 0

У меня не работает. :(

Мой новый стиль donetoolbuttonrec не отображается.

Вообще происходят странные вещи. В первом окне нажимаю Apply в редакторе стиля. Затем закрываю RAD и открываю снова. Вижу что имя поменялось (рис).

 

post-132-0-40945100-1409033539_thumb.jpg

Ссылка на комментарий
  • 0
  • Модераторы

Пожалуйста, все исходники прикрепляйте к сообщению(ям) в виде zip-архива(Правила), а не ссылкой на сторонний сервис. Так будет гарантия, что со временем этот исходник ни куда не пропадёт и люди смогут скачать его.

Спасибо.

Ссылка на комментарий
  • 0

Я бы еще добавил следующее.

Согласно лицензионному соглашению (как я уже писал выше)

Jet, Diamond and Sterling style files are (c) 2014 Embarcadero Technologies, Inc. These additional restrictions are in addition to the terms of the Software License and Support Agreement that accompanies RAD Studio. You may use and distribute the Jet, Diamond and Sterling style files solely as incorporated into the application you create. You may not make the style file sources or individual graphical elements accessible to your end users. You cannot resell or otherwise redistribute or make available standalone Jet, Diamond or Sterling style files (whether unmodified or modified). Certain original design elements by MediaLoot.

Другими словами:

Нельзя выкладывать с проектом, распространять как-либо иначе, в открытом виде (в виде исходного файла) файлы с данными стилями.

Можно крутить/вертеть, но использовать только внутри проекта, а не как отдельный файл.

 

P.S. Ни на что не претендую, но думаю стоит обратить на это внимание. Решение в данном случае лучше принять Ярославу Бровину.

 

P.P.S. С Вашими собственными стилями Вы вольны делать все что угодно)

Изменено пользователем AlexG
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...