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

Tumaso

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

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

  • Посещение

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

    39

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

  1. @Android покажите свой код, который вы уже написали в рамках этой задачи. mazayhin сказал всё верно, что никто не будет делать файловый менеджер за вас. Помочь в существующем коде, где что то не получается - один разговор, а дать готовый код без капли усилий с вашей стороны?

  2. 8 часов назад, krapotkin сказал:

    Я делал. И прямо сразу говорю - не повторяй моих ошибок - делай на PHP )))

    Почему?)

    Я делал в виде демона для ubuntu с использованием indy + mysql + json. Работает уже как два года, полет нормальный, ни разу не крешилось

  3. 7 часов назад, Даутов сказал:

    Если не бросать на форму TClientDataSet, то на моем эмуляторе остальное работает.

    Проблема не в эмуляторе, а именно в TClientDataSet, может что-то не хватает в проекте

    С чего вдруг это такой вывод?

    Вы как минимум пытаетесь запустить на официально не поддерживаемой версии андроида, это во первых.

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

    В третьих, покажите логи крэша, как минимум будет видно, в какой именно момент происходит проблема.

  4. Используй TNetHTTPClient вместо инди, проблема с ssl уйдет.

    При использовании инди и указании https в URL например в виндах требуется две дополнительные dll-ки (libeay32.dll / ssleay32.dll), для андроида libcrypto.so / libssl.so и т.д. Поэтому проще перейти на TNetHTTPClient

  5. 3 минуты назад, Delpher-X сказал:

    И кстати, 

    Код который изображен на картинке - нерабочий. В том смысле, что он вообще не компилируется. var и := в самом начале, подчеркиваются красным. 

    Также подчеркивается красным запятая в выражении RequestPermissions([WriteStorage], 

    и Granted в (AGrantResults[0] = TPermissionStatus.Granted) 

    потому что у вас старая версия делфи. Уточните, какая именно?

  6. 9 часов назад, slav_z сказал:

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

    Согласен, THTTPClient более удобен в использовании, чем Indy. Еще существенный плюс - поддержка ssl из коробки, не нужно ничего дополнительно ставить. У Indy на андроиде 6+ с этим проблемы

  7. @Ingalime

    у меня в 10.4.1 sdk лежит в C:\Users\Public\Documents\Embarcadero\Studio\21.0\CatalogRepository\AndroidSDK-2525-21.0.38860.1461 (так инсталлятор установил), соответственно всё лежит там, включая Android SDK Manager

    в 10.3.3 sdk лежит в C:\Users\Public\Documents\Embarcadero\Studio\20.0\PlatformSDKs\android-sdk-windows

  8. 35 минут назад, igor111 сказал:

    Krapotkin  я ясно написал по вайфай программа работает а по мобильной сети не работает , причем здесь права на запись и версия андроид ?

    а причем тут способ доступа к серверу FTP, если проблема в записи в локальный файл? Кто его знает, какой там у вас код записи.

    UPD. Может быть проблема и не в записи, а в сетевом доступе. Под отладкой вообще запускали?

  9. 7 часов назад, Slym сказал:

    Нет. я свой статический адрес и порт прикрыл фаирволом и другим советую :)
     

    А причем тут твой фаервол? Вопрос совсем о другом, о принципиальной возможности  воспроизведения аудиопотока с указаного адреса/порта в FMX

    Стандартный TMediaPlayer из FMX полное убожесто, не работает нормально даже в 10.4.1, поэтому про него можно забыть. Если еще кто то в него верит и надеется на чудо.
    Теоретически это могут делать FFMPEG VCL (поддерживает и FMX) и Alcinoe

  10. @Ingalime

    1. если высота фрейма зависит от данных, то да, вычисляйте высоту

    2. по расположению создаваемых фреймов друго под другом - самый простой вариант использовать свойство Align у фреймов (устанавить в Top), для этого размещайте создаваемые фреймы на общем контейнере для них (например на VertScrollBox)

    условно говоря примерно так:

    procedure TForm1.AddFrame(const AParent: TFmxObject; const AData: TFrameData);
    var
      LFrame: TMyFrame;
    begin
      LFrame := TMyFrame.Create(Self);  // или nil, если в дальнейшем будете сами уничтожать фреймы
      LFrame.Parent := AParent;
      LFrame.Align := TAlignLayout.Top;
    
      LFrame.Data := AData;  // этим кодом предполагается заполнение фрейма данными, при котором фрейм заполнит выводимые компоненты и настроит свою высоту
    end;
    
    procedure TForm1.FillFrames;
    var
      I: Integer;
    begin
      for I := 0 to Data.Count - 1 do
        AddFrame(vsbFrames, Data[I]);  // vsbFrames - TVertScrollBox для размещения фреймов, Data - список данных для отображения, каждый элемент - данные для отдельного фрейма
    end;

     

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