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

krapotkin

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

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

  • Посещение

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

    209

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

  1. отсюда еще раз мораль. не нужно длительные действия выполнять в основном потоке. FormCreate должна всего лишь запускать поток, который считывает и подготавливает все что нужно. А при завершении потока заполняем компоненты на форме. Так что крутить анимацию должна уже вторая форма в то время пока данные готовятся.
  2. ну как бы самый большой склад - тут http://www.tmssoftware.com/site/tmsfmxpack.asp?s=fmxtreeview#features
  3. мобильный нельзя только внешний сервер и http...
  4. мне отвечали, что можно. но мой опыт работы с тетерингом смешанный. То работает, то фиг заведешь... Но я копал неглубоко
  5. тут как бы нечего сказать, кроме - "а для чего вам дебаггер-то дан?" заходит программа в этот обработчик? если заходит, то когда? какие значения принимают параметры Key и KeyChar?
  6. пишите IFDEF не ленитесь ))
  7. ну вообще Items Editor это часть пакета Design-Time для этого компонента и она вставляется в IDE но не входит в Run-Time пакет. Так что Items Editor просто нет в вашей программе
  8. можно поискать решения Drawer для FMX когда еще не было MultiView. может даже побыстрее оказаться, чем копать сложный код ярослава идея простая поверх всего лежит Layout1, в нем панель Panel1 и еще один прозрачный Layout2. Layout1.Left = -panel1.width а Layout2 шириной N пикселов это активная зона с изощренной логикой обработки MouseDown/Move/Up, Click или Tap
  9. тема поднималась уже. нет, нельзя...
  10. никогда не работал с SQLite [update] а вы в курсе, что EditChange это только когда выйти из Edit ?
  11. в моем понимании нет никаких "ссылок приложения". хотя мало ли что... почитайте статью ярослава по жизненным циклам объектов
  12. думаю, в белоярке ничего не изменится никогда ) а вот на самой станции реактор нового типа запустили. крутой )
  13. еще раз. Для windows подойдет вообще все что угодно, там диалоги вообще модальные. В мобильных ОС используется ARC - автоподсчет ссылок. Почитайте. При использовании Create(v), на форму начинает ссылаться компонент v, поэтому подсчет ссылок не дает ей самоубиться. Но это же говорит о том, что при закрытии она висит в памяти. Не особо страшно, но... Если указать NIL, то форма будет убита сразу после выхода, и обращение к ней даст AV Поэтому я и говорю, надо смотреть код.
  14. мало того, если БД уже есть на устройстве, то повторный деплой не перезапишет ее чтобы не терять данные предполагается, что программист должен сам предусмотреть механизм, который из старой БД сделает новую
  15. делфи точно ни при чем при чем может быть только управление жизненным циклом объектов, которое нужно учитывать
  16. @gelo1 Apk - это инсталляционный архив почему там что-то должно меняться??
  17. попробуйте вместо NIL Self. Падать перестанет скорее всего. Но чтобы реально знать что не так, нужно видеть кот
  18. модальность реализуется в мобильных системах не так как на десктопе по сути, мы когда запускаем форму ShowModal, даем ей процедуру, куда идти после закрытия по сути, тот же OnClose так что я бы написал так, чтобы вложенные простыни не плодить procedure TForm1.ShowForm2; var f:TForm2; begin f:=TForm2.Create(NIL); f.showModal(Form2Closed); end; procedure TForm1.Form2Closed(AResult: TModalResult); var f:TForm3; begin if AResult=mrOK then begin f:=TForm3.Create(NIL); f.showModal(Form3Closed); end end; procedure TForm1.Form3Closed(AResult: TModalResult); begin if AResult=mrOK then begin // что там надо после формы3 end end;
  19. вы не очень внимательно читаете best practice - это писать ActInsert... if Inputquery() then ProcInsert() ActEdit... if Inputquery() then ProcEdit() ActDelete... if Inputquery() then ProcDelete() и мы получаем ровно то же количество процедур если же писать "простыней" в старом варианте ActInsert... If InputQuery() then begin ... end; то это в точности соответствует InputQuery(..., procedure (...)begin if AResult=mrOk then begin end; end)
  20. ничего не понятно раньше вы писали if inputQuery then SomeProcedure сейчас надо писать inputQuery(SomeProcedure) procedure SomeProcedure; if Result=mrOK then собственно вся разница Одну строку добавили. Где if AResult
  21. то, что вы не хотите принять принцип работы операционной системы, которая справедливо лишает "программеров" возможности одним окном убить всё вокруг, никак не повод помогать делать то, что не нужно делать на мобильных ОС нет модальных диалогов таких как на десктопе. что конкретно у вас не получается? после выполнения диалога программа придет туда, где у вас Case AResult of там и размещайте код, который должен выполниться при возврате из диалога можете заменить TDialogService.InputQuery(Caption, [Text], Val, procedure(const AResult: TModalResult; const AValues: array of string) begin ... end ); на procedure TForm1.InputDialogHandler(const AResult: TModalResult; const AValues: array of string); begin case AResult of ... end; ... TDialogService.InputQuery(Caption, [Text], Val, InputDialogHandler); в чем проблема-то?
  22. ну, несложно написать несколько строк стандартной политики тем более READ PHONE STATE нужно почти всем. я даже думаю, что оно там по умолчанию всегда есть.
  23. You can set HitTest = false for all controls to be inserted. Then you can scroll easyly. But you should handle Scrollbox.OnTap by yourself. Calculate which control is at tap coordinates, Then call tap handler of this control.
×
×
  • Создать...