Перейти к содержанию
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. С вашего позволения наименование программы убрал из описания.

    Main.PNG

    *******:ЕГАИС - это приложение для предпринимателей, которым необходимо (согласно новым требованиям закона) подтверждать любое движение алкоголя через систему учета ЕГАИС (Единая Государственная Автоматизированная Информационная Система).

     

     

    *******:КАССА - очень простой front-office для предпринимателей. Полная поддержка ЕГАИС и 54-ФЗ (об онлайн кассах). Работает с фискальными регистраторами АТОЛ, ШТРИХ-М и Viki-print.

    Сайт: https://www.ami-soft.ru/

    Приложение для Android: ЕГАИС-приход Сейчас не развивается. Все усилия на WIndows версию. Но оба приложения используют единые формы и код.

    Прямая ссылка для загрузки ДЕМО-версии

    Используются:Kassa.PNG

    • Delphi Berlin 10.1 upd 2
    • FireDac SQLITE
    • FastReports FMX2
    • Parse (пока для системы активации, в разработке личный кабинет для пользователей с выгрузкой чеков и документов)

    Адаптировано для сенсорных экранов. Есть платные и бесплатные функции.

    Платных пользователей на 09.01.2017 - 1021.

    Программа позволяет:

    • Подключение к УТМ по ip адресу или имени компьютера, возможность переключения между УТМ
    • Просмотр входящих документов поставки алкоголя. Краткая информация о строках документа - сумма документа, поставщик, наименование товара
    • Подтверждение, расхождение или отказ от получения накладной в ЕГАИС (платная функция)
    • Запрос повторной отправки накладной на ее номеру
    • Запрос всех неподтвержденных накладных
    • Подтверждение или отказ приема накладной по ее номеру в ЕГАИС
    • Отражение статуса накладной в системе ЕГАИС
    • Отображение остатков в ЕГАИС по 1 и 2 регистру
    • Списание продукции в ЕГАИС по данным остатков или приходной накладной
    • Отправка актов постановки на баланс на 1 и 2 регистр
    • Инвентаризация остатков в магазине
    • Возврат поставщику, перемещение и продажа
    • Передача товара в магазин и возврат на склад
    • Работа с классификаторами товаров и партнеров в ЕГАИС
    • Просмотр перечня служебных документов обмена (при включении режима Эксперт)
    • Просмотр XML содержимого документов для анализа ошибок (при включении режима Эксперт)
    • Автоматическое определение вашего ФСРАР ИД (уникального идентификатора по системе ЕГАИС)

     

  6. В 06.12.2016 в 20:34, Кривяков Виталий сказал:

    Добрый день!

    Картинки правильно грузить в отдельном потоке в TBitmapSurface, так как последний, в отличии от TBitmap, корректно работает в потоках. Как скачаете, то можно сохранить в файл, для дальнейшего показа и отобразить на экране. Секция отображения на экране должна быть обязательно засинхронизирована с основным потоком. Общая схема такая.

    Кстати. Вчера был закрытый вэбинар про Токио. Так одним из нововведений будет поддержка 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. В 24.11.2016 в 21:07, Kitty сказал:

    Кто смотрел веб.бинар? Что там сказали об идиотском решении распустить Питерский офис?

    Спасибо.

    Я смотрел. На сессии вопросов выступил шеф московского офиса. Мне показалось что само московское руководство не особо одобряет этот шаг, но резюме такое: Идера ведет разработку всех своих продуктов силами наемных компаний разработчиков (и надо сказать видимо весьма успешно, раз хватило денег на выкуп Ембаркадеро), вот теперь и разработка RAD тоже полностью подчиняется этой стратегии. Летом офис с Испании, теперь Россия.

    Немного рассказали про линукс - он будет только в энтерпрайз версии :(

    PS: Поздравьте меня, теперь я наконец легальный пользователь! Купил Prof+mobile по акции. Еще и скидку 10% получил как индивидуальный. Так что я верю в светлое будущее!

  9. 38 минут назад, Error сказал:

    MVP - это MVP, и не означает что он в Emb работает 

    Может и так, но то что Всеволоду разрешили рассказывать про турбококоа на официальном блоге наводит на мысли.

    Я слежу за сообществом, Всеволода не было слышно больше года, и вот активизировался.

    Время покажет. Надеюсь друзья из Питерского офиса найдут новую интересную работу и пусть это будет что-то связанное с Delphi!

  10. 3 минуты назад, Камышев Александр сказал:

    не успели линукс запилить, жаль...

    Никто же не говорит что разработку вообще останавливают. Линукс будет. Но видимо затраты на разработку сокращают кардинально. В Google+ пишут что всю разработку переносят на фрилансеров, в основном в украине :(

  11. Бляха муха. Только собрался приобретать апгрейд... Ярослав, вы хоть намекните - может пока не стоит?

    И кстати только я обратил внимание, что Всеволод Леонов вернулся в Эмбаркадеро. Странное что-то творится...

    Неужто Эмба купила ТурбоКокоа в котором Всеволод участвовал... 

  12. 19 часов назад, Dinkin сказал:

    Товарищи, в поисках информации об FM, еще наткнулся на ireMonkey Accessibility Pack, но так и не понял что это...это что то дополнительное к обычному FM?

    Как я понимаю - это дополнения для поддержки в ПО функций для людей с ограниченными возможностями.

  13. На некоторых компьютерах, по опыту либо Windows XP или Vista (хотя 1 раз была и 7) не рисуется кнопка TCornerButton

    Пример: CornerButton.png

     

    Кнопки лежат в TGridPanelLayout к нему применен TGlowEffect

    На фото видно что эффект отработал, но сами кнопки не нарисовались.  

    Кто сталкивался? как лечить?

  14. Если бы все было так просто... Другие функции из DLL выполняются успешно. Вообще не понимаю что делать. Распространять приложение откомпилированное в Debug что-ли?

  15. 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 с передачей указателей, но все равно падает.

    Кто сталкивался. Помогите!

     

     

     

     

  16. Сегодня пришло письмо:

    При переходе по кнопке 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.
     
  17. Для тех кто планирует приобретение Берлина началась интересная акция (сам присматриваюсь, может кто тоже созреет):

    Цитата

    C 20 мая 2016 года по 20 июня 2016 года действует акция Бесплатный Mobile Pack. При приобретении новых лицензий (New User) Delphi 10.1 Berlin Professional и C++Bulder 10.1 Berlin Professional заказчик может получить Mobile Add-on Pack c годовой Update Subscription бесплатно.

    Delphi 10.1 Berlin Professional Named User and Mobile Add-on Pack Promotion ESD HDB202MLENWC0

    82 999

    Цена зафиксирована в рублях для всех заказчиков из России.

  18. В гугл+ тоже обсуждают замедление Берлина. Но там мнения разделились, кто-то пишет ускорилась, кто-то что жуткие тормоза. Лично я большой разницы с Сиэтлом не заметил. Может быть чуть быстрее...

     

  19. Вот пример моего потока загрузки

    Запуск:

    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;

     

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