Alesk

Пользователи
  • Публикации

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

  • Посещение

О Alesk

  • Звание
    Пользователь

Посетители профиля

256 просмотров профиля
  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. В приложении (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. Как подключить gesturemanager1 к кнопке созданной в runtime? Когда пишу эту строчку izm[ii].Touch.GestureManager:=GestureManager1; ругается на Gesturemanager1 izm[ii] - массив из tbutton
  14. Фрагмент кода: 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. Как сделать такое меню? Которое вызывается при нажатии на соответствующую кнопку снизу на устройстве