目录

Linux开发之Delphi FMXLinux(一)、概述

一、关于FMXLinux

1.1、Delphi对Linux的原生内核开发支持部分: 

1.2、Delphi FMX对Linux的支持部分:  

1.3、从1个简单demos(C:\Users\Administrator\Documents\FmxLinux\Examples\ShellApi\ShellApi.dproj)看Delphi FMXLinux编译、分发、运行的全过程:  

二、关于FMXLinux的开发

2.1、首先需要安装FMXLinux(略)

2.2、FMXLinux概览

2.3、FMXLinux重要的已公开的源码部分讲解

      从上图可见,FMXLinux主要提供了:

      剩余部分为对FMX的Linux支持的扩展:

 

本博客关联:

      下一篇:  Linux开发之Delphi FMXLinux(二)、Delphi对Linux操作系统内核态主要的Api封装(FMUX.Api.pas)


 

 

Linux开发之Delphi FMXLinux(一)、概述

一、关于FMXLinux

FMXLinux并非Delphi自带的原生库,Delphi内核开发,三个文件,详见《Delphi开发Linux的三个操作系统内核单元之网络传输运行时刻库Linuxapi.Curl.pas

      https://blog.csdn.net/pulledup/article/details/115577863

FMXLinux是Delphi的三方库

1.1、Delphi对Linux的原生内核开发支持部分: 

1.2、Delphi FMX对Linux的支持部分:  

      是通过Delphi的安装程序在Redist重新分发来安装FMX控件对Linux的支持的,编译并运行工程前也会用此对目标平台的Socket目录进行重新分发:

 

1.3、从1个简单demos(C:\Users\Administrator\Documents\FmxLinux\Examples\ShellApi\ShellApi.dproj)看Delphi FMXLinux编译、分发、运行的全过程:  

Checking project dependencies...
Compiling ShellApi.dproj (Release, Linux64)
dcclinux64 command line for "ShellApi.dpr"
  d:\delphi10.4update2\bin\dcclinux64.exe -$D0 -$L- -$Y- --no-config -M -Q -AGenerics.Collections=System.Generics.Collections;
  Generics.Defaults=System.Generics.Defaults -DRELEASE -E.\Linux64\Release -ID:\DelphiProjs\PulledupUI\Delphi10.4Update2_FixedDelphiPas;"C:\Program 
  Files (x86)\FmxLinux\\Source";"C:\Program Files (x86)\FmxLinux\\Lib\21.0\Release";
  D:\DelphiProjs\PulledupUI\GYListView27D1042_20210228\DCU\FMX\XE10\Linux64\Release;d:\delphi10.4update2\lib\Linux64\release;
  C:\Users\Administrator\Documents\Embarcadero\Studio\21.0\Imports;d:\delphi10.4update2\Imports;
  C:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Linux64;d:\delphi10.4update2\include;d:\delphi10.4update2\redist\Linux64;
  C:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl\Linux64;C:\Devart\UniDACRAD10.4\unidac_8.3.2_d27\Lib\Linux64;
  C:\Devart\UniDACRAD10.4\unidac_8.3.2_d27\Bin\Linux64 -LEC:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl\Linux64 
  -LNC:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Linux64 -NU.\Linux64\Release -NSSystem;Xml;Data;Datasnap;Web;Soap;;(Default) 
  -OD:\DelphiProjs\PulledupUI\Delphi10.4Update2_FixedDelphiPas;"C:\Program Files (x86)\FmxLinux\\Source";"C:\Program Files 
  (x86)\FmxLinux\\Lib\21.0\Release";D:\DelphiProjs\PulledupUI\GYListView27D1042_20210228\DCU\FMX\XE10\Linux64\Release;
  d:\delphi10.4update2\lib\Linux64\release;C:\Users\Administrator\Documents\Embarcadero\Studio\21.0\Imports;d:\delphi10.4update2\Imports;
  C:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Linux64;d:\delphi10.4update2\include;d:\delphi10.4update2\redist\Linux64;
  C:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl\Linux64;C:\Devart\UniDACRAD10.4\unidac_8.3.2_d27\Lib\Linux64;
  C:\Devart\UniDACRAD10.4\unidac_8.3.2_d27\Bin\Linux64 -RD:\DelphiProjs\PulledupUI\Delphi10.4Update2_FixedDelphiPas;"C:\Program Files 
  (x86)\FmxLinux\\Source";"C:\Program Files (x86)\FmxLinux\\Lib\21.0\Release";
  D:\DelphiProjs\PulledupUI\GYListView27D1042_20210228\DCU\FMX\XE10\Linux64\Release;d:\delphi10.4update2\lib\Linux64\release;
  C:\Users\Administrator\Documents\Embarcadero\Studio\21.0\Imports;d:\delphi10.4update2\Imports;
  C:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Linux64;d:\delphi10.4update2\include;d:\delphi10.4update2\redist\Linux64;
  C:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl\Linux64;C:\Devart\UniDACRAD10.4\unidac_8.3.2_d27\Lib\Linux64;
  C:\Devart\UniDACRAD10.4\unidac_8.3.2_d27\Bin\Linux64 -UD:\DelphiProjs\PulledupUI\Delphi10.4Update2_FixedDelphiPas;"C:\Program Files 
  (x86)\FmxLinux\\Source";"C:\Program Files (x86)\FmxLinux\\Lib\21.0\Release";
  D:\DelphiProjs\PulledupUI\GYListView27D1042_20210228\DCU\FMX\XE10\Linux64\Release;d:\delphi10.4update2\lib\Linux64\release;
  C:\Users\Administrator\Documents\Embarcadero\Studio\21.0\Imports;d:\delphi10.4update2\Imports;
  C:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Linux64;d:\delphi10.4update2\include;d:\delphi10.4update2\redist\Linux64;
  C:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl\Linux64;C:\Devart\UniDACRAD10.4\unidac_8.3.2_d27\Lib\Linux64;
  C:\Devart\UniDACRAD10.4\unidac_8.3.2_d27\Bin\Linux64 --syslibroot:C:\Users\Administrator\Documents\Embarcadero\Studio\SDKs\ubuntu18.04.sdk 
  --libpath:C:\Users\Administrator\Documents\Embarcadero\Studio\SDKs\ubuntu18.04.sdk\usr\lib\gcc\x86_64-linux-gnu\7;
  C:\Users\Administrator\Documents\Embarcadero\Studio\SDKs\ubuntu18.04.sdk\usr\lib\x86_64-linux-gnu;
  C:\Users\Administrator\Documents\Embarcadero\Studio\SDKs\ubuntu18.04.sdk\lib\x86_64-linux-gnu 
  -NHC:\Users\Public\Documents\Embarcadero\Studio\21.0\hpp\Linux64 -NO.\Linux64\Release  ShellApi.dpr   
