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

krapotkin

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

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

  • Посещение

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

    209

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

  1. там есть проблема схожая с проблемой ARC

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

    тут только разработчик может правильно построить модель сериализации/десериализации объектов

    особенно если объектов несколько и ссылки желательно на другом конце как-то восстановить.

     

    а еще лучше постараться не доводить тонкого клиента до такой нужды )))

  2. я могу попробовать реализовать идею "разделенного" tabcontrol и контейнера

    контейнер сделать по образцу Image Gallery

    единственное, не удастся сделать сам TabControl как в андроиде, где полоска, подчеркивающая таб так же плавно перемещается под табами

  3. эмм 

    вопрос из разных имхо несвязанных областей

    если в качестве свойства объект, то он тоже сериализуется

    сериализация - это просто запись свойств объекта в строку, чтобы по этой строке можно было построить точно такой же объект

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

     

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

  4. с одной стороны, ответ - да

    Datasnap позволяет передавать объекты

    работает механизм маршаллинга - объект сериализуется, превращается в JSON строку, на одном конце, и обратно создается на другом.

    но, если структура объекта хоть чуть-чуть сложна, например, объект содержит TObjectList из других объектов, на автомате это уже не работает, хотя должно бы. (на XE7 было так, 8-не проверял)

     

    поэтому я в свое время принял решение делать то же самое самостоятельно

    мой объект сам умеет себя сериализовать/десериализовать, а к передаче предъявляется строка.

    либо, для тяжелых объектов - Stream

  5. Прицепился к LocationSensor.OnStateChanged. Хотел получать статус GPS на телефоне.

    По другим событиям тоже проверяю состояние LocationSensor.Sensor.State

     

    StateChanged, видимо, не вызывается, State всегда Ready независимо, включен GPS или нет

    Это стандартное поведение?

  6. в разборе работ конкурса Emro писали, что именно над этой фичей они долго бились ))

    рискну предположить, что фреймы отдельно - табконтрол-отдельно

  7. Дополнение

    Если добавляли маркеры и т.д. на MapView, ссылки на них нужно хранить, чтобы уничтожить

     

    Если я правильно понял, то дело опять в ARC, и, если мы не сохраняем результат функции

    Map1.AddMarker(markerDescription) 

    RefCount маркера все равно увеличивается

    так что 

    marker:=Map1.AddMarker(markerDescription);
    ...
    marker:=NIL;
  8. подтверждаю, нашел методом тыка точно такой же способ

    на форме только TMapView, это не главная форма приложения.
    открываю форму, нажимаю back, либо любым способом делаю Close, DisposeOf и т.д.

    вываливается вот с таким стеком

    Dbzb2R6m.png

  9. Подведу итог

    После всех изысканий выяснилось, что не все йогурты клавиатуры одинаково полезны.

    Стандартная клава Google все делает правильно, свайп тоже

    Косяк KeyboardType проявлялся только на моей предустановленной в телефоне клавиатуре

    Остальные выявленные проблемы - более стойкие и не зависят от клавиатуры.

     

    Благодарю всех за участие и помощь

  10. спасибо за ответы, но

    этот метод (спрятать/показать клавиатуру) я перед этим уже испробовал сам

    нужного эффекта по-прежнему нет...

     

    вообще чертовщина.

     

    если KeyboardType = alphabet то у Edit есть KeyDown и KeyUp

    если KeyboardType = numpad то только KeyDown, в KeyUp она уже не приходит

    при этом сама клава, есс-но, остается как была alpha

     

    Если в Edit1.OnKeyDown сделать Edit2.SetFocus, то срабатывает Edit2.OnKeyDown, даже если Key:=0 !!!!

    O_O

  11. ок,

    т.е. нужно найти стек, который создается в FMX

    он же есть?

    форму я создаю TMyForm.Create(NIL).Show

    в OnClose стоит Action:=caFree,

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

    но back приводит к ней, значит создается заново

  12. хм! фак!

     

    как-то неочевидно для меня было, что можно выбрать стайл, которого нет в выпадающем списке O_O

    а ведь можно, оказывается ...

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

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

     

    если убрать r2 то

    1) если panel.parent = form  то панель становится вообще прозрачной, 
    2) если panel.parent = r1  такой же полупрозрачной как r1

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

  14. это тот же костыль - и требует он формирования явного дерева состояний и перехвата и переопределения системных кнопок во всех формах

    в Android уже есть эта функциональность, нужно только узнать, как ей воспользоваться

  15. щастья по-прежнему нет

    Dbzb2R1q.png

    r2 - черный полупрозрачный Align=Client

    r1 - черный непрозрачный Align=Center

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

    так что результат в принципе похож, но квест не пройден )))

    Dbzb2R1t.png

  16. кнопки получены друг из друга с помощью Ctrl+C Ctrl+V )))

    расследование показало, что высота увеличилась из-за малых отступов от текста до края кнопки 

    сделал пошире - теперь одинаковые

    но вот ни разу не очевидно ))))

     

    поместить все контролы на Layout,

    имеется в виду идея - форма на весь экран, но невидимая, а layout в центре имитирует диалог?

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