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

Ingalime

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

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

  • Посещение

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

    5

Активность репутации

  1. Like
    Ingalime отреагировална Barbanel в Динамическое изменение массива записей   
    Большое количество - это сколько?
    100, 100 000, 100 000 000?
    Каждый раз увеличивая размер на один элемент, менеджер памяти ищет непрерывный незанятый кусок памяти такой длины, чтобы уместить все элементы. Хорошо если место под уже выделенный массив позволяет увеличить размер, не упираясь в участики памяти занятые другими данными.
    Иногда после очередного увеличения массива, уже выделенного участка памяти более не хватает. В таком случае менеджеру приходится искать новый, и копировать старые данные в новый участок памяти, а старый участок помечать как свободный.
    Разумеется это занимает время. Именно это и приводит к "не так быстро, как хотелось бы".
    Чтобы избежать этого:
    1 Способ курильщика, простой: Увеличиваем размер массива не на 1 элемент, а сразу на 16/32/128/1024 элемента (вам виднее, в зависимости от того сколько у вас может быть элементов в массиве). Также заводим счетчик - номер последнего занятого элемента в массиве, и после каждого добавления - увеличиваем этот счетчик на единицу. Этот способ не избавит от проблемы, но будет приводить к менее частому перераспределению памяти.
    2 Способ здорового человека, чуть сложнее: используйте указатели. Заведите массив указателей (либо TList), выделяйте место под каждую новую запись (ваш record) вручную, и помещайте указатель на него в ваш массив указателей (или в TList). Не забывайте освобождать выделенную память, когда ваши обьекты больше не нужны. Этот спобоб более правильный, так как в этом случае перераспределение происходит очень редко.
    Кстати, реализация TList использует внутри себя первый способ.
  2. Like
    Ingalime отреагировална CyberStorm в Не могу разобратся с BannerAD   
    /////////// реклама ////////////////////
    try
    BannerAd1.AdUnitID := bkey;
    BannerAd1.LoadAd;
    except
    on E : Exception do ShowMessage(E.Message);
    end;
    вот используйте, ошибку напишет
  3. Like
    Ingalime отреагировална Voron в Не могу разобратся с BannerAD   
    Спасибо! Это мне помогло.
    Была ошибка "java class jadsize could not be found".
    Решение: Target platforms->Android->Libraries, в появившемся меню выбрать Revert System Files to Default.
    Вдруг кому пригодится.
  4. Like
    Ingalime отреагировална Andrey Efimov в [Статья][AdMob] Добавляем рекламный блок в приложение   
    Ссылка: http://delphifmandroid.blogspot.ru/2016/07/admob.html
    Автор: Андрей Ефимов
    Описание: Подробная инструкция по добавлению рекламного блока в приложение, разработанное в RAD Studio.
     
  5. Like
    Ingalime отреагировална CyberStorm в Ошибка "Java class JAdSize could not be found"   
    Нужно библиотеки почистить:

    Вот тут еще много написано: 
     
     
  6. Like
    Ingalime отреагировална Maka в Работа с TInAppPurchase   
    добавление поддержки подписки в FMX: http://delphitoptips.blogspot.com/2018/03/supporting-in-app-purchase.html
  7. Like
    Ingalime отреагировална Andrey Efimov в Покупки из приложения   
    Вы пробовали пользоваться поиском на форуме? (Думаю нет...) Работа с TInAppPurchase
     
    p.s. Тему перенёс в соответствующий раздел "TInAppPurchase"
  8. Like
    Ingalime отреагировална Игорь Ковалев в Не могу разобратся с BannerAD   
    ID присвоил не свое а тестовых объявлений 
    ca-app-pub-3940256099942544/6300978111
    https://developers.google.com/admob/android/test-ads
    Сразу заработало, до этого 2 дня бился.
    void __fastcall TForm1::FormShow(TObject *Sender)
    {
       BannerAd1->AdUnitID="ca-app-pub-3940256099942544/6300978111";
       BannerAd1->LoadAd();
     }
  9. Like
    Ingalime отреагировална CyberStorm в Android 64   
    Спасибо! Благодаря вашим наводкам наткнулся на инструкцию как собрать бандлы: http://docwiki.embarcadero.com/RADStudio/Rio/en/Submitting_Your_Android_App_to_Google_Play
    Пришлось грузить гуглу зашифрованный ключ, пришлось помучаться (https://stackoverflow.com/questions/44103024/how-to-enable-google-play-app-signing)
    И теперь собираются полноценные рабочие приложения!
  10. Like
    Ingalime отреагировална Andrey Efimov в Android 64   
    Как и раньше, но теперь у них(других приложений) доступна версия 64-bit.
    32-bit приложения не блочили. Разработчиков просто обязали в дополнение к 32 битной версии прикладывать 64 битную версию.
    Полный отказ от 32 битных приложений был запланирован на Август 2021.
  11. Like
    Ingalime отреагировална sinuke в Android 64   
    На скрине внизу написаны поддерживаемые ABI: armeabi-v7a - это и есть 32-бит. а в ПлейМаркете приложения могут быть загружены как бандлы, содержащие как 32, так и 64 битные версии. При установке приложения ПлейМаркет сам формирует нужный пакет для телефона в зависимости от возможностей телефона.
  12. Like
    Ingalime отреагировална GASCHE в Парни помогите распарсить   
    Так всё для вас уже сделано, даже голову ломать не надо не надо ?
     
  13. Like
    Ingalime отреагировална Евгений Корепов в [DELPHI FMX Android] [6.0] Не удается загрузить SSL библиотеку   
    Вам не нужен TNETHTTPClient, это всего лишь обертка для THTTPClient. Просто сделайте поиск по данному форуму по "THTTPClient" и вам откроется многое.
  14. Like
    Ingalime отреагировална Yarpda в [DELPHI FMX Android] [6.0] Не удается загрузить SSL библиотеку   
    Спасибо большое за наводку. Попробую поработать и  в этом направлении.
  15. Thanks
    Ingalime получил реакцию от Yarpda в [DELPHI FMX Android] [6.0] Не удается загрузить SSL библиотеку   
    Попробуйте задать вопрос автору инди на его форуме где он отвечает. Его ник rlebeau. По крайней мере вы получите ответ от автора инди и все станет на свои места. Правда писать надо на английском.
    http://bcbj.org/forums/viewforum.php?f=10&sid=e022f859f55a36e1a172e415bf163bad
     
  16. Like
    Ingalime отреагировална qz5 в [DELPHI FMX Android] [6.0] Не удается загрузить SSL библиотеку   
    Возможно их надо класть в другую папку
    Вы компилируйте в apk или в AAB?
    Попробуйте оба варианта. И вообще - то разве не в папке lib\armeabi-v7a (для 32 бит) должны библиотеки находиться? Ну и соответственно в lib/arm64-v8a  64-битные.
    Попробуйте их в эти папки деплоить!
     
  17. Like
    Ingalime отреагировална CyberStorm в RAD Studio 10.3.3 (с поддержкой Андроид 64-бит, macOS Catalina 64-bit, iOS 13)   
    Ответ: https://rutracker.org/forum/viewtopic.php?p=78350087#78350087
    В: День добрый. У меня предыдущая версия (10.3.2). Нужно ли ее сносить перед установкой 10.3.3 ?
    О: Если новая версия отличается только последней цифрой, то нужно всегда, потому что она ставиться в ту же папку. А вот 10.3.3 и 10.4 можно будет ставить параллельно.
  18. Like
    Ingalime отреагировална dnekrasov в Как сделать координатную сетку ?   
    Посмотрите компонент TPlotGrid. Может поможет чем
  19. Thanks
    Ingalime отреагировална Andrey Efimov в [Статья][Android] Серия статей на тему Uses Permissions   
    Обновлена серия статей на тему использования Uses Permissions.
    Uses Permissions: Теория Uses Permissions: Добавляем метод onRequestPermissionsResult в приложение (для Delphi 10.1/10.2) Uses Permissions: Практика (для Delphi 10.3) Автор: Андрей Ефимов
  20. Like
    Ingalime отреагировална #WAMACO в Mobile Application Development + REST Server Training - Fesih ARSLAN - 2019   
    Турецкого не знаю... ?
  21. Like
    Ingalime отреагировална Alialioglu2016 в Mobile Application Development + REST Server Training - Fesih ARSLAN - 2019   
    Hi,
    There is a new, up-to-date and free training series. In the training, Rad Studio and REST server application development and mobile application development are explained.
    The training content is in Turkish. The topic describes how to develop a mobile application with REST architecture.

    These training topics are:
    Eğitim dizisinde sunucu ve istemci tarafı veri iletişimi için genel olarak aşağıdaki işlem adımları gerçekleştirilmiştir.
    PostgreSQL veri tabanı üzerinde StoredProcedure tanımlamak. JSON veri modellemek ve çözümlemek (front-end ve back-end veri iletişimleri). REST sunucu-istemci API yapısını modellemek ve metodları (kayıt eklemek, kayıt silmek, kayıt güncellemek) oluşturmak. REST servisini yeniden yayınlamak. End-Point API testlerini yapmak (REST Debugger). REST API metodlarının front-end tarafına entagrasyonunu sağlamak. 1. Hafta (6 Eylül 2019)
    Eğitim içeriği
    FMX Mimarisi nedir? Rad Studio IDE Yapısı Multi Device Proje Oluşturma Mobil Uygulamalarda Menü Yapısı Eğitim : 1. Bölüm - Multi-Platform Mobil Uygulama Yazmaya Giriş

    2. Hafta (14 Eylül 2019) - Linux Sunucu Uygulaması Yazmak (1. Bölüm)
    Eğitim içeriği
    Cross-platform mimarisi ve avantajlarının neler olduğu Linux sunucu üzerinde PostgreSQL veri tabanı kurulumu PostgreSQL DBA aracının kurulumu ve kullanımı Bir proje analizinin nasıl yapılacağı Veri tabanı analizi ve modellenmesi Veri tabanı modelinin, veri tabanına aktarılması PostgreSQL veri tabanının genel yapası Storedprocedure ve trigger kavramları Storedprocedure oluşturmayı Veri tabanının yedeklenmesi ve geri yüklenmesi
    Eğitim : 2. Bölüm - Linux Sunucu Uygulaması Yazmak - 1

    3. Hafta (21 Eylül 2019) - Linux Sunucu Uygulaması Yazmak (2. Bölüm)
    Eğitim içeriği
    SOA, REST ve RESTfull ne olduğu ve aralarındaki farkları REST Debugger aracı ve kullanımı JSON veri yapısı ve JSON Editörü Bir REST API servisinden JSON veri almak ve front-end tarafında biçimlendirmek Eğitim : 3. Hafta - Linux Sunucu Uygulaması Yazmak - 2. Bölüm

    4. Hafta (28 Eylül 2019) - Linux Sunucu Uygulaması Yazmak (3. Bölüm)
    Eğitim içeriği
    PAServer kurulumu Linux Console uygulaması yazmak WebModule uygulaması nasıl oluşturulur ve proje yapısı nasıldır? Linux geliştirici araçlarının kurulumu Apache kurulumu ve konfigürasyonu nasıl yapılır? Linux sunucu REST uygulamasında istekte bulunan URI’ye bir JSON veri döndürmek WebModule API yapısının oluşturulması Linux sunucu uygulamasını yayınlamak Sunucu metodlarını REST Debugger aracı ile test etmek Eğitim : 4. Hafta - Linux Sunucu Uygulaması Yazmak - 3. Bölüm

    5. Hafta (05 Ekim 2019) - Mobil Uygulama (Android ve iOS) Yazmak (1. Bölüm)
    Eğitim içeriği
    OrangeUI bileşen setini tanımak. OrangeUI bileşen setini kurmak. Mobil uygulama ana ekran tasarımını yapmak Mobil uygulama ana frame tasarımını yapmak Mobil uygulama Giriş ekran tasarımını yapmak Eğitim : 5. Hafta - Mobil Uygulama Yazmak 1. Bölüm

    6. Hafta (12 Ekim 2019) - Mobil Uygulama (Android ve iOS) Yazmak (2. Bölüm)
    Eğitim içeriği
    Mini Bir Sınıf Yapısı REST.Json.TJson.JsonToObject REST.Json.TJson.ObjectToJsonObject DB ForeignKey – Function tanımlamak Yeni bir DB Bileşen Seti – UniDac REST Bileşen Setleri Kullanıcı Giriş Kontrolü Eğitim : 6. Hafta - Mobil Uygulama Yazmak 2. Bölüm

    7. Hafta (19 Ekim 2019) - Mobil Uygulama (Android ve iOS) Yazmak (3. Bölüm)
    Eğitim içeriği
    Mobil uygulama ana menü davranışı Ana menü oluşturmak Toolbar oluşturmak SP Oluşturmak Web Module üzerinde end-point oluşturmak Dataset’i JSON veri yapısına dönüştürmek REST Debugger üzerinde end-point testleri yapmak OrangeUI ile ListView tasarımı yapmak Ürün Grubu ekranını tasarlamak Ürün gruplarını listelemek Ürünler, siparişler, Profilim, konum, ayarlar, hakkında ekranlarının nasıl tasarlanacağını öğrenmek Android hedef platformunun hazırlamak Android cihaz üzerinde uygulama testleri yapmak Mac OS X hedef platformunu hazırlamak XCode iOS geliştirici ortamını kurmak iOS Simulator üzerinde iOS uygulama testleri yapmak Eğitim : 7. Hafta - Mobil Uygulama Yazmak 3. Bölüm

    8. Hafta (26 Ekim 2019) - Mobil Uygulama (Android ve iOS) Yazmak (4. Bölüm)
    Eğitim içeriği
    AlGitsin Online Sipariş Uygulama arayüzüne hızlı bakış ve son kontrolleri yapmak Android Uygulamaları Dağıtma Hazırlamak Uygulamayı Google Play üzerinde yayına hazır hale getirmek Dağıtım öncesi Android uygulama ayarlarına son bakış Android paket dosyasını (.apk) imzalamak KeyStore sertifikasını hazırlamak Google Play uygulama taslağını hazırlamak Android uygulamayı yayınlanmak üzere onay sürecine göndermek iOS Uygulamaları Dağıtma Hazırlamak Uygulamayı Apple Store üzerinde yayına hazır hale getirmek Dağıtım öncesi iOS uygulama ayarlarına son bakış iOS paket dosyasını (.ipa) imzalamak Apple geliştirici ve dağıtıcı sertifikası üretmek Sertifika imza talebi oluşturmak (certificate signing request) Geliştirici sertifikası (development certificate) oluşturmak Dağıtıcı sertifikası (distribution certificate) oluşturmak Sertifikaları OS X bilgisayara (Anahtar Zinciri Erişimi - Keychain Access üzerine) yüklemek Uygulama kaydını yapmak Apple cihaz kaydını yapmak Apple cihaz kimlik numarasını öğrenmek Provizyon profili oluşturmak Geliştirici provizyonu (development provisioning) oluşturmak Dağıtıcı provizyonu (distribution provisioning) oluşturmak Provizyon sertifikalarını OS X bilgisayara yüklemek Rad Studio üzerinden provizyon kontrollerini yapmak Apple Store uygulama taslağını hazırlamak iOS uygulamayı yayınlanmak üzere onay sürecine göndermek FMX Mimarisi Hakkında Genel Soru-Cevap Eğitim : 8. Hafta - Final - Mobil Uygulama Yazmak 4. Bölüm

    Detail Link: http://www.delphican.com/showthread.php?tid=4119
  22. Like
    Ingalime отреагировална CyberStorm в Компонент/библиотека для работы с bzip2   
    А стандартные библиотеки если использовать, типа System.Zip?
      zip: TZipFile;
      zip := TZipFile.Create;
      zip.Open(TPath.Combine(TPath.GetDocumentsPath, 'DATA.zip'), TZipMode.zmRead);
      zip.ExtractAll(TPath.GetDocumentsPath);
      zip.Close;
      zip.free;
  23. Like
    Ingalime отреагировална ENERGY в Запрет потери активности приложения   
    {$IFDEF ANDROID}   procedure KeepScreenOn(aEnable: boolean);   var     vFlags: integer;   begin     vFlags := TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON;     if aEnable then     begin       CallInUIThread (   // uses FMX.Helpers.Android       procedure       begin         TAndroidHelper.Activity.getWindow.setFlags (vFlags, vFlags);       end );     end     else       CallInUIThread (       procedure       begin         TAndroidHelper.Activity.getWindow.clearFlags (vFlags);       end );   end;   {$ENDIF} Это для Berlin и ниже.
    При использовании Tokyo - вызов CallInUIThread не нужен, можно вызывать напрямую, т.к. теперь главный Delphi поток это Java  UIThread.
     
    iOS
    uses iOSapi.UIKit; {$R *.fmx} procedure TForm6.Button1Click(Sender: TObject); var UIApp : UIApplication; begin UIApp := TUIApplication.Wrap(TUIApplication.OCClass.sharedApplication); UIApp.setIdleTimerDisabled(True); end;
  24. Like
    Ingalime отреагировална HyperZen в Запрет потери активности приложения   
    Запретить отключение экрана приложения в Андроид:
    в файл проекта (Project - View Source) добавить строки:
    // в uses {$IFDEF ANDROID} Androidapi.Helpers, Androidapi.JNI.App, Androidapi.JNI.GraphicsContentViewText, {$ENDIF} {$R *.res} // и далее - перед Application.Initialize begin {$IFDEF ANDROID} TAndroidHelper.Activity.getWindow.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON); {$ENDIF} Application.Initialize; ...  
  25. Like
    Ingalime отреагировална Олег Киреев в Приложение "Моменты затяжек крепежа в машиностроении v.4.2" для Win   
    Это приложение:
     - помогает выбрать моменты затяжки 
     резьбовых соединений согласно СТБ 1879-2008;
     - помогает производить расчёт момента
     затяжки и усилия других резьб;
     - подсказывает моменты затяжки в детали
     пневмокомпонентов;
     - даёт возможность вставки результата в буфер
     обмена а далее например в AutoCAD.
     Использовался СТБ 1879-2008 и справочник
    "Основы конструирования" под. ред. Орлова П.И.
    том 2 страницы 174 и 131.
     Разработал: Олег Киреев.
        г. Минск.
       т. +375 29 676 13 84.
      kireevoleg1966@gmail.com
     Приму любые замечания и предложения.
     Последнее обновление 29.10.2019г.



    Момент затяжки v.4.2.rar
×
×
  • Создать...