Success
Elapsed time: 00:00:02.8
Deploy
paclient command line for "Ubuntu 18.04.4 LTS"
  d:\delphi10.4update2\bin\paclient.exe -u8 --Clean="ShellApi,C:\Users\Administrator\Documents\FmxLinux\Examples\ShellApi\ShellApi._@emb_.tmp" "Ubuntu 
  18.04.4 LTS" 
paclient command line for "Ubuntu 18.04.4 LTS"
  d:\delphi10.4update2\bin\paclient.exe -u8 --put="Linux64\Release\ShellApi,ShellApi\,1,ShellApi" "Ubuntu 18.04.4 LTS" 
Success
Elapsed time: 00:00:01.0
linux64.redistlist(1): Line endings are LF, but RAD Studio requires CRLF. Consider converting or check your source control settings.
//::::linux64.redistlist代码(D:\Delphi10.4Update2\Redist\linux64.redistlist)行结尾符只用了换行:::::RAD结尾符需要回车换行:::::

二、关于FMXLinux的开发

2.1、首先需要安装FMXLinux(略)

      https://www.FMXLinux.com

2.2、FMXLinux概览

      C:\Program Files (x86)\FmxLinux

      FmxLinux下均已Fmux来标识,即在Fmx中间加了1个字符u来标识是FmxLinux对Linux的支持,以区别FMX对Linux的支持:

2.3、FMXLinux重要的已公开的源码部分讲解

      从上图可见,FMXLinux主要提供了:

            Linux操作系统内核态主要的Api封装(FMUX.Api.pas)

            对delphi提供了用户态系统级别的Linux设备支持(System.Linux.Devices.pas)

            Linux操作系统内核态OpenGL的封装(Linux.OpenGL.pas)

      剩余部分为对FMX的Linux支持的扩展:

            Linux下的类及方法帮助单元(FMX.Helpers.Linux.pas)

            Linux下的平台管理及服务单元(FMX.Platform.Linux.pas)

            Linux下的上下文环境单元,与进程和线程相关(FMX.Context.Linux.pas)

            Linux下的打印管理单元(FMX.Printer.Linux.pas)

            Linux下的浏览器内核接口单元(FMX.WebBrowser.Linux.pas)

            Linux特有的GUI画布绘制单元(FMX.Canvas.Linux.pas)           

            Linux下的多媒体库管理单元(FMX.Media.Linux.pas)

            Linux下的剪切板单元(FMX.Clipboard.Linux.pas)

            Linux下的组件管理单元(FMX.Controls.Linux.pas)

            Linux下的对话框管理单元(FMX.Dialogs.Linux.pas)

            Linux下的手势管理单元(FMX.Gestures.Linux.pas)

            Linux下的多点触控管理单元(FMX.MultiTouch.Linux.pas)

 

本博客关联:

      下一篇:  Linux开发之Delphi FMXLinux(二)、Delphi对Linux操作系统内核态主要的Api封装(FMUX.Api.pas)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Logo

更多推荐