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

AngryOwl

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

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

  • Посещение

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

    45

Сообщения, опубликованные AngryOwl

  1. Друзья, подскажите!

    Возможно ли заполнение TListView картинками и надписями в DesignTime без использования LiveBinding?

    (Интересует только TListView)

     

    P.S. Думаю нашим гуру, разработчикам FMX, не составит труда ответить на данный вопрос!? Интересует заполнение именно в DesignTime, статическими данными (текст и иконки)

  2. Я абсолютно согласен с Ярославом на счет "основы работы с вещественными числами", просто хочу добавить, что тоже сталкивался с такими ситуациями, но не считаю их за проблему и решал простыми условиями типа

    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);
  3. Добрый день!

    Думаю что "суть" здесь ни при чем. Я думал, при создании примера, об ошибке, возникшей у Вас, а не о деталях того как "раскрывается"...

    Однако, если я правильно Вас понял, то Вам просто нужно заменить код процедуры в примере который я приложил к предыдущему комментарию.

     

    код процедуры

    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. И, кстати, поймите правильно - разбираться детально в том, что Вам нужно, Вам придется самому. Я лишь показал пример как это работает (без ошибок вроде) и, практически, так как Вам надо и в двух вариантах. А условия того как что должно "сворачиваться" и "раскрываться" поставьте сами. Мне кажется все достаточно просто и прозрачно.

  4. Доброй ночи!

    Я не стал динамически создавать элементы "меню". Просто накидал их на форму.

    Можно сильно "помудрить", чтобы привести все возможные варианты к единому коду, но что-то мне влом было писать (смотрите заремленный кусочек). А для примера использовал свойство HelpContext...

    Вообщем все в приложении. Думаю, там все достаточно просто и понятно. Все раскрывается так, как Вы описали, с анимацией.

    post-115-0-40563800-1413765151.jpgpost-115-0-57638200-1413765151.jpgpost-115-0-75142500-1413765151.jpg

    MenuEx.zip

  5. Не возникает. Конечно тестили. В нашем приложении именно так реализовано. (пока бетка, скоро обновим, но все работает)

     

    P.S. Надеюсь модератор не воспримет ссылку "неверно") (если что - могу удалить)

  6. Добрый день!

    Думаю - родными средствами никак.

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

    Причем кадры формируются с разрешением установленным ОС и устройством по умолчанию, что очень сильно влияет на загрузку устройства и производительность. Данный вопрос уже обсуждался здесь на форуме.

    Однако это не относится к Вашему вопросу.

    В Вашем случае - либо все писать самому, либо - сторонние библиотеки (что-то типа этого).

     

    P.S. Весь мир уже в "мультимедиа". Хотелось бы, чтобы и Embarcadero тоже не отставала в этом направлении, делая все время упор на корпоративный сектор в сфере работы с БД.... А то слабовато выглядит FMX в этом направлении.

     

    P.P.S. Кстати, - если у Вас есть решение вопроса и оно не приватное, то многим наверное хотелось бы его видеть. Я лично - был бы очень признателен, если бы Вы поделились им с нами))

    (Либо стоит самим поработать в данном направлении. Очень важный вопрос все-таки. Странно видеть решение по выводу изображения с камеры, и при этом не иметь решения его записи как видео, а не только картинки щелкать).

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

    Поэтому - рекомендую либо самому писать, либо искать адекватное стороннее решение.

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

     

    P.S. Свое решение основано на простых текстовых INI-файлах. Работает везде, в т.ч. и на мобильниках, и очень быстро. Над удобством стоит конечно поработать, но в текущий момент меня собственное решение более чем устраивает.

  8. Думаю, Вам стоит их разбить на отдельные темы. Это во-первых.

    И тому есть ряд причин - "решать" их будет проще, если пользователи ресурса их будут видеть отдельно. А иначе - Вы рядом таких вопросов можете большинство просто "отпугнуть")) В смысле - это не один и не простой вопрос!

    Кроме того - если будет решение какого-либо вопроса, то для того чтобы оформить "вопрос" как "решенный" придется решить и другие.

    Ну и конечно, думаю, - решение выльется в большое обсуждение. Слишком большое...

     

    Во-вторых - Вам стоило бы написать чего Вы уже добились в решении данных вопросов, или какую информацию уже нашли и где.

    Намного проще немного поправить человека, чем научить его. (не во всех случаях конечно))) иногда - проще научить "с нуля")

     

    Я бы рекомендовал Вам посмотреть ресурс Андрея Ефимова. Вы найдете там много полезной информации. Ну и гугель Вам в помощь.

    А то комментарий Руслана выглядит здесь вполне уместным )))

  9. Всем доброго дня!

    Конечно речь стоит о многопоточности (как весьма правильно описал estra). И тут много факторов.

    Если Вы используете для работы с сетью Indy - это одно, если какие-то другие библиотеки - то возможно там уже есть решение многопоточности.

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

     

    С Satуllite я частично не соглашусь. И вот по какой причине. Рискуя остаться в меньшинстве и быть не понятым, скажу следующее.

    Delphi - "сыровата", но это единственный инструмент для простой и удобной разработки, который имеет ряд неоспоримых преимуществ разработки кроссплатформенных приложений.

    Его "сырость" заключается в недоработках и ошибках библиотек самой FMX. Однако, имея опыт работы с Firemonkey со дня их появления, и будучи не имеющим отношения к Embarcadero и FMX, могу сказать что они движутся в верном направлении. И по сравнению с другими у них есть большая фора.

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

    И не стоит спорить на тему "самого удобного и простого" IDE и мощнейшего языка программирования. Будь иначе - Вас бы тут не было...

     

    P.S. А FMX будет развиваться (я надеюсь не только самой Embarcadero))) всем сообществом. Будут появляться решения, библиотеки и т.д.

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

  10. Добрый день!

    Во-первых - стоит посмотреть примеры (папка ..Embarcadero\Studio\15.0\Samples\Object Pascal\FireMonkey Desktop\MediaPlayerHD).

    Во-вторых - указывайте поточнее: среда (XE6? XE7?), и, конечно, формат файла. AVI, в наше время, весьма абстрактное понятие. Опишите контейнер видео (формат видео). Переименнованное в *.avi это может быть и mp4, и mkv  и что угодно. Нужно понимать более точно - что это за файл?

    Если у Вас вообще все видео-файлы не открываются... Ну, вполне возможно, что у Вас просто кодеков нет.

    И еще проще - взглянуть на сам проект, если он не приватный. Либо попробуйте запустить пример MediaPlayerHD и посмотреть - он открывает файлы или нет.

  11. Привет!

    Я хоть и не разработчик (Embarcadero), но считаю своим долгом поделиться инфой с "братьями по разуму" )

     

    Вот, например, с какими багами сталкивался я, которые приводили к подобным "эффектам":

    - установленный PuntoSwitcher сильно может мешать нормальной работе. К сожалению пришлось совсем отказаться от данного продукта, из-за его глючности (не только с IDE);

    - установленный пакет AudioLab или VideoLab; (не имеет значения - какия лицензия... Чтобы среда не сильно тормозила - нужно либо отключить опцию Options > Editor options > Code Insight > Auto invoke), либо удалить загрузку библиотек в IDE и работать "ручками".

     

    Это только два примера, которые пришли на ум. Так-что не всегда глючит сама среда. Часто влияет "внешний фактор"...

     

    P.S. Если будет что-то еще, или что-то вспомню - дополню в этот список.

     

    P.P.S. Хотя можно было бы создать вообще отдельный раздел на форуме, типа "баги среды и компилятора и как их обойти"...

  12. Спасибо за ответ.

    Действительно (как отметил Ярослав) - очень интересно видеть реальные и рабочие приложения написанные с использованием FMX.

    Несколько уточняющих вопросов, так как мне так и не удалось добиться нужного результата в данном вопросе:

    - где именно Вы используете данный код, при создании главной формы, второстепенных форм?

    - что Вы пишете в событии OnCreate?

    - до или после inherited в OnShow?

    - какие свойства имеют формы? (Border; BorderIcons; BorderStyle; FormStyle; Transparency)

     

    Повторюсь - вопросы возникли только потому, что все работает очень странно. Точнее-говоря не работает...

    Если прописать это в главной форме, то появляется дулирующее "окно" в панели задач. Если во вторичных формах, то эффекта нет до тех пор, пока мы не "свернем" и "развернем" приложение. И т.д.

    В общем - очень "глючное" поведение. Но я это связываю не с FMX в конкретном случае, а скорее-всего с непонимаем - где и как именно с этим работать.

     

    Заранее благодарен за ответ!

  13. Друзья!

    Вот увидел ваши предложения и обсуждения, и хочу поделиться своим мнением с вами.

    Я согласен и с brunnengi и с остальными участниками дискуссии.

    Однако вопрос немного не правильно поставлен. Я бы сказал - он не совсем уместен.

    Вам (brunnengi) никто не запрещает задавать свои вопросы и переписываться в личке. И благодарить человека за решение в том или ином виде. Однако, как нам всем известно (думаю что всем) - Ярослав работает в Embarcadero, и сама постановка вопроса я бы сказал "компрометирующая". (Думается есть какие-то "ограничения" на трудовую деятельность, тем-более в таком "официальном" виде...)

     

    Далее. Да простит меня Ярослав и другие участники ресурса. Однако, лично мне, не хочется видеть в нем "торговую площадку"...

    Еще раз повторю - никто Вам не мешает задавать вопросы, обещая за срочные ответы вознаграждение. Я уже так поступал на данном ресурсе...

    Очень хочется чтобы ресурс развивался и приносил пользу всем. Сам стараюсь, по мере возможности отвечать на вопросы, если мне известен ответ. Жаль что очень мало времени.

     

    С Уважением отношусь к Ярославу, и потому считаю, что окончательное решение за ним!

  14.  

    Вы со мной не согласны?

     

    Частично согласен. Результат тот же и работает только под Windows, но WMI не используется...

     

    Ну я не стану спорить о том насколько "глубоко" уходят эти модули в глубины ядра Windows.

    Смысл в общем то сводится к тому, что, согласно Вашему вопросу, нет таких "оберток" под FMX. И приходится писать свои. А какой из вариантов проще и "правильнее" - каждый решает сам.

  15. Итак. В Вашем случае (про модуль о котором Вы говорите), мы имеем практически тоже самое...

    Используется WinAPI, а конкретнее - модуль ShellApi, и т.д.

    Под "и т.д." подразумеваю то, что результат тот же. Это в итоге использование WMI и работает этот пример только под Windows.

     

    Вы со мной не согласны?

  16.  

    Да. И чтобы Вас не утруждать ответом на мой риторический вопрос - отвечу Вам сам )

    Там именно WMI !

    Мало того - это работает под FMX, да только под Windows )

     

    P.S. Кстати говоря - я бы сам был бы рад ошибаться в данном вопросе... )

     

    Я не про модуль Ярослава, внимательно прочтите мой первый пост в этой теме...

     

    Я понял. Я скачал другой и только после Вашего коммента заметил что пропустил Вашу ссылку. Пытаюсь скачать..

  17. Да. И чтобы Вас не утруждать ответом на мой риторический вопрос - отвечу Вам сам )

    Там именно WMI !

    Мало того - это работает под FMX, да только под Windows )

     

    P.S. Кстати говоря - я бы сам был бы рад ошибаться в данном вопросе... )

  18.  

    Без WMI никак не получится.

    Никогда не говорите "никак", рискуете попасть в глупое положение. Модуль, ссылка на который приведена выше, прекрасно работает в FM без каких либо доработок.

     

    Вы шутите !? ))

    А что внутри этого модуля - не подскажите? )

×
×
  • Создать...