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

walexw

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

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

  • Посещение

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

  1. Не совсем в тему, sorry, не нашел подходящую.
    Вопрос такой, мне нужно при запуске приложения на устройстве получить версию андроида этого устройства.
    Поискал на форуме, не нашел.
    Может кто подскажет код или где посмотреть.
    Спасибо.

  2. 2 часа назад, ZuBy сказал:

    а где синхронизация?

    вы выполняете работу с визуальными компонентами без синхронизации

    void __fastcall domThread::UpdateAnimation()
    {
    //        Действительно мой код без синхронизации.
    //        Я просто не знаю какую команду надо ставить в синхронизацию для TAniIndikator
    //        Подскажите.
    }

  3. aIndic - индикатор, лежит на форме, при загрузке приложения ставлю его в середину и делаю Visible=false;

    Запускаю индикатор по нажатию кнопки:
    aIndic->Enabled  = true;
    aIndic->Visible     = true;
    Теперь запускаю поток, в котором несколько запросов к БД и их обработка
    domThread  *aiThread = new domThread(false);
    Больше по кнопке никакого кода нет.

    Теперь поток: (FreeOnTerminate = true;)
    void __fastcall domThread::Execute()
    {
    тут те самые запросы и их обработка, в конце:
    frm->aIndic->Visible  = false;
    frm->aIndic->Enabled  = false;
    Terminate();
    }

  4. Сделал все, как здесь посоветовали.
    В основном потоке делаю видимым индикатор и включаю его, затем запускаю отдельный поток в который перенес все запросы к БД.
    В конце из отдельного потока выключаю индикатор и делаю его невидимым.
    Сначала все получилось замечательно, как мне нужно было.
    Но со временем заметил, что на устройстве (смартфон, андроид 6) индикатор останавливается, но не исчезает.
    Застывший полукруг посреди экрана. Это бывает не всегда. Периодичность не замечена.
    Что может быть? Сам функционал остается работать, но вот этот полукруг...
    Посоветуйте, как подправить!

  5. Хочу сделать приложение многоязычным: русский, английский. французский.
    Заметил, что многие приложения из PlayMarket сами понимают какой язык на устройстве.
    Как я могу опросить устройство (смартфон, планшет) перед запуском приложения, какой язык выбран в системе.
    Есть ли такая возможность в RAD studio?
    Спасибо!

  6. rad studio 10 seattle, приложение под андроид
    Споткнулся на простой задаче. Нужно, чтобы во время обработки данных (несколько запросов SQL) на экране крутился AniIndicator.
    Создал класс domThread на базе потока, в нем одна процедура (код на С++)

    void __fastcall domThread::Execute()
    {
      frm->aniIndic->Enabled = true; // Запуск индикатора
      frm->aniIndic->Visible = true;
    }


    В основном коде пишу: (при клике на кнопку)

    domThread *aiThread = new domThread(false); // Сразу запустить поток с крутящимся индикатором
    Sleep(5000);                                // Это задержка 5 сек. пока заменяет выполнение запросов



    По факту получаю следующее, при нажатии кнопки сначала 5 секунд пауза, затем включается индикатор.
    Что я делаю неправильно? Разъясните, я впервые с потоками столкнулся.
     

  7. Присоединяюсь к главному вопросу. Уже пол года не знаю как побороть этот косяк.
    За это время перепробовал на Андроидах 4-й, 5-й и 6-й версий. И на планшетах и на смартфонах.
    Не встретил ни одного устройства, которое бы при переходе с поля (Tedit) на поле, забывало бы предыдущий стринг.
    Вставляет его, хоть ты тресни, плюс первую нажатую букву.
    Сейчас тестирую на смартфоне, 6-й Андроид. Выставил в настройках клавиатуры - отключить подсказки.
    Клава теперь тупо вводит буквы. Но это же не выход.
    Даже если выход, то очень некрасивый, подсказки многим удобны и нужны.
    Приложения пишу на Сиэтле.
    Все еще надеюсь, что найдется красивое решение.

  8. rad studio 10 seattle
    Проблема такая, форма на экране смартфона расположена горизонтально, по вертикали места маловато.
    В верху надпись, под ней поле для ввода счета игры, под ней кнопки OK - Cancel
    Под ними мемо поле для комментария игры (требование заказчика). Ширина, от левого края до правого.
    Если палец касается мемо-поля, появляется клавиатура на пол экрана, алгоритм поднимает vertScrollBox с мемо-полем
    над клавиатурой, кнопки уходят над экран.
    Мемо-поле можно вводить до бесконечности, причем нажатие Enter вполне допустимо, переход на новую строчку.
    Поле ползет вверх и вверх, а как закончить? Как дать команду завершить ввод мемо-текста и вернуть кнопки OK - Cancel?
    Я не имею опыта разработки программ под смартфоны.
    Прошу опытных разработчиков, посоветуйте, как мне поступить в моей ситуации.
    (На клавиатуре нет кнопки "закрыть клавиатуру")

  9. RAD Studio 10 Seattle

    Тема вроде многим нужная, но на форуме не нашел старых обсуждений.
    Ситуация простая: приложение создает файл, в моем случае это html-файл, но это не принципиально.
    Сохраняет его в своей директории.
    По желанию клиента, мне нужно его перебросить в google диск текущего андроидного устройства, (там дальше с ним будут работать, это уже не мое).
    Вроде бы через намерение такой трюк сделать можно, но я не силен в этой теме.
    Подскажите, кто знает или дайте ссылку где почитать.
    Спасибо.

  10. rad studio xe10 seattle
    Посоветуйте компонент. Мне надо, чтобы при клике по кнопке, посередине экрана смартфона, поверх содержимого, возникал прямоугольник,
    на нем три интернет-ссылки, чем-то похожий на окно about.
    В виндах мне-бы подошло модальное окно без системных кнопок, а что применяют для андроидных приложений?

    Спасибо!

  11. rad studio xe10 seattle
    Вроде простой вопрос, но что-то не нашел решения:
    Мне надо, чтобы у некоторых полей TEdit при вводе первый символ переводился в заглавный.
    Наверняка есть какая-нибудь настройка, которую я не знаю.
    Подскажите, кто в курсе. Неужели процедуру отдельную писать...
    Спасибо!

  12. Написал программу на rad studio xe10 seattle, использовал нелицензионную версию.
    Теперь хочу выложить ее на PlayMarket (вариант бесплатной скачки). Надо покупать лицензию.
    Посмотрел, лицензий множество и цены конечно...
    Подскажите, кто знает, какую лицензию покупать, чтобы не было проблем по юридической стороне вопроса
    и с минимальными финансовыми потерями для меня. Я сам по себе, никакую фирму не представляю.
    И чисто по деньгам, какова минимальная цена вопроса?
    Спасибо.

  13. 15 часов назад, Andrey Efimov сказал:

    Вот здесь, специально писал статью [Google Play] Публикация приложения в Google Play

    Ещё на форуме есть раздел Статьи и заметки, там статьи тоже упоминаются.

     

    Андрей, большое спасибо! То что надо!

  14. В ‎10‎.‎06‎.‎2016 в 12:38, ZuBy сказал:

    В Seattle ничего не нужно мудрить

    1) Заполняем список

    2) Делаем ресайз TListView

    3) В OnUpdateObjects меняем видимость элементов

    У меня в проекте 5-6 TListView с кастомными рендорами, все корректно работает.

    ZuBy, не могли бы вы выложить текст одного из OnUpdateObjects, где вы обрабатываете какие-либо свойства TextButton
    Спасибо.

  15. 4 часа назад, Pax Beach сказал:

    А... так это просто решается.

    
    procedure TfmSettings.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
    var
      FService: IFMXVirtualKeyboardService;
    begin
      if (Key = vkHardwareBack) then begin
        Key := 0; // <=== вот здесь очищается буфер клавиатуры
    
        TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(FService));
    
        if (FService <> nil) and (TVirtualKeyboardState.Visible in FService.VirtualKeyBoardState) then begin
          FService.HideVirtualKeyboard;
          exit;
        end else begin
          Close;
        end;
      end;
    end;

     

    Спасибо за подсказку! Буду пробовать.

  16. 12 часа назад, ZuBy сказал:

    Это все потому что скрытие кнопки делать нужно в OnUpdateObjects 

    Да я и рад бы сделать скрытие там, но когда проверяю в OnUpdateObjects наличие кнопки, он пишет:
    ObjectButton is NULL и все мои команды относительно кнопки игнорирует, в итоге она остается видимой.
    Возможно я что-то не так делаю, поэтому и пишу в форум.
    Сейчас буду разбирать код Крапоткина, надеюсь поможет.

  17. 17 часов назад, Pax Beach сказал:

    Я использую сочетание свойств TEdit:

    *.KillFocusByReturn := false;
    *.ReturnKeyType := TReturnKeyType.Next;

     

    Соответственно на последнем компоненте

    *.KillFocusByReturn := true;
     

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

     

    Я делаю абсолютно также. Выставил правильный порядок TabOrder и обход полей происходит так, как мне надо.
    К сожалению буфер клавиатуры помнит значение предыдущего поля и переносит его в следующее.
    Еще бы с этим на учиться бороться.

  18. 5 часов назад, ZuBy сказал:

    сделать <TListView>.Resize; после заполнения

    <TListView>.Resize никак не помог. Наоборот он сбросил все в дефолтовое состояние, как в дизайнере формы.
    При этом раньше, вторая отработка кода правильно тушила кнопку, а теперь все всегда в дефолт, а там кнопка видна.
    Обратиться к ButtonText не получается. Компилятор пропускает код, а при выполнении ошибка.

  19. rad studio 10 seattle + таблица SQLite
    В таблице 3 поля
    LastName - varchar
    FirstName - varchar
    recClose - bool
    Считываю в listView (ItemAppearance = ImageListItemBottomDetailRightButton) две строки и справа кнопка
    Мне надо, чтобы кнопка была видна только у записей у которых recClose = 0, Пишу цикл
    for (FDQuery->First(); !FDQuery->Eof; FDQuery->Next())
    {
           TListViewItem* item = ListView->Items->Add();
           item->Text    = FDQuery->FieldByName("LastName")->AsString;
           item->Detail  = FDQuery->FieldByName("FirstName")->AsString;
           if   (!FDQuery->FieldByName("recClose")->AsBoolean)
                 item->Objects->TextButton->Visible  = false;
    }
    На экране, хоть тресни кнопка видна всегда. Пытаюсь подобраться к объекту "кнопка" - пишет не существует еще.
    Но что интересно, стоит использовать эту же процедуру второй раз, т.е. в работающем приложении еще раз зайти
    на закладку при открытии которой срабатывает считывание, все становится на свои места.
    Вторую неделю бьюсь с этой проблемой.
    Подскажите кто знает, как заставить прятаться кнопку с первого раза.
    Вариант, сразу два раза прочитать, или перепрочитать после завершения цикла, пробовал на все лады, нет объекта и все тут.
    Спасибо.

  20. 56 минут назад, ZuBy сказал:

    TLang делает тоже самое. Просто пробегает по всем контролам и пихает текст куда только можно, криво и беспощадно

    судя по описанию компонента так и должно быть, но фишка в том, что заполнить вариант перевода нет никакой возможности.
    не открываются поля для ввода переведенных значений.
    Я в порядке эксперимента, сохранил файл (там есть кнопка сохранить) в котором только русские text.
    Потом вошел в него блокнотом и дописал после "=" английский вариант, для некоторых элементов.
    Потом кнопкой "загрузить" пробовал прочитать уже правленный файл, все без толку. На экране слева только русские, справа пустая панель...

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