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

krapotkin

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

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

  • Посещение

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

    210

Весь контент krapotkin

  1. нужно отметить, что показанное разрешение - виртуальное экран там 5.5" 1280*720
  2. вот видео вот текст var Form1: TForm1; implementation {$R *.fmx} const SPEED = 10; MARGIN = 20; procedure TForm1.FormResize(Sender: TObject); begin lbl1.Text := Format('%d x %d',[width, height]); end; procedure TForm1.FormShow(Sender: TObject); begin txt1.Position.Point := PointF(margin,MARGIN); txt2.Position.Point := pointf(width - margin - txt2.Width, MARGIN); txt3.Position.Point := pointf(width - margin - txt3.Width, height - margin - txt3.Height); txt4.Position.Point := pointf(margin, height - margin - txt4.Height); txt1.Tag := 1; txt2.Tag := 2; txt3.Tag := 3; txt4.Tag := 4; end; procedure TForm1.MoveText(t: TText); begin case t.Tag of 1:begin t.Position.X := t.Position.X + SPEED; if t.Width + t.Position.X + MARGIN >= Width then t.Tag := 2; end; 2:begin t.Position.Y := t.Position.Y + SPEED; if t.Height + t.Position.Y + MARGIN >= Height then t.Tag := 3; end; 3:begin t.Position.X := t.Position.X - SPEED; if t.Position.X - MARGIN <= 0 then t.Tag := 4; end; 4:begin t.Position.Y := t.Position.Y - SPEED; if t.Position.Y - MARGIN <= 0 then t.Tag := 1; end; end; // t.Text := t.Name + ' ' + Format('%d x %d',[round(t.Position.x), Round(t.Position.y)]); end; procedure TForm1.tmr1Timer(Sender: TObject); begin MoveText(txt1); MoveText(txt2); MoveText(txt3); MoveText(txt4); end; end.
  3. там есть проблема схожая с проблемой ARC если один объект хранит ссылку на другой объект, то варианта два - либо он им владеет, и нужно встроенный объект передавать вместе с родителем, либо это просто ссылка на объект из к-нибудь например справочника. тут только разработчик может правильно построить модель сериализации/десериализации объектов особенно если объектов несколько и ссылки желательно на другом конце как-то восстановить. а еще лучше постараться не доводить тонкого клиента до такой нужды )))
  4. я могу попробовать реализовать идею "разделенного" tabcontrol и контейнера контейнер сделать по образцу Image Gallery единственное, не удастся сделать сам TabControl как в андроиде, где полоска, подчеркивающая таб так же плавно перемещается под табами
  5. эмм вопрос из разных имхо несвязанных областей если в качестве свойства объект, то он тоже сериализуется сериализация - это просто запись свойств объекта в строку, чтобы по этой строке можно было построить точно такой же объект а создание объекта в момент обращения к нему - это техника, позволяющая отложить некоторые работы на момент, когда они действительно нужны если строить объект на принимающей стороне, то техника отложенного создания не может быть применена, т.к. строка единая и хранить ее, а потом вычленять из нее свойства одного внутреннего объекта - это лишний геморрой
  6. пример рабочего сервера, я конечно не смогу скинуть, но pawel glowacki отличную серию сделал в свое время http://www.embarcadero.com/rad-in-action/delphi-labs
  7. с одной стороны, ответ - да Datasnap позволяет передавать объекты работает механизм маршаллинга - объект сериализуется, превращается в JSON строку, на одном конце, и обратно создается на другом. но, если структура объекта хоть чуть-чуть сложна, например, объект содержит TObjectList из других объектов, на автомате это уже не работает, хотя должно бы. (на XE7 было так, 8-не проверял) поэтому я в свое время принял решение делать то же самое самостоятельно мой объект сам умеет себя сериализовать/десериализовать, а к передаче предъявляется строка. либо, для тяжелых объектов - Stream
  8. спасибо за код. а пожелание это все вставить в Sensor.State остается разработчикам ...
  9. Прицепился к LocationSensor.OnStateChanged. Хотел получать статус GPS на телефоне. По другим событиям тоже проверяю состояние LocationSensor.Sensor.State StateChanged, видимо, не вызывается, State всегда Ready независимо, включен GPS или нет Это стандартное поведение?
  10. в разборе работ конкурса Emro писали, что именно над этой фичей они долго бились )) рискну предположить, что фреймы отдельно - табконтрол-отдельно
  11. Дополнение Если добавляли маркеры и т.д. на MapView, ссылки на них нужно хранить, чтобы уничтожить Если я правильно понял, то дело опять в ARC, и, если мы не сохраняем результат функции Map1.AddMarker(markerDescription) RefCount маркера все равно увеличивается так что marker:=Map1.AddMarker(markerDescription); ... marker:=NIL;
  12. подтверждаю, нашел методом тыка точно такой же способ на форме только TMapView, это не главная форма приложения. открываю форму, нажимаю back, либо любым способом делаю Close, DisposeOf и т.д. вываливается вот с таким стеком
  13. вот очень хорошее видео по listbox/view
  14. Подведу итог После всех изысканий выяснилось, что не все йогурты клавиатуры одинаково полезны. Стандартная клава Google все делает правильно, свайп тоже Косяк KeyboardType проявлялся только на моей предустановленной в телефоне клавиатуре Остальные выявленные проблемы - более стойкие и не зависят от клавиатуры. Благодарю всех за участие и помощь
  15. спасибо за ответы, но этот метод (спрятать/показать клавиатуру) я перед этим уже испробовал сам нужного эффекта по-прежнему нет... вообще чертовщина. если KeyboardType = alphabet то у Edit есть KeyDown и KeyUp если KeyboardType = numpad то только KeyDown, в KeyUp она уже не приходит при этом сама клава, есс-но, остается как была alpha Если в Edit1.OnKeyDown сделать Edit2.SetFocus, то срабатывает Edit2.OnKeyDown, даже если Key:=0 !!!! O_O
  16. пришлось еще одну панель чисто для рамочки накинуть... итог
  17. ок, т.е. нужно найти стек, который создается в FMX он же есть? форму я создаю TMyForm.Create(NIL).Show в OnClose стоит Action:=caFree, т.е. по идее, она должна разрушиться при показе следующей формы но back приводит к ней, значит создается заново
  18. хм! фак! как-то неочевидно для меня было, что можно выбрать стайл, которого нет в выпадающем списке O_O а ведь можно, оказывается ... правда, теперь нет рамочки у панели, но теперь, когда все можно.... ))
  19. You can implement this from your AndroidManifest.xml file, just adding[android:noHistory=true] attribute in those <activity> you want. выглядит более простым, правда же? вот и хочу найти, как это сделать
  20. чтобы нарисовать бэк, надо его иметь, а на руках его нет, он в StyleBook зашит, а у панели нет стиля с этим бэком... если убрать r2 то 1) если panel.parent = form то панель становится вообще прозрачной, 2) если panel.parent = r1 такой же полупрозрачной как r1 оба варианта делают форму неюзабельной, сквозь едиты торчит нижняя форма )))
  21. это тот же костыль - и требует он формирования явного дерева состояний и перехвата и переопределения системных кнопок во всех формах в Android уже есть эта функциональность, нужно только узнать, как ей воспользоваться
  22. в первом посте видно, какой должен быть бакграунд у формы у этой псевдо-формы его нет
  23. и делать Close в FormShow совсем плохой костыль
×
×
  • Создать...