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

golomeen

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

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

  • Посещение

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

  1. Обновил вчера iPhone до 10.1 теперь еще веселее - 

    При попытке отладить

    ---------------------------
    Error
    ---------------------------
    Can't start debugserver on device - device support image was not mounted..
    ---------------------------
    OK   
    ---------------------------

     

    При попытке запустить просто так, то же самое только сбоку )

    [Window Title]
    Error

    [Content]
    Unable to launch process on '192.168.126.128' using the parameters from the 'ios10' profile.

    The following error was returned: 'Can't start debugserver on device - device support image was not mounted.'

    [OK]

     

    Притащил айпад с 10.0.2 симптомы те же, что в начале темы - циклический launch

     

  2. На живом телефоне запускается, работает, но не отлаживается. Попытка запустить с отладчиком делает launching в студии-попытка запуска на телефоне-home screen-и так несколько раз (наверно теоретически до бесконечности :)

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

  3. да, после обновления

    хм, пойду на сиэтле проверю!  сиэтл убился, да и вряд ли ему суждено на 7/10 что-то сделать )

    на другом телефоне, ну... с трудностями, но есть, может завтра получится

  4. ну, полтора года уже нормально дебажу, не было такой проблемы с этим приложением (да и с прочими)

    тут и ось новая вышла, xcode.. и телефон другой и апдейт поспел, в общем сделал major update всего сразу, тем более что не занимался этим где-то с июня

    sdk от 10

    в симуляторе запускается без проблем, брейкпойнты работают

  5. Добрый день, коллеги!

    В цикле раз в несколько секунд мелькает Launching в студии, splash scrren с лого на телефоне

    Если запустить в это время прямо с телефона, то приложение стартует и студия перестает мелькать. Но отладка при этом не работает, хотя брейкпойнты показывает как активные.

    Без отладки из студии запускается хорошо

     

    Приложение чистое, с нуля, кнопка и сообщение по нажатию

    Ессно т.к. лень плодить профили, запускаю под тем же id/профилем что и весьма серьезное приложение про базы данных (с чего и началась проблема после апдейта)

    В консоли PAServer ничего нет, версия 9.0.2.03

     

  6. CharSet я рассматриваю как максимально абстрактное понятие, я даже еще не понял какие типы для этого есть в fmx

    Русские символы это кириллица

    Английские - латиница

    Какие-нить иероглифы это что-то еще

    надеюсь есть способы понять из какого множества данный символ, ну соответственно и весь текст

  7. Задача следующая - при вводе текста необходим простой оптимизационный фильтр. Если текст в другом charset нежели словарь в котором мы должны искать, просто не делать поиск. Словарей несколько, один с большой вероятностью английский, другой скорее всего смешанный, но может быть и чисто национальным.

    В качестве простейшего workaround рассматриваю фильтр по принципу меньше 7 значащих бит это чисто английский текст + определение input locale, но не нашел как узнать последний (кроме Win32 ессно :)

    Код должен быть кроссплатформенным. Спасибо.

  8. Модальное или нет - не так важно, важно чтоб не перекрывало всю форму и работало на iOS

    Размер минимальный, что-то шевелящееся типа палочек по кругу и строка обозначающая сам процесс. Как бы это сделать?

    Что-то типа

    myInfoPopup.Show('Stage 1');
    
    SomeProcess1();
    
    myInfoPopup.Show('Stage 2')
    
    SomeProcess2();
    
    myInfoPopup.Hide;

     

  9. Сделал компонент типа тулбарчика

    Суть в двух словах - на listItem/TreeItem в рантайме налепляет TPanel с TButton'ами внутри, до нажатия на любой из Button. Функционал под Button к примеру Show/Hide

    1. После нажатия кнопка делается как будто прозрачной

    2. Т.к. нажатие кнопки меняет состояние Item то при следующем показе кнопка должна показывать другой текст, тем не менее но отображается старый

    3. Эффекты 1 и 2 сохраняются даже при смене Item и пропадают только если Item находится в другом родителе (из ListBox в TreeView)

    4. Нужный текст меняется непосредственно при нажатии

     

    Далее код метода. Вызывается например так SetOptions(lbWorks.ListItems[0],['Delete','Hide']);

    Например нажимаю Hide, при следующем показе это будет

    SetOptions(lbWorks.ListItems[0],['Delete','Show']) - вот здесь фиг! Пока я не поменяю lbWorks на какой-нить tvSomeTree здесь вечно будет показывать Hide (и наоборот)

    Во всех режимах iOS такая ерунда, под win32 ок.

    procedure TSwiperOptions.SetOptions(AObject: TObject; options: array of string);
    var
      i: integer;
      oldW : Single;
      btn : TActionBtn;
      par : TfmxObject;
    begin
      if not Assigned(Parent) then
        exit;
    
      {workaround for button repaint}
      Par := Parent;
      Parent := nil;
      Parent := Par;
    
    
      //FButtons.Clear;
    {  for i := ControlsCount-1 downto 0 do
      begin
        comp := Controls[i];
        Self.Controls.Remove(comp);
        comp.Free;
      end; }
    
      FContextObject := AObject;
      for i := FButtons.Count to Length(options)-1 do
      begin
        btn := TActionBtn.Create(Self);
        FButtons.Add(btn);
        btn.Parent := self;
        btn.HitTest := True;
        btn.Align := TAlignLayout.Right;
        btn.VertTextAlign := TTextAlign.Center;
        btn.OnClick := OnButtonClick;
        btn.ControlType := TControlType.Platform;
        btn.CanFocus := False;
        btn.StyledSettings := [];
      end;
    
      for i := Length(options) to FButtons.Count-1  do
        FButtons[i].Visible := false;
    
      for i := 0 to Length(options)-1 do
      begin
        btn := FButtons[i];
        btn.Visible := True;
        btn.StaysPressed := false;
        btn.Text := options[i];
        btn.Width := Self.Width / Length(options);
      end;
      oldW := Width;
      Width := 0;
      CanFocus := True;
      SetFocus;
      Visible := True;
      FMX.Ani.TAnimator.AnimateFloat(Self,'Width',oldW,0.5);
    end;

    Если бы я знал какие-то программные пляски, то наверно я бы забил, но я даже их пока не нашел чтобы избавиться от эффекта

  10. Для отрисовки 3д эффектов создаю прозрачный Viewport и делаю ему align=client

    На ретине, будь то симулятор или железка при старте вьюпорт ведет себя в половинных координатах, дальше середины экрана даже не отрисовывает ничего.Это происходит до тех пор пока экран не повернешь хотя бы один раз.

    На симуляторе без ретины (такой железки нет) все сразу ок.

    На win32 и подавно все ок

    Seattle, Ios 9.3.1

     

    Ну и заодно вопрос, как сделать чтобы TTextLayer3D был непрозрачным либо на какой аналог заменить

    wrongViewPort.png

    normViewPort.png

  11. Seattle, ios9.2, iphone 6, собранная на 32бит прога запускается в полный экран, собранная на 64 запускается с краями сверху и снизу (ессно и статусная строка c оператором тоже находится не на самом верху)

     

    в .plist

    <key>UIDeviceFamily</key>
    <array>
         <integer>1</integer>
         <integer>2</integer>
    </array>
    
     
    и в доках эппла ничего нового на эту тему нет
     
  12. Поэкспериментировал и нашел простейший случай - узел и в нем два листа.

    Алгоритм следующий (упрощенно)

    каждый лист показывает пару key=value

    при клике в узел остается только key= и показывается листвью с выбором value. Затем мы получаем грубо key=new value (хотя не обязательно)

    После такой операции вы обязательно получаем то что 2 листа меняются местами

     

    С узлом ничего не происходит ни программно ни фактически

     

    В более сложных случаях тоже шевеление наблюдается, но я его не изучал подробно

  13. используй лог-сервис.

    sdk\tools\lib\monitor-x86\monitor.exe у тебя показывает отладку?

    про дуализм разобрался - т.к. это был инишник, там есть принудительный updateFile в деструкторе, забанил в потомке

    про отладку тоже - каких-то опций линкере и компилере не хватало, они были на непривычной закладке

  14. В пробном мемо кода нет, на то оно и пробное

    В целевом месте кода много и сложный, показывать весь проект я не могу

     

    Хотелось бы понимать - принципиально распознавание работает ли в fmx, какие есть ограничения на использование, в каком порядке срабатывают события, как часто и т.д.

  15. Найдено вот здесь. На xe8 работает по крайней мере
     
      var AEService : IFMXApplicationEventService;
    begin
      if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, IInterface(AEService)) then
      begin
        AEService.SetApplicationEventHandler(fmxMain.AppEventHandler);
      end;
    ...
    function TfmxMain.AppEventHandler(AAppEvent: TApplicationEvent;
      AContext: TObject): Boolean;
      var
        st : string;
        uri : TIdURI;
    begin
     case AAppEvent of
        AAppEvent.aeFinishedLaunching: begin end;
        AAppEvent.aeBecameActive: begin end;
        AAppEvent.aeWillBecomeInactive: begin   end;
        AAppEvent.aeEnteredBackground: begin  end;
        AAppEvent.aeWillBecomeForeground: begin   end;
        AAppEvent.aeWillTerminate: begin end;
        AAppEvent.aeLowMemory: begin   end;
        AAppEvent.aeTimeChange: begin end;
        AAppEvent.aeOpenURL: begin
          st := (AContext as TiOSOpenApplicationContext).URL;
          uri := TIdURI.Create(st);
          MyLoadFile(uri.Path+'/'+uri.Document);
        end;
     end;
    
      Result := True;
    end;
    
    

    Остался вопрос странного дуализма загрузки - с одной стороны орет что operation not permitted, но с другой загрузка полностью проходит. Ну а с третьей - обновление интерфейса не происходит, хотя указано ) Из-за невозможности отладки на устройстве не могу выяснить где же падает exception

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