Dear Embarcadero,
Similiar to DelphiFMX4Python I build an API to make use of Delphi FMX from the D Programming Language
https://github.com/andre2007/delta-core-10-2-1
https://github.com/andre2007/delta-fmx-10-2-1
Sample
import delta.core;
import System.Classes, System.UITypes, System.Types, FMX.Forms, FMX.Memo, FMX.Types;
void main()
{
deltaLibrary.load(`.\views\Win32\Debug\Project1.dll`);
Application.Initialize;
Application.MainForm = TCustomForm.CreateNew(Application);
Application.MainForm.Caption = "Sample";
auto memo = TMemo.Create(Application.MainForm);
memo.Lines.Add("Hello World!");
memo.Align = TAlignLayout.Client;
memo.Parent = Application.MainForm;
Application.MainForm.Show();
Application.Run();
}
No binary artifact (Dll containing FMX code) is distributed on the Github repository but an user of the repository needs to compile itself a DLL using an official Delphi IDE.
Dll sample source
library Project1;
{$STRONGLINKTYPES ON}
uses
System.SysUtils,
System.Classes,
System.Types,
System.UiTypes,
FMX.Forms,
FMX.Types,
FMX.Memo,
FMX.Graphics,
Delta.Methods,
Delta.Properties,
Delta.System.Classes,
Delta.FMX.Forms,
Delta.FMX.Objects,
Delta.FMX.Controls;
{$R *.res}
begin
end.
But the repository contains D wrapper classes for Delphi classes like
https://github.com/andre2007/delta-core-10-2-1/blob/master/source/System/Classes.d
https://github.com/andre2007/delta-fmx-10-2-1/blob/master/source/FMX/Graphics.d
module FMX.ActnList;
import delta.core;
import System.Actions;
import System.Classes: TComponent;
class TCustomActionList: TContainedActionList
{
mixin!DelphiClass("FMX.ActnList.TCustomActionList");
}
class TActionList: TCustomActionList
{
mixin!DelphiClass("FMX.ActnList.TActionList")
static TActionList Create(TComponent owner);
}
The mixin template generates the method bodies automatically based on the signatures.
Do you see any legal issue with providing this API and especially providing D wrapper classes for Delphi System/FMX classes on the Github repository?
Also the question when I want to ship an application, I have to distribute the compiled Delphi DLL as part of my application (like https://github.com/andre2007/delta-fmx-10-2-1/blob/master/examples/gui_custom_form/views/Project1.dpr). Do you see any legal issue here?
Kind regards
Andre
pending