krapotkin

Пользователи
  • Публикации

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

  • Посещение

  • Days Won

    48

Все публикации пользователя krapotkin

  1. можно поискать решения Drawer для FMX когда еще не было MultiView. может даже побыстрее оказаться, чем копать сложный код ярослава идея простая поверх всего лежит Layout1, в нем панель Panel1 и еще один прозрачный Layout2. Layout1.Left = -panel1.width а Layout2 шириной N пикселов это активная зона с изощренной логикой обработки MouseDown/Move/Up, Click или Tap
  2. тема поднималась уже. нет, нельзя...
  3. никогда не работал с SQLite [update] а вы в курсе, что EditChange это только когда выйти из Edit ?
  4. в моем понимании нет никаких "ссылок приложения". хотя мало ли что... почитайте статью ярослава по жизненным циклам объектов
  5. думаю, в белоярке ничего не изменится никогда ) а вот на самой станции реактор нового типа запустили. крутой )
  6. еще раз. Для windows подойдет вообще все что угодно, там диалоги вообще модальные. В мобильных ОС используется ARC - автоподсчет ссылок. Почитайте. При использовании Create(v), на форму начинает ссылаться компонент v, поэтому подсчет ссылок не дает ей самоубиться. Но это же говорит о том, что при закрытии она висит в памяти. Не особо страшно, но... Если указать NIL, то форма будет убита сразу после выхода, и обращение к ней даст AV Поэтому я и говорю, надо смотреть код.
  7. мало того, если БД уже есть на устройстве, то повторный деплой не перезапишет ее чтобы не терять данные предполагается, что программист должен сам предусмотреть механизм, который из старой БД сделает новую
  8. делфи точно ни при чем при чем может быть только управление жизненным циклом объектов, которое нужно учитывать
  9. @gelo1 Apk - это инсталляционный архив почему там что-то должно меняться??
  10. попробуйте вместо NIL Self. Падать перестанет скорее всего. Но чтобы реально знать что не так, нужно видеть кот
  11. модальность реализуется в мобильных системах не так как на десктопе по сути, мы когда запускаем форму 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;
  12. вы не очень внимательно читаете 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)
  13. ничего не понятно раньше вы писали if inputQuery then SomeProcedure сейчас надо писать inputQuery(SomeProcedure) procedure SomeProcedure; if Result=mrOK then собственно вся разница Одну строку добавили. Где if AResult
  14. то, что вы не хотите принять принцип работы операционной системы, которая справедливо лишает "программеров" возможности одним окном убить всё вокруг, никак не повод помогать делать то, что не нужно делать на мобильных ОС нет модальных диалогов таких как на десктопе. что конкретно у вас не получается? после выполнения диалога программа придет туда, где у вас 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); в чем проблема-то?
  15. ну, несложно написать несколько строк стандартной политики тем более READ PHONE STATE нужно почти всем. я даже думаю, что оно там по умолчанию всегда есть.
  16. 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.
  17. нельзя так
  18. я ходил вторым путем. просто определял куда кликнули. это копеешная операция. и никаких архитектур... только еще глубже) на простом скроллбоксе
  19. Вам потому никто и не отвечает, что C++ никто не копал и не поддерживал. И ошибок в нем больше чем в делфи, и поддержка еще хуже. На делфи, да, с модифицированным сервером из статьи, у меня тоже опубликованное и рабочее приложение на андроид и иос. Собственно, это вам и написали все и ранее и сейчас. Firebase тоже странно ругать. Это средство "от производителя". И я не верю, что там есть до сих пор насколько-либо крупные проблемы. Ну и студия к ним вообще никакого отношения не имеет. Это все так. офф
  20. По ксамарину фидбек будет весьма интересен) Там, я слышал, тоже мед неровно намазан.
  21. а если пересоздать TClientModule ?
  22. http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Connect_to_MySQL_Server_(FireDAC) characterSet
  23. нельзя удалять себя из обработчика себя нужно запустить TTask.Run(procedure begin TThread.Synchronize(procedure begin ваше действие с компонентом end) end);
  24. no it isn't