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

Равиль Зарипов (ZuBy)

Модераторы
  • Постов

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

  • Посещение

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

    265

Весь контент Равиль Зарипов (ZuBy)

  1. а разве есть либы для других ОС, только для Windows вроде.
  2. отвяжите TPopupMenu от TListBox procedure TForm4.ListBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); var aItem: TListBoxItem; begin if Button = TMouseButton.mbRight then begin aItem := ListBox1.ItemByPoint(X, Y); if aItem = nil then exit; ListBox1.ItemIndex := aItem.Index; PopupMenu1.Popup(Screen.MousePos.X, Screen.MousePos.Y); end; end;
  3. 1) отвязать TpopupMenu от ListBox 2) в событии OnMouseDown показать TPopupMenu самому, зная координаты курсора
  4. вот об этом я и говорил, а в IOS вообще такое есть? она же не принимает ничего, кроме картинок. остальные файлы доступны только конкретному приложению. или я не прав?
  5. для картинок есть родной Action, а вот для файлов нужно через интенты попробовать. например есть родной файловый менеджер/totalcmd они могут отдать путь к файлу. Но как это делается не интересовался а если делать еще и для IOS, то лучше самому навигатор по файлам сделать
  6. Андроед-телефоны, как и все вещи в 2016 году, собираются из каких-то ёбаных микросхем. начало ободряющее))
  7. Panel1.Touch.GestureManager := GestureManager1; Panel1.Touch.StandardGestures := [TStandardGesture.sgLeft, ..]; Panel1.Touch.InteractiveGestures := [TInteractiveGesture.Pan, ..];
  8. у меня рут, она работала на андроид ниже 5.0. дальше автор не обновлял видимо
  9. я давно ей уже не пользовался, раньше все запущенные показывала. жаль что не рабтает, в реальном времени показывала память, нагрузку проца
  10. в качестве бреда, используйте событие OnKeyUp
  11. так самое интересное что из сети ipv4 нельзя запрыгнуть в only ipv6 поддержка сетей ipv6 делается с помощью поддомена ipv6.example.com, и на сервере делается симлинк (ipv6->ipv4) для доступа к сайту
  12. установите из маркета AppStatusWatcher, оно показывает потребление памяти приложением.
  13. вот тут вы ошиблись) я час убил разбираясь в потрохах TREST***, там ничего не делается просто) Если хотите просто отлаживать и сопровождать, напишите подобный модуль и забудьте про TRESTClient. P.S. Если вы занимаетесь апи для FB, покажите реализацию? я попробую сделать аналог на TRESTLight
  14. мы на канале как раз обсуждали, что лучше не обновляться. @master webs заливал вчера с 7 версии в AppStore, ждем результатов
  15. может я что-то не понимаю, но это никак не относится к TRESTClient. оно из коробки ничего не умеет, это такие же вызовы POST/GET просто обвешанные типами, классами, компонентами, зависимостями. Т.к. стандартов для протокола REST не существует, каждая соц сеть делает так как удобно. на счёт сопровождения, тут и думать нечего: если загнется TNetHTTPClient, то и TRESTClient упадёт. И не используйте уже IdHTTP, он устарел и косячит на HTTPS
  16. Доброго времени суток! Навеяно этой темой. Посмотрел реализацию от @Pax Beach (за что ему спасибо большое) и столкнулся с тем что TRESTClient со всеми потрахами это просто дикий ужас. Решил собрать аналогичный пример, только не использовать TREST*** немного опишу, свою реализацию uAppSettings.pas - хранит описание вашего приложения созданного в ВК FMX.RESTLight.pas - модуль "общения" клиента с сервером FMX.RESTLight.Types.pas - тут хранятся типы для работы TRESTLight Приведу код, который постит Вам на стену текст var aFields: TArray<TmyRestParam>; aJSON: string; begin SetLength(aFields, 5); aFields[0] := TmyRestParam.Create('access_token', FAuthToken.token, false); aFields[1] := TmyRestParam.Create('v', FVKApp.APIVersion, false); aFields[2] := TmyRestParam.Create('owner_id', FAuthToken.user_id, false); aFields[3] := TmyRestParam.Create('friends_only', '0', false); aFields[4] := TmyRestParam.Create('message', 'Тестовое сообщение <RESTLight>', false); TTask.Run( procedure begin aJSON := TRESTLight.Execute('wall.post', FVKApp, aFields); TThread.Synchronize(TThread.CurrentThread, procedure begin Memo1.Lines.Add('---- wall.post ----'); Memo1.Lines.Add(aJSON); end); end); а вот так можно заливать файлы var aFields: TArray<TmyRestParam>; aJSON: string; begin SetLength(aFields, 4); aFields[0] := TmyRestParam.Create('access_token', FAuthToken.token, false); aFields[1] := TmyRestParam.Create('v', FVKApp.APIVersion, false); aFields[2] := TmyRestParam.Create('owner_id', FAuthToken.user_id, false); aFields[3] := TmyRestParam.Create('photo', aUploadFile, true); // для файлов указывается !!!true!!! TTask.Run( procedure begin // для загрузки файлов использовать TRESTLight.Execute2, в нем можно указать произвольный URL aJSON := TRESTLight.Execute2(aUploadURL, FVKApp, aFields); TThread.Synchronize(TThread.CurrentThread, procedure begin Memo1.Lines.Add('---- upload file to server ----'); Memo1.Lines.Add(aJSON); end); end); P.S. На правильность и оригинальность не претендую, просто альтернативный вариант. Мне например не понравилась как устроен TRESTClient, много компонентов лишних. В боевых условиях наверное код еще будет модернизироваться, я рассмотрел только пару методов, но думаю общая концепция не сильно поменяется GitHub TRESTLight.zip
  17. из коробки такой возможности нет в примерах был пример для создания кастомного отображения
  18. это ведь не Win, она не сообщает приложению что его хотят выгрузить. Иначе бы все приложения были-бы паразиты, никто бы не давал грохать.
  19. ну видимо 1 гб не хватает для системы, попробуйте перед запуском выгружать все запущенные приложения
  20. это поведение самого андроида, если не достаточно памяти он выгружает приложение
  21. спорить не буду, я давно не использовал диалоги. но раньше все работало нормально, не было необходимости в синхронизации
  22. если напишу что на следующей версии, будет всегда актуально))
  23. это перебор кажется, оно запускается в главном потоке
  24. что дебаг пишет?
  25. доступна конечно, приложите демо проект. что вы дальше делаете с файлом?
×
×
  • Создать...