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

FREEFAR

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

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

  • Посещение

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

    13

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

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

    все-таки вернусь к логической загадке ARC

    1. если вы все ссылки на объект обнулили, то вызывать его деструктор не требуется, его вызовут за вас

    2. если не все обнулили, но вызвали деструктор, значит имеем нехилую вероятность того, что кто-то, у кого осталась ссылка, обратится по ней к объекту. тогда мы имеем гарантированный AV

    3. Тогда зачем все эти варианты с DisposeOF ???

     

    У меня вся программа на фреймах построена, и ничего, создаются удаляются. При этом отлаживаюсь я в Win64, а потом запускаю на Andoird. И все работает штатно в обоих случаях. 

    Единственное отличие, я обычно не указываю владельца (Owner). Т.е.  F:=TMyFrame.Create(NIL)

    После использования сам убираю за собой
    F.Parent:=NIL;
    FreeAndNil(F)

    и все норм. 

    В некоторых фреймах еще большинство компонентов в динамике создается и пересоздается. и тоже никаких явных вызовов деструктора.

    Так что лучше все-таки следовать архитектуре, а не раскладывать костылики...

    Привет. Так не делал никогда. Пока во всех проектах поле использования динамически созданных объектов вызваю DisposeOf... И вот интересно в чем отличие твоего варианта от используемого мной. Как правильно с этим жить? ))

  2. В 18.01.2019 в 09:08, beegl сказал:

    привет, подскажите, как загрузить и воспроизвесть GIF, "вшитый" в APK файле, чтоб не открывать из директории, .. вот это не действует:

     

    
    procedure TForm4.FormCreate(Sender: TObject);
    
    	begin
    
    	  FGifPlayer := TGifPlayer.Create(Self);
    
    	  FGifPlayer.Image := Image1;
    
    	end;[/CODE]
    

    а если положить в ресурсы?

  3. 6 минут назад, kami сказал:

    Предположил на основании твоего вывода " не будет ошибки дублирования? по моему будет ", который проверяется и опровергается за 2 минуты.
    В результате вместо того, чтобы понять откуда ноги растут у ошибки дублирования имен - вы имеете костыли типа "по этой причине именовали := 'frame_'+i.toString; "

    Предполагай по сути вопроса. А не отвлекаясь на офТоп. Или там в Питере культуре особо не учат? Или тебя ранило походу где-то, чем-то, как-то.
    Всем успел накидать я смотрю

  4. 5 часов назад, kami сказал:

    попробовать религия не позволяет?

    Только что написанный код:

    
    var
      i: Integer;
      fr: TFrame13; // отдельный фрейм, у которого в ObjectInspector так и написано: Name = Frame13
    begin
      for i := 0 to 5 do
        begin
          fr:=TFrame13.Create(nil);
          fr.Parent:=Self;
          fr.Align:=alRight;
        end;

    всё отрабатывает без проблем, никаких вопросов по именованию рантайм-компонентов не возникает.

    Откуда узнал про религию дядя?

  5. 2 часа назад, kami сказал:

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

    А разве если создавать по типу 

    for i:=0 to 5 do begin

      a := tframe.create(self);

    end;

    не будет ошибки дублирования? по моему будет. по этой причине именовали := 'frame_'+i.toString;

  6. 2 часа назад, Anatoliy сказал:

    Прошу прощения можно кодом показать вашу мысль? Я ее потом буду переделывать на с++. :)

    А если так попробовать?

      if (NewLocation.Latitude.ToString = '0')
          or (NewLocation.Longitude.ToString = '0')
          or (NewLocation.Longitude.ToString = 'NAN')
          or (NewLocation.Longitude.ToString = 'NAN')
            then
              accessToAnyFrames := False

  7. 5 часов назад, Anatoliy сказал:

    Спасибо. Подходить любой вариант. Можно показать, как это реализовать? Я сделал приложение для американской аптеки в Колорадо. Эта аптека может торговать марихуаной. Apple наложил ограничение, что приложение должно запускаться только в штате Колорадо. Я все это сделал благодоря классу TGeocoder. Но если пользователь нажимает кнопку Запретить доступ к геоданым, не знаю как отловить...

    P.S.

    А вот гугл опубликовал приложение за пять минут и пофиг им марихуана...

    c apple все сложно ))) мне они тоже нервы потрепали.

    Я бы сделал так. Если Сенсор возвращает NAN или 0 то не отображал бы какой-нибудь функционал

  8. 1 час назад, Anatoliy сказал:

    Здравствуйте. Приложение использует компонент ТLocationSensor. При самом первом старте приложения возникает стандартное окно IOS с вопросом разрешить или нет доступ к геоданным. Как в приложении можно отловить если пользователь нажал кнопку Запретить доступ к геоданным? 

    Спасибо.

    Sensor не будет отдавать данные - такой вариант не подходит?

  9. 52 минуты назад, Roma77751 сказал:

    под виндой не проверял. Но так и думал что цвета поменяются, этот код(неисправленный) под виндой норм все отображал, а под андроидом криво....с одним и тем же кодом...получается если мы тупо в коде поменяли цвета, то сейчас наверное под виндой все синее...? у меня конкретно была проблема с андроидом, это решение видимо не самое оптимальное, но меня устраивает....если есть желание давайте попробуем разобраться с этим...я за!) 

    на иОС тоже порядок

  10. 1 час назад, Roma77751 сказал:

    ПРОБЛЕМА РЕШЕНА! Всем спасибо, отдельное спасибо dnekrasov и IVGSoft, натолкнули на верную мысль. Только менять переменные надо было тут 

     Begin
          Stream.Read(RGBEntry, SizeOf(RGBEntry));
          With APalette do
          begin
            B := RGBEntry.R or (RGBEntry.R shl 8);
            G := RGBEntry.G or (RGBEntry.G shl 8);
            R := RGBEntry.B or (RGBEntry.B shl 8);
            A := $FF;
          end;

     видимо китайцы что то напутали...<em><span class=?"> Прикрепляю исправленный исходник.

    FMX.GifUtils.rar

    Screenshot_2018-11-27-18-51-20.png

    Screenshot_2018-11-27-18-52-18.png

    ай да картинка - аж пива захотелось) )

  11. 48 минут назад, Roma77751 сказал:

    Друзья доброго времени суток! Ребят подскажите плз, облазил форумы что-то не нашёл инфу, видимо access'ом вообще никто не пользуется или его нельзя использовать в андроиде...в общем ситуация такая: база данных в access загружена на телефоне. Нужно просто отобразить Ее в гриде... я сделал так:

    добавил на форму dbdemosconnection(вкладка firedac),fdquery, грид и кнопку. В fdquery прописал sql запрос и с помощью live bindings соединил его с гридом.(в таком раскладе если прописать путь в dbdemosconnection под виндой все работает-проверил. Далее по  нажатию кнопки dbdemosconnection.params.database:=путь к файлу на телефоне. Ну и fdquery.active:=true. В итоге приложение просто вылетает когда fdquery.active пытается перейти в значение true... в чем проблема? На андроиде нельзя отобразить access базу или я что-то делаю не так? 

     

    Рома, реально рассмотри варик работы с SQL lite& ЧЕрез пару месяцев работы с этой бд сам будешь рад профиту.

  12. 1 час назад, Равиль Зарипов (ZuBy) сказал:

    либо сертификат настроен не правильно

    В общем забороли. Дело вот в чем. Само приложение общается  с сервером одним (там сертификат норм), а вот сервис который прикручен к приложению общается с другим сервером. Сервис написан нативно. Но писали его до марта 2017. А значит возможно писал не выдержав новые требования. 

    Решение: выпилил из приложения сервис))) Профит

  13. Всем доброго времени суток. 

    Казалось бы. Во время разработки и перед тем как подписали приложение сертификатом Distribution, пуши приходили норм. Но после того как прошли аудит Apple пуши куда-то пропали. FCM возвращал ошибку InvalidRegistration.
    Оказалось все достаточно просто. На сервере с которого мы отправляем пуш, В php скрипте, который отправляет пуши надо выставить

    sandbox = false

    Ура! Всем удачи)

  14. В ‎24‎.‎09‎.‎2018 в 21:28, CyberStorm сказал:

    Привет.

    Имею ноутбук (i5, 8gb) с Windows 10, на котором установлена Delphi 10.3, на котором отлично создаются приложения для винды и андроид устройств. Решил попробовать больше, и хочется влиться в айфон-тусовку, но никакого опыта владения яблочных устройств не было. Почитал статьи на хабре, посмотрел вебинары Бровина, везде нужно устройство с MacOS, есть возможность за недорого взять  MacMini с core2duo 1,8hz и пятый айфон - и собственно вопрос - будет ли это достаточным для начальной разработки? 

    Смущает что операционок MacOS 10 - есть много версий, для процессоров Core2Duo - крайняя версия - некий леопард, не слишком ли это отсталая версия для работы? Возможно это что то типа Windows 98?)) Или стоит вовсе заморочиться с виртуальной машиной, и виртуальным айфонами? Или копить на последние mac-mini или imac? Подскажите ?

    исходя из этого

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