Ingalime
-
Постов
354 -
Зарегистрирован
-
Посещение
-
Победитель дней
5
Активность репутации
-
Ingalime отреагировална Barbanel в Динамическое изменение массива записей
Большое количество - это сколько?
100, 100 000, 100 000 000?
Каждый раз увеличивая размер на один элемент, менеджер памяти ищет непрерывный незанятый кусок памяти такой длины, чтобы уместить все элементы. Хорошо если место под уже выделенный массив позволяет увеличить размер, не упираясь в участики памяти занятые другими данными.
Иногда после очередного увеличения массива, уже выделенного участка памяти более не хватает. В таком случае менеджеру приходится искать новый, и копировать старые данные в новый участок памяти, а старый участок помечать как свободный.
Разумеется это занимает время. Именно это и приводит к "не так быстро, как хотелось бы".
Чтобы избежать этого:
1 Способ курильщика, простой: Увеличиваем размер массива не на 1 элемент, а сразу на 16/32/128/1024 элемента (вам виднее, в зависимости от того сколько у вас может быть элементов в массиве). Также заводим счетчик - номер последнего занятого элемента в массиве, и после каждого добавления - увеличиваем этот счетчик на единицу. Этот способ не избавит от проблемы, но будет приводить к менее частому перераспределению памяти.
2 Способ здорового человека, чуть сложнее: используйте указатели. Заведите массив указателей (либо TList), выделяйте место под каждую новую запись (ваш record) вручную, и помещайте указатель на него в ваш массив указателей (или в TList). Не забывайте освобождать выделенную память, когда ваши обьекты больше не нужны. Этот спобоб более правильный, так как в этом случае перераспределение происходит очень редко.
Кстати, реализация TList использует внутри себя первый способ.
-
Ingalime отреагировална CyberStorm в Не могу разобратся с BannerAD
/////////// реклама ////////////////////
try
BannerAd1.AdUnitID := bkey;
BannerAd1.LoadAd;
except
on E : Exception do ShowMessage(E.Message);
end;
вот используйте, ошибку напишет
-
Ingalime отреагировална Voron в Не могу разобратся с BannerAD
Спасибо! Это мне помогло.
Была ошибка "java class jadsize could not be found".
Решение: Target platforms->Android->Libraries, в появившемся меню выбрать Revert System Files to Default.
Вдруг кому пригодится.
-
Ingalime отреагировална Andrey Efimov в [Статья][AdMob] Добавляем рекламный блок в приложение
Ссылка: http://delphifmandroid.blogspot.ru/2016/07/admob.html
Автор: Андрей Ефимов
Описание: Подробная инструкция по добавлению рекламного блока в приложение, разработанное в RAD Studio.
-
Ingalime отреагировална CyberStorm в Ошибка "Java class JAdSize could not be found"
Нужно библиотеки почистить:
Вот тут еще много написано:
-
Ingalime отреагировална Maka в Работа с TInAppPurchase
добавление поддержки подписки в FMX: http://delphitoptips.blogspot.com/2018/03/supporting-in-app-purchase.html
-
Ingalime отреагировална Andrey Efimov в Покупки из приложения
Вы пробовали пользоваться поиском на форуме? (Думаю нет...) Работа с TInAppPurchase
p.s. Тему перенёс в соответствующий раздел "TInAppPurchase"
-
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();
}
-
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)
И теперь собираются полноценные рабочие приложения!
-
Ingalime отреагировална Andrey Efimov в Android 64
Как и раньше, но теперь у них(других приложений) доступна версия 64-bit.
32-bit приложения не блочили. Разработчиков просто обязали в дополнение к 32 битной версии прикладывать 64 битную версию.
Полный отказ от 32 битных приложений был запланирован на Август 2021.
-
Ingalime отреагировална sinuke в Android 64
На скрине внизу написаны поддерживаемые ABI: armeabi-v7a - это и есть 32-бит. а в ПлейМаркете приложения могут быть загружены как бандлы, содержащие как 32, так и 64 битные версии. При установке приложения ПлейМаркет сам формирует нужный пакет для телефона в зависимости от возможностей телефона.
-
Ingalime отреагировална GASCHE в Парни помогите распарсить
Так всё для вас уже сделано, даже голову ломать не надо не надо ?
-
Ingalime отреагировална Евгений Корепов в [DELPHI FMX Android] [6.0] Не удается загрузить SSL библиотеку
Вам не нужен TNETHTTPClient, это всего лишь обертка для THTTPClient. Просто сделайте поиск по данному форуму по "THTTPClient" и вам откроется многое.
-
Ingalime отреагировална Yarpda в [DELPHI FMX Android] [6.0] Не удается загрузить SSL библиотеку
Спасибо большое за наводку. Попробую поработать и в этом направлении.
-
Ingalime получил реакцию от Yarpda в [DELPHI FMX Android] [6.0] Не удается загрузить SSL библиотеку
Попробуйте задать вопрос автору инди на его форуме где он отвечает. Его ник rlebeau. По крайней мере вы получите ответ от автора инди и все станет на свои места. Правда писать надо на английском.
http://bcbj.org/forums/viewforum.php?f=10&sid=e022f859f55a36e1a172e415bf163bad
-
Ingalime отреагировална qz5 в [DELPHI FMX Android] [6.0] Не удается загрузить SSL библиотеку
Возможно их надо класть в другую папку
Вы компилируйте в apk или в AAB?
Попробуйте оба варианта. И вообще - то разве не в папке lib\armeabi-v7a (для 32 бит) должны библиотеки находиться? Ну и соответственно в lib/arm64-v8a 64-битные.
Попробуйте их в эти папки деплоить!
-
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 можно будет ставить параллельно. -
Ingalime отреагировална dnekrasov в Как сделать координатную сетку ?
Посмотрите компонент TPlotGrid. Может поможет чем
-
Ingalime отреагировална Andrey Efimov в [Статья][Android] Серия статей на тему Uses Permissions
Обновлена серия статей на тему использования Uses Permissions.
Uses Permissions: Теория Uses Permissions: Добавляем метод onRequestPermissionsResult в приложение (для Delphi 10.1/10.2) Uses Permissions: Практика (для Delphi 10.3) Автор: Андрей Ефимов
-
Ingalime отреагировална #WAMACO в Mobile Application Development + REST Server Training - Fesih ARSLAN - 2019
Турецкого не знаю... ?
-
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
-
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;
-
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; -
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; ...
-
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