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

AngryOwl

Пользователи
  • Постов

    394
  • Зарегистрирован

  • Посещение

  • Победитель дней

    45

Весь контент AngryOwl

  1. Друзья, подскажите! Возможно ли заполнение TListView картинками и надписями в DesignTime без использования LiveBinding? (Интересует только TListView) P.S. Думаю нашим гуру, разработчикам FMX, не составит труда ответить на данный вопрос!? Интересует заполнение именно в DesignTime, статическими данными (текст и иконки)
  2. Первое что попалось "под руку" при поиске: http://community.embarcadero.com/index.php/blogs/entry/bluetooth-le-support-in-rad-studio-xe7 http://www.youtube.com/watch?v=LcACJNNCkFo http://www.youtube.com/watch?v=oeyGzuC_QqU А вообще - гугл в помощь ("delphi xe7 Bluetooth")
  3. В XE7 есть GotoVisibleTab. В Вашем случае будет так (без необходимости указывать "направление") TabControl1.GotoVisibleTab(TabItem2.Index);
  4. Я абсолютно согласен с Ярославом на счет "основы работы с вещественными числами", просто хочу добавить, что тоже сталкивался с такими ситуациями, но не считаю их за проблему и решал простыми условиями типа if Trunc(Height) = 80 then AnimationFloat('Height', 150); if Trunc(Height) = 150 then AnimationFloat('Height', 80); Только вот писать их друг за другом не рекомендую. Условие нужно изменить на типа: if Trunc(Height) = 80 then AnimationFloat('Height', 150) else if Trunc(Height) = 150 then AnimationFloat('Height', 80); так как в Вашем случае может возникнуть ситуация, когда высота элемента может измениться уже до проверки второго условия (хотя на практике это случается очень редко). Либо тогда "дождаться" изменения высоты и написать так: if Trunc(Height) = 80 then AnimationFloatWait('Height', 150); if Trunc(Height) = 150 then AnimationFloat('Height', 80);
  5. Добрый день! Думаю что "суть" здесь ни при чем. Я думал, при создании примера, об ошибке, возникшей у Вас, а не о деталях того как "раскрывается"... Однако, если я правильно Вас понял, то Вам просто нужно заменить код процедуры в примере который я приложил к предыдущему комментарию. код процедуры procedure TForm2.ListBox1ItemClick(const Sender: TCustomListBox; const Item: TListBoxItem); заменить на procedure TForm2.ListBox1ItemClick(const Sender: TCustomListBox; const Item: TListBoxItem); var i, j : Integer; begin for i := 0 to TCustomListBox(Sender).Items.Count - 1 do if TListBoxItem(TCustomListBox(Sender).ListItems[i]) <> Item then begin if TListBoxItem(TCustomListBox(Sender).ListItems[i]).Height <> 0 then TListBoxItem(TCustomListBox(Sender).ListItems[i]).AnimateFloat('Height', 0, 0.3); end else if TListBoxItem(Item).Height = 32 then TListBoxItem(Item).AnimateFloat('Height', TListBoxItem(Item).HelpContext, 0.3) else for j := 0 to TCustomListBox(Sender).Items.Count - 1 do if TListBoxItem(TCustomListBox(Sender).ListItems[j]).Height <> 32 then TListBoxItem(TCustomListBox(Sender).ListItems[j]).AnimateFloat('Height', 32, 0.3); end; И будет Вам счастье... А уж с "высотами" - играйтесь сами, как Вам требуется. P.S. И, кстати, поймите правильно - разбираться детально в том, что Вам нужно, Вам придется самому. Я лишь показал пример как это работает (без ошибок вроде) и, практически, так как Вам надо и в двух вариантах. А условия того как что должно "сворачиваться" и "раскрываться" поставьте сами. Мне кажется все достаточно просто и прозрачно.
  6. Доброй ночи! Я не стал динамически создавать элементы "меню". Просто накидал их на форму. Можно сильно "помудрить", чтобы привести все возможные варианты к единому коду, но что-то мне влом было писать (смотрите заремленный кусочек). А для примера использовал свойство HelpContext... Вообщем все в приложении. Думаю, там все достаточно просто и понятно. Все раскрывается так, как Вы описали, с анимацией. MenuEx.zip
  7. Желание есть. Вопросы действительно интересные и имеют большое практическое значение. Будем изучать и обсуждать (это я за себя говорю).
  8. AngryOwl

    Xe6 глюки TLang

    Не возникает. Конечно тестили. В нашем приложении именно так реализовано. (пока бетка, скоро обновим, но все работает) P.S. Надеюсь модератор не воспримет ссылку "неверно") (если что - могу удалить)
  9. Добрый день! Думаю - родными средствами никак. Насколько я разобрался - FMX (библиотека работы с камерами) не генерирует потока как такового. Генерируются изображения (отдельные фреймы/кадры), которые мы и получаем на выходе. Мультимедийные функции в FMX пока слабо развиты, и приходится многое делать ручками, исправляя и дополняя родные библиотеки. Причем кадры формируются с разрешением установленным ОС и устройством по умолчанию, что очень сильно влияет на загрузку устройства и производительность. Данный вопрос уже обсуждался здесь на форуме. Однако это не относится к Вашему вопросу. В Вашем случае - либо все писать самому, либо - сторонние библиотеки (что-то типа этого). P.S. Весь мир уже в "мультимедиа". Хотелось бы, чтобы и Embarcadero тоже не отставала в этом направлении, делая все время упор на корпоративный сектор в сфере работы с БД.... А то слабовато выглядит FMX в этом направлении. P.P.S. Кстати, - если у Вас есть решение вопроса и оно не приватное, то многим наверное хотелось бы его видеть. Я лично - был бы очень признателен, если бы Вы поделились им с нами)) (Либо стоит самим поработать в данном направлении. Очень важный вопрос все-таки. Странно видеть решение по выводу изображения с камеры, и при этом не иметь решения его записи как видео, а не только картинки щелкать).
  10. AngryOwl

    Xe6 глюки TLang

    Не хочется "никого" обижать)), но TLang - самый глючный компонент из всех с чем мне приходилось иметь дело. Тут, на счет "эмоций", я с Вами полностью согласен. Поэтому - рекомендую либо самому писать, либо искать адекватное стороннее решение. На публикацию своего решения у меня пока, к сожалению, нет времени. Как только появится время для того чтобы его оформить в виде компонента и библиотеки - обязательно сделаю и выложу в свободный доступ. P.S. Свое решение основано на простых текстовых INI-файлах. Работает везде, в т.ч. и на мобильниках, и очень быстро. Над удобством стоит конечно поработать, но в текущий момент меня собственное решение более чем устраивает.
  11. Думаю, Вам стоит их разбить на отдельные темы. Это во-первых. И тому есть ряд причин - "решать" их будет проще, если пользователи ресурса их будут видеть отдельно. А иначе - Вы рядом таких вопросов можете большинство просто "отпугнуть")) В смысле - это не один и не простой вопрос! Кроме того - если будет решение какого-либо вопроса, то для того чтобы оформить "вопрос" как "решенный" придется решить и другие. Ну и конечно, думаю, - решение выльется в большое обсуждение. Слишком большое... Во-вторых - Вам стоило бы написать чего Вы уже добились в решении данных вопросов, или какую информацию уже нашли и где. Намного проще немного поправить человека, чем научить его. (не во всех случаях конечно))) иногда - проще научить "с нуля") Я бы рекомендовал Вам посмотреть ресурс Андрея Ефимова. Вы найдете там много полезной информации. Ну и гугель Вам в помощь. А то комментарий Руслана выглядит здесь вполне уместным )))
  12. Всем доброго дня! Конечно речь стоит о многопоточности (как весьма правильно описал estra). И тут много факторов. Если Вы используете для работы с сетью Indy - это одно, если какие-то другие библиотеки - то возможно там уже есть решение многопоточности. Но для того, чтобы не тормозило GUI (интерфейс программы) - однозначно нужно многопоточность, не забывая при этом о синхронизации (если требуется отображать процессы работы с сетью, пока идет загрузка Ваших "статей"/"новостей" или что-либо другое). С Satуllite я частично не соглашусь. И вот по какой причине. Рискуя остаться в меньшинстве и быть не понятым, скажу следующее. Delphi - "сыровата", но это единственный инструмент для простой и удобной разработки, который имеет ряд неоспоримых преимуществ разработки кроссплатформенных приложений. Его "сырость" заключается в недоработках и ошибках библиотек самой FMX. Однако, имея опыт работы с Firemonkey со дня их появления, и будучи не имеющим отношения к Embarcadero и FMX, могу сказать что они движутся в верном направлении. И по сравнению с другими у них есть большая фора. Я уже неоднократно писал о том, что меня самого часто возмущают их ошибки и лаги, переходящие в новые версии. О том, что не совсем нравится их политика. Но это единственный, на сегодняшний день, продукт, который позволяет так просто (местами относительно конечно))) разрабатывать приложения. И не стоит спорить на тему "самого удобного и простого" IDE и мощнейшего языка программирования. Будь иначе - Вас бы тут не было... P.S. А FMX будет развиваться (я надеюсь не только самой Embarcadero))) всем сообществом. Будут появляться решения, библиотеки и т.д. Все новое всегда кажется абсурдом и ненужным. По прошествии времени начинаешь сожалеть, что не занялся этим раньше...
  13. Добрый день! Во-первых - стоит посмотреть примеры (папка ..Embarcadero\Studio\15.0\Samples\Object Pascal\FireMonkey Desktop\MediaPlayerHD). Во-вторых - указывайте поточнее: среда (XE6? XE7?), и, конечно, формат файла. AVI, в наше время, весьма абстрактное понятие. Опишите контейнер видео (формат видео). Переименнованное в *.avi это может быть и mp4, и mkv и что угодно. Нужно понимать более точно - что это за файл? Если у Вас вообще все видео-файлы не открываются... Ну, вполне возможно, что у Вас просто кодеков нет. И еще проще - взглянуть на сам проект, если он не приватный. Либо попробуйте запустить пример MediaPlayerHD и посмотреть - он открывает файлы или нет.
  14. Привет! Я хоть и не разработчик (Embarcadero), но считаю своим долгом поделиться инфой с "братьями по разуму" ) Вот, например, с какими багами сталкивался я, которые приводили к подобным "эффектам": - установленный PuntoSwitcher сильно может мешать нормальной работе. К сожалению пришлось совсем отказаться от данного продукта, из-за его глючности (не только с IDE); - установленный пакет AudioLab или VideoLab; (не имеет значения - какия лицензия... Чтобы среда не сильно тормозила - нужно либо отключить опцию Options > Editor options > Code Insight > Auto invoke), либо удалить загрузку библиотек в IDE и работать "ручками". Это только два примера, которые пришли на ум. Так-что не всегда глючит сама среда. Часто влияет "внешний фактор"... P.S. Если будет что-то еще, или что-то вспомню - дополню в этот список. P.P.S. Хотя можно было бы создать вообще отдельный раздел на форуме, типа "баги среды и компилятора и как их обойти"...
  15. Спасибо за ответ. Действительно (как отметил Ярослав) - очень интересно видеть реальные и рабочие приложения написанные с использованием FMX. Несколько уточняющих вопросов, так как мне так и не удалось добиться нужного результата в данном вопросе: - где именно Вы используете данный код, при создании главной формы, второстепенных форм? - что Вы пишете в событии OnCreate? - до или после inherited в OnShow? - какие свойства имеют формы? (Border; BorderIcons; BorderStyle; FormStyle; Transparency) Повторюсь - вопросы возникли только потому, что все работает очень странно. Точнее-говоря не работает... Если прописать это в главной форме, то появляется дулирующее "окно" в панели задач. Если во вторичных формах, то эффекта нет до тех пор, пока мы не "свернем" и "развернем" приложение. И т.д. В общем - очень "глючное" поведение. Но я это связываю не с FMX в конкретном случае, а скорее-всего с непонимаем - где и как именно с этим работать. Заранее благодарен за ответ!
  16. Друзья! Вот увидел ваши предложения и обсуждения, и хочу поделиться своим мнением с вами. Я согласен и с brunnengi и с остальными участниками дискуссии. Однако вопрос немного не правильно поставлен. Я бы сказал - он не совсем уместен. Вам (brunnengi) никто не запрещает задавать свои вопросы и переписываться в личке. И благодарить человека за решение в том или ином виде. Однако, как нам всем известно (думаю что всем) - Ярослав работает в Embarcadero, и сама постановка вопроса я бы сказал "компрометирующая". (Думается есть какие-то "ограничения" на трудовую деятельность, тем-более в таком "официальном" виде...) Далее. Да простит меня Ярослав и другие участники ресурса. Однако, лично мне, не хочется видеть в нем "торговую площадку"... Еще раз повторю - никто Вам не мешает задавать вопросы, обещая за срочные ответы вознаграждение. Я уже так поступал на данном ресурсе... Очень хочется чтобы ресурс развивался и приносил пользу всем. Сам стараюсь, по мере возможности отвечать на вопросы, если мне известен ответ. Жаль что очень мало времени. С Уважением отношусь к Ярославу, и потому считаю, что окончательное решение за ним!
  17. Да не за что собственно! Чем могу! Тут ведь часто важно детально понимать вопрос. И не всегда есть время скачать пример и разбираться с ним.
  18. Частично согласен. Результат тот же и работает только под Windows, но WMI не используется... Ну я не стану спорить о том насколько "глубоко" уходят эти модули в глубины ядра Windows. Смысл в общем то сводится к тому, что, согласно Вашему вопросу, нет таких "оберток" под FMX. И приходится писать свои. А какой из вариантов проще и "правильнее" - каждый решает сам.
  19. Итак. В Вашем случае (про модуль о котором Вы говорите), мы имеем практически тоже самое... Используется WinAPI, а конкретнее - модуль ShellApi, и т.д. Под "и т.д." подразумеваю то, что результат тот же. Это в итоге использование WMI и работает этот пример только под Windows. Вы со мной не согласны?
  20. Я не про модуль Ярослава, внимательно прочтите мой первый пост в этой теме... Я понял. Я скачал другой и только после Вашего коммента заметил что пропустил Вашу ссылку. Пытаюсь скачать..
  21. Да. И чтобы Вас не утруждать ответом на мой риторический вопрос - отвечу Вам сам ) Там именно WMI ! Мало того - это работает под FMX, да только под Windows ) P.S. Кстати говоря - я бы сам был бы рад ошибаться в данном вопросе... )
  22. Никогда не говорите "никак", рискуете попасть в глупое положение. Модуль, ссылка на который приведена выше, прекрасно работает в FM без каких либо доработок. Вы шутите !? )) А что внутри этого модуля - не подскажите? )
×
×
  • Создать...