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

bigjorj

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

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

  • Посещение

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

    13

Весь контент bigjorj

  1. Коллеги, подскажите, получается можно работать с .so библиотеками как с обычными dll в Delphi? То есть я включаю библиотеку в поставку своего Android приложения и работаю с ней как обычной DLL? Вывод такой я сделал по примеру выше.
  2. Елена подскажите по срокам выхода официального обновления под Токио? И 2. На странице загрузки для пользователей вышла версия 2.5.5, но после установки оказывается, что версия 2.5.4. Прокомментируйте пожалуйста.
  3. Знаете что действительно смешно? То что мой тикет #415831 в вашей поддержке висит с 25 января 2017, 13:00 И ни одна душа даже не попыталась на него среагировать. На кой черт я покупал спрашивается FMX версию. FMX версия вообще не работает со встроенными в отчет FDQuery. Не возможно указать параметры запроса, нельзя связать запросы.
  4. Например так: procedure CreateArhivTables(CreateDatabaseName: string); var TableToCreate: TFDQuery; begin TableToCreate := TFDQuery.Create(nil); TableToCreate.ConnectionName := CreateDatabaseName; try TableToCreate.SQL.Clear; TableToCreate.SQL.Add('create table if not exists Marks(' +' Mark text primary key, ' +' CheckData text);'); TableToCreate.ExecSQL; end;
  5. Думаю пришло время и мне рассказать (еще) об одном своем проекте на FMX. С вашего позволения наименование программы убрал из описания. *******:ЕГАИС - это приложение для предпринимателей, которым необходимо (согласно новым требованиям закона) подтверждать любое движение алкоголя через систему учета ЕГАИС (Единая Государственная Автоматизированная Информационная Система). *******:КАССА - очень простой front-office для предпринимателей. Полная поддержка ЕГАИС и 54-ФЗ (об онлайн кассах). Работает с фискальными регистраторами АТОЛ, ШТРИХ-М и Viki-print. Сайт: https://www.ami-soft.ru/ Приложение для Android: ЕГАИС-приход Сейчас не развивается. Все усилия на WIndows версию. Но оба приложения используют единые формы и код. Прямая ссылка для загрузки ДЕМО-версии Используются: Delphi Berlin 10.1 upd 2 FireDac SQLITE FastReports FMX2 Parse (пока для системы активации, в разработке личный кабинет для пользователей с выгрузкой чеков и документов) Адаптировано для сенсорных экранов. Есть платные и бесплатные функции. Платных пользователей на 09.01.2017 - 1021. Программа позволяет: Подключение к УТМ по ip адресу или имени компьютера, возможность переключения между УТМ Просмотр входящих документов поставки алкоголя. Краткая информация о строках документа - сумма документа, поставщик, наименование товара Подтверждение, расхождение или отказ от получения накладной в ЕГАИС (платная функция) Запрос повторной отправки накладной на ее номеру Запрос всех неподтвержденных накладных Подтверждение или отказ приема накладной по ее номеру в ЕГАИС Отражение статуса накладной в системе ЕГАИС Отображение остатков в ЕГАИС по 1 и 2 регистру Списание продукции в ЕГАИС по данным остатков или приходной накладной Отправка актов постановки на баланс на 1 и 2 регистр Инвентаризация остатков в магазине Возврат поставщику, перемещение и продажа Передача товара в магазин и возврат на склад Работа с классификаторами товаров и партнеров в ЕГАИС Просмотр перечня служебных документов обмена (при включении режима Эксперт) Просмотр XML содержимого документов для анализа ошибок (при включении режима Эксперт) Автоматическое определение вашего ФСРАР ИД (уникального идентификатора по системе ЕГАИС)
  6. bigjorj

    Item.ItemData.Bitmap

    Кстати. Вчера был закрытый вэбинар про Токио. Так одним из нововведений будет поддержка TBitmap в потоках.
  7. Если приложение использует FireDac, то мне нравится использовать SQLiteIniFile Лежит здесь: C:\Users\Public\Documents\Embarcadero\Studio\18.0\Samples\Object Pascal\Database\FireDAC\Samples\AddOn\SQLiteIniFile\FireDAC.Phys.SQLiteIniFile.pas Это обертка вокруг ini файла с хранением в базе данных. Подходит для больших объемов и можно применять шифрование SQLite. На Androide прекрасно работает WorkFolder := TPath.GetDocumentsPath; Options := TOptions.create(TPath.Combine(WorkFolder, 'Options.db')); //TOptions это наследник TSQliteIniFile
  8. Я смотрел. На сессии вопросов выступил шеф московского офиса. Мне показалось что само московское руководство не особо одобряет этот шаг, но резюме такое: Идера ведет разработку всех своих продуктов силами наемных компаний разработчиков (и надо сказать видимо весьма успешно, раз хватило денег на выкуп Ембаркадеро), вот теперь и разработка RAD тоже полностью подчиняется этой стратегии. Летом офис с Испании, теперь Россия. Немного рассказали про линукс - он будет только в энтерпрайз версии PS: Поздравьте меня, теперь я наконец легальный пользователь! Купил Prof+mobile по акции. Еще и скидку 10% получил как индивидуальный. Так что я верю в светлое будущее!
  9. Может и так, но то что Всеволоду разрешили рассказывать про турбококоа на официальном блоге наводит на мысли. Я слежу за сообществом, Всеволода не было слышно больше года, и вот активизировался. Время покажет. Надеюсь друзья из Питерского офиса найдут новую интересную работу и пусть это будет что-то связанное с Delphi!
  10. Никто же не говорит что разработку вообще останавливают. Линукс будет. Но видимо затраты на разработку сокращают кардинально. В Google+ пишут что всю разработку переносят на фрилансеров, в основном в украине
  11. https://community.embarcadero.com/blogs?view=entry&id=9197 Тут он представлен как MVP. И начал снова публиковать свои записи.
  12. Бляха муха. Только собрался приобретать апгрейд... Ярослав, вы хоть намекните - может пока не стоит? И кстати только я обратил внимание, что Всеволод Леонов вернулся в Эмбаркадеро. Странное что-то творится... Неужто Эмба купила ТурбоКокоа в котором Всеволод участвовал...
  13. Когда появится необходимость в таком компоненте без проблем заплачу $8. PS: Недавно вот FastReport FMX2 приобрел. Проблем вагон с ним, но надеюсь поправят.
  14. bigjorj

    FM премиум пак

    Как я понимаю - это дополнения для поддержки в ПО функций для людей с ограниченными возможностями.
  15. C:\Program Files (x86)\Embarcadero\Studio\18.0\PlatformSDKs\android-sdk-windows\build-tools\22.0.1
  16. На некоторых компьютерах, по опыту либо Windows XP или Vista (хотя 1 раз была и 7) не рисуется кнопка TCornerButton Пример: Кнопки лежат в TGridPanelLayout к нему применен TGlowEffect На фото видно что эффект отработал, но сами кнопки не нарисовались. Кто сталкивался? как лечить?
  17. Если бы все было так просто... Другие функции из DLL выполняются успешно. Вообще не понимаю что делать. Распространять приложение откомпилированное в Debug что-ли?
  18. Win32 приложение на Firemonkey Есть DLL написанная на C++. В ней есть экспортная функция. int getStatusFlags (int *fatalStatus, int *currentFlagsStatus, int *documentStatus); импортирую функцию следующим способом function getStatusFlags (var fatalStatus, currentFlagsStatus, documentStatus:Integer):integer; stdcall; external DllName; В режиме компиляции Debug все идеально, но если откомпилировать в Release то приложение наглухо виснет при вызове функции. Подозреваю что я неправильно импортирую функцию и происходит неправильная работа с памятью. Пробовал менять тип передаваемых переменных на PInteger с передачей указателей, но все равно падает. Кто сталкивался. Помогите!
  19. Да, Builder. Исправил название темы.
  20. Сегодня пришло письмо: При переходе по кнопке http://s608.t.en25.com/e/er?s=608&lid=10794&elqTrackId=f80d5b97a3cc48c28f90aaed1e2dc819&elq=54d9956eaf6b4a1fa88e9a3ffb3f2c8b&elqaid=18067&elqat=1 Мы попадаем на наш магазин от Allsoft и ничего. НО Если зайти по ссылке через прокси (я заходил через американский), то можно добавить товар в корзину по цене 0, заполнить реквизиты платежа, и вуаля. Пришла лицензия на Starter на почту с подтверждением успешной покупки за 0 рублей. Пробуйте. p/s Я не знаю легально ли это, но письмо пришло на мой электронный адрес, значит я имею право на получение лицензии по 0 руб. One day only! 100% Discount on C++Builder Starter Edition The Starter Edition of C++Builder 10.1 is the best way to ramp up and build high-performance C++ apps for Windows. C++Builder Starter includes an intuitive and powerful IDE, code editor, and debugger. Friday, June 17 is the only one chance to get our starter version of C++Builder at a 100% DISCOUNT. Don’t miss out! GET C++BUILDER NOW You get hundreds of visual components with this edition. It is a full-service development environment, complete with a multi-device designer and native controls to customize a UI for each platform. Speed up your development tasks with FireUI App Preview. Easily switch from the form designer to views of your app on iOS, Android, OSX, and Windows targets. This is not a trial. C++Builder Starter is a fully-functional basic edition, and we are offering a 100% Discount for one day only. When you’re ready, you can upgrade to the Pro version to build on more platforms (such as Windows 64-bit, iOS, Android, and OS X 32-bit), and also get access to all of the database components and drivers.
  21. Для тех кто планирует приобретение Берлина началась интересная акция (сам присматриваюсь, может кто тоже созреет): Delphi 10.1 Berlin Professional Named User and Mobile Add-on Pack Promotion ESD HDB202MLENWC0 82 999 ₽ Цена зафиксирована в рублях для всех заказчиков из России.
  22. Я не проверял, но попробуйте следующее FMX.Types.VKAutoShowMode := TVKAutoShowMode.Never;
  23. В гугл+ тоже обсуждают замедление Берлина. Но там мнения разделились, кто-то пишет ускорилась, кто-то что жуткие тормоза. Лично я большой разницы с Сиэтлом не заметил. Может быть чуть быстрее...
  24. Вот пример моего потока загрузки Запуск: unit DownloadT; interface uses System.Classes, System.Net.URLClient, System.Net.HttpClient, System.Net.HttpClientComponent, System.SysUtils; type TonDownloadProgress = procedure (Progress:integer) of object; TonDownloadEnd = procedure (FileName:string; Done:boolean; MessageText:string='') of object; TDownloadThread = class(TThread) private IdHTTP1: TNetHTTPClient; fonDownloadProgress:TonDownloadProgress; FonDownloadEnd: TonDownloadEnd; Done: boolean; Max: integer; ProgressValue: integer; procedure ReceiveData(const Sender: TObject; AContentLength:int64; AReadCount:int64; var Abort:boolean); procedure SetonDownloadProgress(const Value: TonDownloadProgress); procedure SetonDownloadEnd(const Value: TonDownloadEnd); protected procedure Execute; override; public url, Status: string; Filename: string; property onDownloadProgress: TonDownloadProgress read FonDownloadProgress write SetonDownloadProgress; property onDownloadEnd: TonDownloadEnd read FonDownloadEnd write SetonDownloadEnd; end; implementation { TDownloadThread } procedure TDownloadThread.Execute; var MyFile: TMemoryStream; begin FreeOnTerminate := true; IdHTTP1 := TNetHTTPClient.Create(nil); MyFile := TMemoryStream.Create(); try IdHTTP1.OnReceiveData := ReceiveData; IdHTTP1.HandleRedirects := true; MyFile.Position := 0; IdHTTP1.Get(url, MyFile); MyFile.SaveToFile(Filename); Done := true; MyFile.Free; IdHTTP1.Free; if Assigned(FonDownloadEnd) then Synchronize(procedure begin FonDownloadEnd(Filename, True); end); except on E:Exception do if Assigned(FonDownloadEnd) then Synchronize(procedure begin FonDownloadEnd(Filename, False, E.Message); end); end; end; procedure TDownloadThread.ReceiveData(const Sender: TObject ; AContentLength:int64 ; AReadCount:int64 ;var Abort:boolean); begin if Terminated then Abort := true else begin Done := false; ProgressValue := AReadCount; if Assigned(fonDownloadProgress) then Synchronize(procedure begin if AContentLength>0 then fonDownloadProgress(Trunc(ProgressValue / AContentLength * 100)) else fonDownloadProgress(0); end); end; end; procedure TDownloadThread.SetonDownloadEnd(const Value: TonDownloadEnd); begin FonDownloadEnd := Value; end; procedure TDownloadThread.SetonDownloadProgress(const Value: TonDownloadProgress); begin FonDownloadProgress := Value; end; end. Запуск: procedure TMainForm.InstallUpdates(aDownloadLink:string); begin DownloadThread:=TDownloadThread.Create(true); DownloadThread.Filename := TPath.Combine(Options.WorkPath,'updates.exe'); DownloadThread.url := aDownloadLink; DownloadThread.onDownloadEnd := OnDownloadEnd; DownloadThread.onDownloadProgress := OnDownloadProgress; DownloadThread.Start;
×
×
  • Создать...