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

Dmitry Sobko

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

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

  • Посещение

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

  1. 10 часов назад, krapotkin сказал:

    когда нужен срочный ответ, пишите в телеграм-чат Fire-Monkey имени Равиля ZuBy

     

    frame.7z

    Огромное спасибо! Теперь все понятно, правда кроме одного момента, впервые встречаю вот такую конструкцию [Weak]fr:TFrame1; Что означают в данном случае квадратные скобки?

  2. 37 минут назад, rareMax сказал:

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

    
    FMyFrame: TMyFrame;
    ...
    Begin
      FMyFrame := TMyFrame.Create(Родитель;);
      FMyFrame.Parent := Родитель;

    Когда нужно скрыть его - пишешь FMyFrame.Free;

     

    Попробую, спасибо! 

    Прошу прощения за тупость, но на всякий случай спрошу, пока разбираюсь, можно более подробный пример? Ответы на форуме не так часто приходят, как хотелось бы в трудную минуту) Если не составит большого труда, может накидаете пример и приложить архив?

    Спасибо!

  3. В 15.12.2016 в 12:18, krapotkin сказал:

    правильное решение, конечно, с фреймами.

    не забудьте, что их нужно создавать отдельно, вручную, в нужный момент

    Добрался наконец до реализации своего проекта на фреймах.

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

    Подскажите пожалуйста, как делать правильно.

    Спасибо! 

  4. Решил вопрос своими силами. Может кому-то будет полезно. Такая ошибка возникает, если архитектура устройства отличается от разрядности приложения, которое пытаюсь запустить. iPad у меня оказывается 32 битный, приложение запускаю как x64. Переключился в Project Manager'е на 32bit и все запустилось!

    Вот документация по ошибкам http://docwiki.embarcadero.com/RADStudio/XE8/en/RunIOSDeviceFailedHelpPage

  5. Добрый день, уважаемые коллеги!

    Впервые пытаюсь запустить приложение на своем iPad'е. Наконец-то разобрался с сертификатами, большое спасибо пользователю kami

    Теперь у меня новая проблема, после компиляции и деплоя начинается запуск приложения и через некоторое время появляется ошибка e8000087


    9ac2fdec04.jpg

     

    Подскажите пожалуйста, что делать?

    Спасибо! 

  6. Добрый день, уважаемые коллеги!

    Впервые столкнулся с публикацией приложения в App Store. Выполнил все шаги по данному мануалу http://sokovnin.com/work/podgotovka-i-publikaciya-prilozheniya-v-app-store/ до момента подготовки приложения для публикации, где уже рассказывается про иконки и прочее.

    Т.е. на текущий момент у меня есть:

    1) сертификат Development и сертификат Production

    2) идентификатор приложения App IDs

    3) свой iPad в списке устройств

    4) Provision Prifile Development и Distribution 

    В связке ключей все ключи добавил, в xCode provision профили добавил. Подключил свой iPad к маку, создал проект в xCode, выполнил все необходимые настройки, запустил пустое приложение - запустилось.

    Это означает, что сертификаты и профили у меня правильные, по крайней мере девлоперские.

     

    Довольный, запускаю RAD Studio Berlin, (PA Server у меня уже запущен и на маке и под виндой (коннект есть)), открываю свой проект, захожу в Project -> Options, выбираю категорию Provisioning.

    Дальше в поле Target у меня сразу выбран пункт Debug configuration, в поле Build Type сразу выбран пункт iOS Device - 64 bit - Development. В поле Provision Profile выбираю профиль, который мне выдает мой мак через PA Server, выбираю в поле Developer Certificate сертификат, который привязан в профиле, и тут я столкнулся с проблемой. При выбранном сертификате, а он у меня один в профиле, мне система сообщает, что: 

    Unable to much bundle identifier "MyProject" with AppID "XXXXXXX.com.mysite" in selected provisionining profile.

    Bundle identifier value should be "com.mysite" so it can be used with the selected provision profile "Developer iPad"

    Спойлер

    e5275fac75.jpg

    При создании App ID я вводил в bundle identifier значение com.mysite. xCode читает это значение точно так же как я его и вводил, а вот Delphi читает его как "XXXXXXX.com.mysite". Где XXXXXXX - это некий префикс, который генерируется автоматически. 

    Что я делаю не так? Помогите пожалуйста, уже всю голову сломал (((

    Спасибо!

  7. В 14.02.2015 в 00:51, ruslan сказал:

    осмелюсь подытожить: очень актуальны 

    тема сервисов(!), фоновой работы, потокового аудио\видео, контроль за коммуникациями(wifi, 3g, телефония)

     

    никому сто лет не нужны всякие "слайдеры" для фоток и прочие свистелки.

     

    когда приложение сможет нормально работать, когда его можно будет "распараллелить", когда не будет падать(в фоне)\виснуть\"неразворачиваться", когда будет нормально работать компонент  плеера\камеры(который безбожно тормозит), когда приложение не будет столько жрать оперативки. потом можно и баннеры\слайдеры всякие делать. а пока это никому не нужный бред.

    Полностью поддерживаю! Но меня, на данный момент, особенно интересует фоновая работа и потоковое аудио/видео :)

  8. 2 часа назад, Brovin Yaroslav сказал:

    Проверьте, есть ли такие приложения уже на тестируемом девайсе?

    Нет, устанавливаю впервые. Как я писал выше, ошибка видимо в путях, на скриншоте в спойлере видно. Пока все еще не могу сообразить как их поменять.

  9. Спасибо большое ZuBy и enatechno за ответы. Так как на текущий момент решение нужно было быстрое, я попробовал совет enatechno и все заработало! Но я уверен, что совет ZuBy тоже будет работать и обязательно позже так и сделаю. Действительно в коде будет проще ориентироваться.

    Прошу прощения, не знаю Ваших имен.

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

    Еще раз всем спасибо большое!

  10. 7 минут назад, Vitaldj сказал:

    Apk живой в папке bin есть? 

    Да, есть. Скопировал на устройство, он не стал устанавливаться. Мне кажется я нашел проблему, но не знаю как ее решить. Пути на скриншоте не мои, как их изменить?

    Спойлер

    332b9e0db9.jpg

     

  11. У меня другая проблема, посмотрите скриншот http://joxi.ru/KAxejoocopD9r8, не могу запустить ни один демо проект на андроиде. Помогите пожалуйста.

    Спойлер

    KAxejoocopD9r8.jpg

     

    ---------------------

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

  12. 2 часа назад, ZuBy сказал:

    покажите код с записью ini, явно там ошибка

    Если я записываю INI файл в   TPath.GetSharedDownloadsPath, то такой проблемы не наблюдается.

    Вот код первой записи:

    procedure TFormELECTRA.FormCreate(Sender: TObject);
    begin
      PathToSettings := TPath.GetSharedDownloadsPath;    //GetSharedDownloadsPath   GetDocumentsPath
    end;
    
    procedure TFormELECTRA.BtnAddUserClick(Sender: TObject);
    begin
      F:=TIniFIle.Create(TPath.Combine(PathToSettings, INIFileName));
      F.WriteInteger('door1', 'number', 1); //записываем FDoorNumber
      F.WriteString('door1', 'doorname', FDoorName); //записываем FDoorName
      F.WriteString('door1', 'doorkey', FDoorKey); //записываем FDoorKey
      F.WriteString('door1', 'doorstatus', FDoorStatus); //записываем FDoorStatus
      F.WriteString('door1', 'lastopen', FDoorLastOpen); //записываем FDoorLastOpen
      F.WriteString('door1', 'accesstokeys', FDoorAccessToKeys); //записываем FDoorAccessToKeys
      F.UpdateFile; //обновляем файлик
      F.DisposeOf;
    end;

    Так я добавляю дополнительно одну из записей, таких у меня несколько процедур. 

    procedure TFormELECTRA.WriteStatusLock;
      begin
        F:=TIniFIle.Create(TPath.Combine(PathToSettings, INIFileName));
        F.WriteString('door1', 'status', FDoorStatus); //записываем FDoorStatus
        F.WriteString('door1', 'accesstokeys', FDoorAccessToKeys); //записываем FDoorAccessToKeys
        if FDoorLastOpen <> '' then
          begin
            F.WriteString('door1', 'lastopen', FDoorLastOpen); //записываем FDoorLastOpen          
          end;
        TimeFromMobile := DateTimeToStr(Now);
        F.WriteString('parameters', 'Tl', TimeFromLock); //записываем TimeFromLock
        F.WriteString('parameters', 'Tm', TimeFromMobile); //записываем TimeFromMobile
        F.UpdateFile; //обновляем файлик
        F.DisposeOf;
      end;

     

  13. 8 минут назад, ZuBy сказал:

    по организации приложения:

    чтобы не путаться в коде и не умещать все на одной форме, можно воспользоваться фреймами и/или формами

    на счёт TAniIndicator, используйте TfgActivityDialog из пакета FGX

    Спасибо, буду пробовать! А по багам есть идеи, почему такое может быть? У меня не только в этом Layout'е такая проблема. Есть еще Layout, где в зависимости от ситуации отображается одна из двух картинок, которые через некоторое время работы приложения просто исчезают. Ошибок в коде точно нет.

  14. Добрый день, уважаемые знатоки!

    Столкнулся с такой проблемой:

    На форме у меня расположены компоненты TLayout, которые являются экранами приложения http://joxi.ru/n2Y8OaaTK41Rm6

    e682906157.jpg

    По умолчанию все они у меня имеют значение свойства Visible := False. В зависимости от того, какой экран показать я скрываю текущий Visible := False и показываю нужный Visible := True. Если есть другое, более правильное решение, то пожалуйста скажите как нужно делать. Я основывался на примерах из папки Samples.

    На одном из экранов у меня происходит поиск Bluetooth устройств и найденные добавляются в ComboBox. Пока идет поиск я одновременно показываю Layout с прозрачностью 100%, в котором у меня крутится AniIndicator. Этот самый Layout нужен для того, чтобы пользователь никуда не ткнул, пока идет поиск. Изначально была идея затемнять все элементы, т.е. я делал прозрачность Layout'а 50%.

    Так вот, у меня, после того как все устройства найдены и добавлены в ComboBox, Layout с AniIndicator'ом скрывается, и почти через раз появляются глюки по отрисовке как элементов формы, так и самой формы.

    Вот так экран выглядит до поиска устройств - http://joxi.ru/v29QNPPHb9ba2G

    Спойлер

    v29QNPPHb9ba2G.jpg

    Вот так экран выглядит, когда показан Layout с AniIndicator'ом - http://joxi.ru/GrqMyXXTMVMqrz

    Спойлер

    GrqMyXXTMVMqrz.jpg

     

    Вот такие баги случаются, после того когда я скрываю Layout с AniIndicator'ом:

    1) http://joxi.ru/zAN0kYYHqXWgm9

    Спойлер

    zAN0kYYHqXWgm9.jpg

    2) http://joxi.ru/v29QNPPHb9va2G

    Спойлер

    v29QNPPHb9va2G.jpg

    3) http://joxi.ru/DmBXxLLco5DVAP

    Спойлер

    DmBXxLLco5DVAP.jpg

    4) http://joxi.ru/Vm6ydxxhn1JVrZ

    Спойлер

    Vm6ydxxhn1JVrZ.jpg

    5) http://joxi.ru/DrlapooU15BZmP

    Спойлер

    DrlapooU15BZmP.jpg

    6) http://joxi.ru/eAOqDYYSgQWKmo

    Спойлер

    eAOqDYYSgQWKmo.jpg

    7) http://joxi.ru/4Ak3Goos4baJAq

    Спойлер

    4Ak3Goos4baJAq.jpg

    8) Бывает даже приложение вылетает.

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

    Спасибо!

         

     

     

  15. В 29.11.2016 в 15:21, ZuBy сказал:

    Если писать в папку приложения TPath.GetDocumentsPath, то файлы автоматически удаляются при деинсталяции приложения

    Действительно это так! Спасибо!

    Но, есть проблема, почему-то в этот INI файл, расположенный в   TPath.GetDocumentsPath  я могу записать только один раз. Сколько бы я не пытался это сделать, после перезапуска приложения всегда одна и та же информация, которая была записана в первый раз. Подскажите в чем может быть проблема? Спасибо!

  16. Всем спасибо большое за тесты и советы. Частично проблему решил - "причесал" код, удалил неиспользуемые переменные и теперь вроде на других устройствах заработало. Еще были жалобы на неактивные edit'ы, Родительским объектам присвоил значение свойства Locked в True и проблема решилась.

    Тему прошу пока не закрывать, пока приложение на бета тестировании.     

  17. В 21.11.2016 в 17:57, sinuke сказал:

    хм. приложение удалил. переустановил из маркета заново, но настройки не сбросились.... все равно предлагает ввести код (которого у меня нет, ведь вводе данных произошел AV)

    Я еще пока не знаю как при AV и деинсталляции приложения удалять файл с настройками ))

  18. В 21.11.2016 в 13:23, Rusland сказал:

    DimeDron, у вас программа нормально работает? Попробуйте удалить установленную на устройстве версию и установить программу с PlayMarket-а.

    Бывает что в скомпиленная в Debug режиме программа работает, а в Release - нет. Скорее всего банально ошибка в программе.

    Да, из PlayMarket'a устанавливаю - все работает нормально

  19. 46 минут назад, OnePeople сказал:

    Ну если на запуске ложиться значит проблема в коде в секциях cоздания и показа формы OnCreate или OnShow

    И TetheringManager, AppProfile попробуйте задать им свойство Enabled=false, а в OnShow сделать их true

    А если я не использую TetheringManager, AppProfile, мне их нужно добавить на форму и сделать то что Вы написали? Попробую, но мне кажется это не то, вроде как ругается на порцесс, связанный с видео 

    com.google.android.videos

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

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