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

Alesk

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

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

  • Посещение

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

  1. (Android) Имеется кнопка, при нажатии на которую создается еще около 50 кнопок и включается анимация "якобы раскрытия списка" TfloatAnimation. Когда нажимаешь на кнопку, при создании остальных 50 приложение немного подвисает, а потом включается анимация. Решил поставить "кружок загрузки"(TAniIndicator) чтобы было понятно что приложение не зависло, но проблема в том, что TAniIndicator включается уже тогда, когда срабатывает анимация, т.е. при нажатии на кнопку приложение подвисает, потом включается TAniIndicator одновременно с Tfloatanimation хоть и команда включения TAniIndicator расположена перед командой создания кнопок и включения Tfloatanimation.
  2. В приложении имеется 230 аудиофайлов(это число будет увеличиваться), которые были добавлены в проект через deployment, такой способ не идеален, т.к. приложение запускается очень долго ~ 6 сек, даже на мощных телефонах(Android). При этом при запуске приложение ничего не делает с этими файлами. Посоветовали мне использовать базу данных, однако какую лучше использовать для хранения большого количества аудиозаписей локально?
  3. В приложении имеется ~ 160 файлов общим весом ~ 30 мб, которые добавлены в проект через Deployment. Используются они след. образом: Tpath.Combine(Tpath.GetDocumentsPath, 'Sample.file'); Проблема в том, что чем больше файлов становится, тем дольше приложение запускается(1 сек заставка, дальше ~ 5 сек черный экран), причем как на слабом железе, так и на мощном. Мб другой способ хранения файлов решит проблему? Если да, то какой?
  4. Как включить программную кнопку меню? Есть телефоны, в которых отсутствуют аппаратные кнопки и они заменяются программными на экране(Nexus 5 например), но в приложении программная кнопка меню не отображается, как ее включить?
  5. Alesk

    ANR и Sharedpreferences

    В приложении (android) есть возможность изменять некоторые настройки, которые сохраняются в sharedpreferences, способ брал отсюда. Проблема в том, что после изменения некоторых настроек и сохранения их в sharedpreferences, на следующий запуск приложения оно вылетает спустя 5-10 секунд. Причем вылетает по разному, иногда просто встречается ANR (приложение не отвечает), иногда появляются графические артефакты(пропадают некоторые компоненты, отображаются некорректно), а иногда просто появляется черный экран. Бывает иногда просто встречается ANR (приложение не отвечает) по ходу работы приложения, причем при разных обстоятельствах. ANR может возникнуть даже когда приложение бездействует, т.е. когда им не пользуются, но оно запущено, при этом никаких фоновых операций не производится, таймеров тоже нету. Читал что такое может возникать из-за выполнения ресурсоемких задач в одном потоке, но в приложении нет ресурсоемких функций. Из-за чего еще это может быть? Беспокоит то, что приложение вылетает даже при простое. Изредка также вылетает с такой ошибкой
  6. Нашел вот такой метод: Ringtonemanager.setActualDefaultRingtoneUri(Context context, int type, Uri ringtoneUri); вот здесь https://developer.android.com/reference/android/media/RingtoneManager.html Однако попробовав использовать этот метод понял что его нету var r:jringtonemanager; begin r.setactualdefaultringtoneuri() // Такого метода не существует end;
  7. Решил проблему. var act:jactivity // uses Androidapi.Helpers, AndroidApi.Jni.App; begin act:=sahredactivity; act.setvolumecontrolstream(3); end;
  8. По умолчанию в андроид приложении если попробовать изменить громкость, то поменяется громкость звонка, существует ли способ перенаправить изменение громкости на медиа? Попробовал решить эту проблему поставив на каждые 60 секунд с помощью таймера запись звука с тишиной, но есть небольшие помехи, да и я думаю это не самый лучший вариант
  9. В приложении есть возможность добавлять некоторые компоненты в избранный список, а также изменять некоторые настройки, все это сохраняется в несколько текстовых файлов на андроиде, таким образом: var f:tstringlist; begin f:=tstringlist.create; f.LoadFromFile(TPath.GetSharedDocumentsPath+tpath.DirectorySeparatorChar+'sst.txt'); f.add('sample text'); f.SaveToFile(TPath.GetSharedDocumentsPath+tpath.DirectorySeparatorChar+'sst.txt'); f.free; end; Я считаю что это не самый лучший способ,и есть варианты получше, мб с использованием какой-нибудь бд(вот только какой), да и к тому же приложение часто вылетает(exception class segmentation fault (11)) и (exception class aborted (6)), почему-то мне кажется что это именно из-за этого. Каким образом лучше реализовать сохранение настроек, избранных элементов?
  10. Насчет привязки к конкретному элементу, был вопрос http://fire-monkey.ru/topic/2988-zhesty-v-runtime/ в итоге я просто не нашел другого выхода как привязывать к другим элементам. Пробовал также создавать свои "события" для элементов созданных программно, но появлялась ошибка при попытке присвоить "событие" элементу. Мол, это невозмжно сделать, т.к. ты пытаешься присвоить обычную процедуру, а не событие. Есть ли какой способ создать событие программному элементу не привязывая его к другому?
  11. Хорошо, допустим я задал каждой кнопке свой тэг, но толку от этого? Как в событии узнать какая именно кнопка его(событие) вызвала? Ведь чтобы прочитать тэг, нужно сначала узнать у какой кнопки его прочитать. Или я что-то не так понял?
  12. Допустим есть созданный в рантайме массив кнопок, к этим кнопкам я подключил gesturemanager, и одно событие on gesture на всех через цикл: for ii:=1 to 101 do begin izm[ii] := TButton.Create(tabbedwithnavigationform.i1); izm[ii].BeginUpdate; izm[ii].Touch.GestureManager:=tabbedwithnavigationform.TabControl1.Touch.GestureManager; izm[ii].Touch.InteractiveGestures:=tabbedwithnavigationform.Button99.Touch.InteractiveGestures; izm[ii].OnGesture:=tabbedwithnavigationform.button99.OnGesture; izm[ii].Align := talignlayout.top; izm[ii].Text:=s; izm[ii].OnTap:=sob; izm[ii].EndUpdate; izm[ii].Parent := pod[g]; end; в событии button99.ongesture должны производиться некоторые действия с кнопкой из массива, с которой в данный момент взаимодействует пользователь, т.е. если он нажал допустим на 45 кнопку, то и действия должны производится с 45 кнопкой. Вот только как это реализовать? Передать индекс в событие нельзя, создать свою процедуру тоже.
  13. Alesk

    Жесты в runtime

    Как подключить gesturemanager1 к кнопке созданной в runtime? Когда пишу эту строчку izm[ii].Touch.GestureManager:=GestureManager1; ругается на Gesturemanager1 izm[ii] - массив из tbutton
  14. Alesk

    Смена цвета label в runtime

    Фрагмент кода: nad[g]:= tlabel.Create(tabbedwithnavigationform.label1); nad[g].BeginUpdate; nad[g].Size.height:=24; nad[g].Size.Width:=350; nad[g].Text:=we; nad[g].position.y:=-99; nad[g].Align:=talignlayout.Top; nad[g].FontColor:=$FFFEFEFE; nad[g].EndUpdate; nad[g].Parent:= pod[g]; где nad[g] - массив из tlabel, а pod[g] - массив из tlistview Нужно чтобы при создании цвет текста становился белым, но почему-то не работает, цвет остается черным
  15. Alesk

    Меню Android

    Как сделать такое меню? Которое вызывается при нажатии на соответствующую кнопку снизу на устройстве
  16. есть tswitch, при его включении динамически создается кнопка в tabcontrol на tabitem2 (сам свитчер находится в tabitem1), и при выключении tswitch кнопка соответственно должна уничтожаться(btn.destroy). только вот при повторном нажатии на tswitch, происходит ошибка при попытке создать кнопку btn := TButton.Create(tabbedwithnavigationform.i1); //i1 - кнопка лежащая в том же tabitem2 Пробовал также уничтожать кнопку другим способом - btn.free, все было без ошибок, вот только кнопка оставалась на форме, и в итоге при повторном нажатии на свитчер просто появлялась вторая кнопка. Пробовал еще и freeandnil(btn); результат точно такой же весь код: procedure addi (sw:tswitch; s:string; sob:myproc; ii:integer); begin if sw.IsChecked=false then begin izm[ii] := TButton.Create(tabbedwithnavigationform.i1); izm[ii].BeginUpdate; izm[ii].Position.Y:=-99; izm[ii].Align := talignlayout.top; izm[ii].TintColor:=tabbedwithnavigationform.i1.TintColor; izm[ii].Text:=s; izm[ii].OnTap:=sob; izm[ii].EndUpdate; izm[ii].Parent := tabbedwithnavigationform.VertScrollBox2; end else begin izm[ii].Destroy; end; end; izm[] - массив из tbutton i1 - кнопка лежащая в том же tabitem2
  17. Alesk

    как показать сообщение?

    как при нажатии на кнопку показать сообщение вот в таком виде?
  18. Обновил delphi с XE8 на 10.1 Berlin, проблема исчезла
  19. Имеется TTabControl, в нем две вкладки. На одной два expander'a(в каждом будем считать по 3 кнопки), другая - пустая. Перелистывание происходит крайне медленно (лагает, скажем так проседает фпс) когда оба expander'a раскрыты, когда они свернуты перелистывание происходит плавнее. Можно ли как-нибудь это исправить? Причем тормозит все, даже раскрыстие expander'ов происходит с задержкой.
  20. Или сделать его прозрачным так, чтобы сам expander был прозрачным, а его заголовок и содержимое нет. Нашел только свойство Opacity, но оно делает прозрачным не только сам expander, но и его содержимое. А такой вид просто не вписывается в общий дизайн приложения. А делать все вручную отрисовывая эти кнопки в фш, ну как-то совсем не вариант.
  21. Допустим в приложении есть определенный mp3 файл (добавленный через deployment), и я хочу чтобы при нажатии на определенную кнопку я мог поставить эту мелодию в качестве рингтона, или звука уведомления. Искал, искал, но чет не нашел
×
×
  • Создать...