Git Product home page Git Product logo

delphifmx4python's People

Contributors

checkdigits avatar jimmckeeth avatar lmbelo avatar mvdw73 avatar priyatham10 avatar shaunroselt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

delphifmx4python's Issues

How do I change the cursor of a component?

I've created an FMX GUI App and I have several components on the form. I'd like to change the default Cursor for them, but I'm not sure how.

I've tried doing the following code to change the Cursor on my Memo:

self.Memo1.Cursor = "crNo"

But self.Memo1.Cursor = "crNo" doesn't work. I get Error: Invalid class typecast

What is the correct way to change the Cursor of a component?

Is it working for Ubuntu?

DelphiFMX works great on Windows, but not on Ubuntu. I tried Python 3.8, 3.9 and 3.10 on two different Ubuntu 20.04 machines, the "import delphifmx" simply shows "Segmentation Fault". Did I miss anything?

image

Linux issues

Ubuntu 20.04 Python 3.8

from delphifmx import *

Causes:
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)

Python app created with Delphi runs properly so dependencies should be installed.

Create minimal documentation using Sphinx

Work on multiple pages for documentation like: installation, Tutorials and Guides, Examples, Contributing, Changelog, Reference API, etc., for GUI Python packages

Add TPopUpMenu

I tried creating a PopUpMenu for one of my apps but seems like there isn't a wrapper for the PopUpMenu yet.

Are there any plans to add the PopUpMenu? Would really like to be able to have a PopUpMenu in my apps.

Is there maybe a tutorial or something around that can teach me how to make my own wrapper for a component?

Product (package) names.

I just fund about this new GUI library for Python and my first impression, before even getting to technical details, is a bewildering list of names: DelphiFMX for Python (DelphiFMX4Python), FireMonkey, PythonFMXBuilder and Python4Delphi. Is there an explanation somewhere for a person like me, who last heard of Delphi a decade or two ago and doesn't know the recent history of it?

How to make threads work

I'm in trouble again. It seems that D4P cannot work with Python threads. The threads I create in Python will be blocked by Delphi UI. Is there any way to solve this problem

Image canvas BeginScene problem

Hi,
i tried drawing some graphics on an Image component without success. Calling BeginScene method returns me an error: Type Error: BeginScene called with invalid arguments. Error: Colud not find a method with compatible arguments.

Below is the code called on a onclick method of the form. The Image component is named ImageCanvas

def do_button_click(self, sender):
self.ImageCanvas.Bitmap.LoadFromFile('canvas.png')
myrect = RectF(50, 30, 150, 200)
canvas = self.ImageCanvas.Bitmap.Canvas
canvas.BeginScene()
canvas.Stroke.Kind = 1;
canvas.Stroke.Color = 0xFF00FF00;
canvas.StrokeThickness = 4;
canvas.DrawEllipse(myrect, 255);
canvas.EndScene()

I tried several arguments without any success

Any suggestion?

Thank you

Regards

Alessandro

Doesn't work on Ubuntu 18.04

Just trying to get Simplest.py to run, with no luck. This is what I've tried:

$ cd ~/tmp/delphifmx
$ virtualenv -p /usr/bin/python3.8 delphienv
Running virtualenv with interpreter /usr/bin/python3.8
Using base prefix '/usr'
/usr/lib/python3/dist-packages/virtualenv.py:1086: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
  import imp
New python executable in /home/rsg/tmp/delphifmx/delphienv/bin/python3.8
Also creating executable in /home/rsg/tmp/delphifmx/delphienv/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.

$ source delphienv/bin/activate
(delphienv) $ python --version
Python 3.8.6

(delphienv) $ pip install delphifmx
Collecting delphifmx
  Downloading delphifmx-0.1.48-cp38-cp38-manylinux1_x86_64.whl (10.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.1/10.1 MB 1.2 MB/s eta 0:00:00
Installing collected packages: delphifmx
Successfully installed delphifmx-0.1.48

(delphienv) $ python Simplest.py 
Segmentation fault (core dumped)```

Not very interesting. I decided to try and see what was failing by going in to Python and trying the script manually; this is what I get:

```(delphienv) $ python
Python 3.8.6 (default, Oct  6 2020, 03:22:36) 
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from delphifmx import *
Segmentation fault (core dumped)```

Again, not very interesting. At this point, there really is nothing I can think to try, as it can't even import the darn thing. Any ideas?

source code of DelphiFMX.pyd

Delphi has always been released with source code, which is great. Once my project has problems, I can check the source code to determine how to solve them.
However, I haven't found the source code of DelphiFMX.pyd, so any small problems in it will stop my project. Can release the source code of DelphiFMX.pyd?

M1 Issues

MacOS version: 12.4 /
Chip: Apple M1 Pro
Python ARM compilation

DelphiFMX runs smoothly on Python 3.8. Hower it hungs on Python 3.10 just upon importing:
"from delphifmx import*"

error installing

Python36-32
window 7

pip install delphifmx

Collecting delphifmx
Using cached https://files.pythonhosted.org/packages/55/64/fd1320a25a8cac3b39aa60b55998944bcebd5194b9e52ee9b8d8e7072f87/delphifmx-0.1.12.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 1, in
File "c:\users\limelect\appdata\local\temp\pip-build-b79gbo\delphifmx\setup.py", line 49
pyversionstrshort = f"{sys.version_info.major}{sys.version_info.minor}"
^
SyntaxError: invalid syntax

not working on synology

Hello
When I want to execute the example controlsdemo.py on my synology NAS, I have an error in the import :

Traceback (most recent call last):
File "/volume1/py3/controlsdemo.py", line 12, in
from delphifmx import *
File "/volume1/py3/delphifmx/init.py", line 82, in
package = new_import()
File "/volume1/py3/delphifmx/init.py", line 68, in new_import
modulefullpath = findmodule()
File "/volume1/py3/delphifmx/init.py", line 65, in findmodule
raise ValueError("Unsupported platform.")
ValueError: Unsupported platform.

Python3.10 it well detected.
It seems it is because the ossys is true detected as Linux but the libdir is None ???
Is there anything to do ?

Sorry for my bad english ... I'm french man
Thanks

How to use Bitmap.loadFromStream in Python

I'm not sure if this is the place to ask questions, but here goes.

I am retrieving a file from a URL, and it comes back as a binary python string, eg b'etc'

I know this is a jpeg image, so I currently save it to a temporary file and then load it using Bitmap.LoadFromFile (), this works ok.

But I would assume it would be more elegant to use LoadFromStream and bypass the temporary file. The question is, how do I get a python binary string into LoadFromStream?

FMX Size (for Android)

Question:
The compiled FireMonkey-Lib for Android has a size of 21 MB/32bit and 31 MB/64bit. Why is the size so huge? How big is a "Hello World" app for Android with DelphiFMX4Python (compressed APK and after installation)?

The desktop versions of DelphiFMX are smaller.

I guess the delphiFMX lib includes all the components/widgtes for all plattforms. Will there be a smaller compiled version for mobile as the desktop widgets are not usefull on mobile?

Form BorderIcons property not working

How does the BorderIcons property work?

I have this code:

from delphifmx import *

class frmMain(Form):
    def __init__(self, owner):
        self.Caption = 'My Form'
        self.Width = 1000
        self.Height = 500
        self.BorderStyle = "Single"
        self.BorderIcons = "[biSystemMenu,biMinimize]"

def main():
    Application.Initialize()
    Application.Title = "My Application"
    Application.MainForm = frmMain(Application)
    Application.MainForm.Show()
    Application.Run()
    Application.MainForm.Destroy()

main()

Basically what I want to do is disable the Maximize button in Title Bar.

When I use self.BorderIcons = "" then there aren't any icons on the title bar which is what you would expect:
image

But then when using self.BorderIcons = "[biSystemMenu,biMinimize]" I would expect to to see only close and minimize, but rather I see Maximize also and Maximize even works:
image

Seems like this could be a bug or am I doing it wrong?

Python is freezing on exit

On Windows 10, run the Todo.py and click the 'X' button, the window will be closed but the python won't exit. Taskman shows "no response".

image

From the debug window, I can see python is dead in the directx/graphics driver.
image
image

I found a workaround. I can add a string to the Edit.Text, even a '' will work. An empty string '' won't work.
image

But if I add a Calendar to the form, it freezes again on exit.

My other Windows PC (same Python, different gfx card) has no such issue. I'm currently using Python 3.9.12 installed from Microsoft Store.

By the way, seems that TNumberBox, TComboTrackBar, etc. are not supported.

SystemError: <built-in method LoadProps of Parent_Form object at 0x0000021BF049DE50> returned NULL without setting an error

self.LoadProps(os.path.join(os.path.dirname(os.path.abspath(__file__)), "parent_window.pyfmx"))

SystemError: <built-in method LoadProps of Parent_Form object at 0x0000021BF049DE50> returned NULL without setting an error

vironment
SystemError: <built-in method LoadProps of Parent_Form object at 0x0000021BF049DE50> returned NULL without setting an error
delphi 11
windows 11
pyscrit 4.1.1.0 x64

strange icon on windows taskbar

I tested the sample apps todolist.py and controlsdemo.py and they work fine. But I see the RStudio icon as app icon in the Windows taskbar. Any idea why? How can I define an icon for the apps? I have R installed in Anaconda as a Jupyter notebook kernel. Could this be the reason that the RStudio icon is shown? I use a command prompt >python todolist.py

Thanks for your work, it's great!

When I run controlsdemo.py I only see one tab 'Standard' compared to the screen shots from the styles summary in the ebook.

Any document? Tutorials?

It's very exciting to see this news! I'm eager to put my hands on it. Where can I find related documentation? Tutorials maybe?

Add TStream descendant classes

Add TStream descendant classes: TMemoryStream, TFileStream, TBytesStream...

I know the project's focus is only GUI and not portability of all Delphi classes, but some RTL classes are fundamental for some GUI features, such as classes that implement TStream, which can be used in a TBitmap.LoadFromStream, for example.

DelphiFMX StringGrid Missing Cells?

Trying to use StringGrid. No Cells property.

dir(delphifmx.StringGrid)
['AbsoluteClipRect', 'AbsoluteEnabled', 'AbsoluteHeight', 'AbsoluteMatrix', 'AbsoluteOpacity', 'AbsoluteRect', 'AbsoluteScale', 'AbsoluteToLocal', 'AbsoluteToLocalVector', 'AbsoluteWidth', 'ActionClient', 'AddFreeNotify', 'AddObject', 'AddObjectsToList', 'AdjustSizeValue', 'AdjustType', 'AfterConstruction', 'Align', 'Anchors', 'AniCalculations', 'AnimateColor', 'AnimateFloat', 'AnimateFloatDelay', 'AnimateFloatWait', 'AnimateInt', 'AnimateIntWait', 'ApplyStyleLookup', 'ApplyTriggerEffect', 'ApplyingEffect', 'Assign', 'AutoCalculateContentSize', 'AutoCapture', 'AutoHide', 'AutoTranslate', 'AxisAlignedRect', 'BeforeDestruction', 'BeginInvoke', 'BeginUpdate', 'BindMethodsToEvents', 'BottomRow', 'Bounces', 'BoundsRect', 'BringChildToFront', 'BringToFront', 'CanEdit', 'CanFocus', 'CanParentFocus', 'Canvas', 'CellByPoint', 'CellRect', 'Children', 'ChildrenCount', 'ChildrenRect', 'ClassInfo', 'ClassName', 'ClassNameIs', 'ClassParent', 'ClassType', 'CleanupInstance', 'ClearColumns', 'ClearContent', 'ClipChildren', 'ClipParent', 'ClipRect', 'Clone', 'Col', 'ColumnByIndex', 'ColumnByPoint', 'ColumnCount', 'ColumnIndex', 'ComObject', 'ComponentCount', 'ComponentIndex', 'ComponentState', 'ComponentStyle', 'Components', 'ContainsObject', 'Content', 'ContentBounds', 'ContentLayout', 'ContentSize', 'ControlType', 'Controls', 'ControlsCount', 'ConvertLocalPointFrom', 'ConvertLocalPointTo', 'Create', 'Cursor', 'CustomSceneAddRect', 'Data', 'DefaultDrawing', 'DefaultHandler', 'DefaultSize', 'DefaultStyleLookupName', 'DeleteChildren', 'DesignInfo', 'Destroy', 'DestroyComponents', 'Destroying', 'DisableDisappear', 'DisableFocusEffect', 'DisableMouseWheel', 'Dispatch', 'DisplayCells', 'DisposeOf', 'DragMode', 'EditorMode', 'EnableDragHighlight', 'Enabled', 'EnabledScroll', 'EndFunctionInvoke', 'EndInvoke', 'EndUpdate', 'EnumControls', 'EnumObjects', 'Equals', 'Exchange', 'ExecuteAction', 'FieldAddress', 'FindComponent', 'FindStyleResource', 'FixedSize', 'Free', 'FreeInstance', 'FreeNotification', 'FreeOnRelease', 'GetEnumerator', 'GetHashCode', 'GetInterface', 'GetInterfaceEntry', 'GetInterfaceTable', 'GetNamePath', 'GetParentComponent', 'GetTabList', 'GetUnusedViewportWidth', 'HScrollBar', 'HasAfterPaintEffect', 'HasClipParent', 'HasDisablePaintEffect', 'HasEffect', 'HasParent', 'Height', 'HelpContext', 'HelpKeyword', 'HelpType', 'Hint', 'HitTest', 'Images', 'InPaintTo', 'InViewRect', 'Index', 'Inflate', 'InheritedCursor', 'InheritsFrom', 'InitInstance', 'InsertComponent', 'InsertObject', 'InstanceSize', 'InvalidateRect', 'InvertAbsoluteMatrix', 'IsChild', 'IsDragOver', 'IsFocused', 'IsImplementorOf', 'IsInflated', 'IsMouseOver', 'IsUpdating', 'IsUsedInBinding', 'IsVisible', 'LeftColumn', 'LocalRect', 'LocalToAbsolute', 'LocalToAbsoluteVector', 'LocalToScreen', 'Lock', 'Locked', 'LookupStyleObject', 'MakeScreenshot', 'Margins', 'MethodAddress', 'MethodName', 'Model', 'Name', 'NeedStyleLookup', 'NewInstance', 'ObjectState', 'Observers', 'OnActivate', 'OnApplyStyleLookup', 'OnCalcContentBounds', 'OnCallbackGetValue', 'OnCanFocus', 'OnCellClick', 'OnCellDblClick', 'OnClick', 'OnColumnMoved', 'OnCreateCustomEditor', 'OnDblClick', 'OnDeactivate', 'OnDragDrop', 'OnDragEnd', 'OnDragEnter', 'OnDragLeave', 'OnDragOver', 'OnDrawColumnBackground', 'OnDrawColumnCell', 'OnDrawColumnHeader', 'OnEditingDone', 'OnEnter', 'OnExit', 'OnGesture', 'OnGetValue', 'OnHeaderClick', 'OnKeyDown', 'OnKeyUp', 'OnMouseDown', 'OnMouseEnter', 'OnMouseLeave', 'OnMouseMove', 'OnMouseUp', 'OnMouseWheel', 'OnPaint', 'OnPainting', 'OnResize', 'OnResized', 'OnSelChanged', 'OnSelectCell', 'OnSetValue', 'OnTap', 'OnViewportPositionChange', 'Opacity', 'Options', 'Owner', 'Padding', 'PaintTo', 'Parent', 'ParentClassStyleLookupName', 'ParentControl', 'ParentedRect', 'ParentedVisible', 'PointInObject', 'PointInObjectLocal', 'PopupMenu', 'Position', 'PrepareForPaint', 'Pressed', 'PressedPosition', 'QualifiedClassName', 'ReadOnly', 'RealignContent', 'RecalcAbsolute', 'RecalcAbsoluteNow', 'RecalcEnabled', 'RecalcHasClipParent', 'RecalcHasEffect', 'RecalcOpacity', 'RecalcSize', 'RecalcUpdateRect', 'ReferenceInterface', 'Release', 'Released', 'RemoveComponent', 'RemoveFreeNotification', 'RemoveFreeNotify', 'RemoveObject', 'Repaint', 'ResetFocus', 'RightColumn', 'Root', 'RotationAngle', 'RotationCenter', 'Row', 'RowByPoint', 'RowCount', 'RowHeight', 'SafeCallException', 'Scale', 'Scene', 'ScreenToLocal', 'ScrollAnimation', 'ScrollBy', 'ScrollDirections', 'ScrollTo', 'ScrollToCenter', 'ScrollToSelectedCell', 'ScrollToTop', 'SelectCell', 'SelectColumn', 'SelectRow', 'Selected', 'SendChildToBack', 'SendToBack', 'SetBounds', 'SetDesign', 'SetFocus', 'SetNewScene', 'SetProps', 'SetRoot', 'SetSubComponent', 'SetTopLeft', 'ShouldTestMouseHits', 'ShowHint', 'ShowInDesigner', 'ShowScrollBars', 'ShowSizeGrip', 'Size', 'Sort', 'StartTriggerAnimation', 'StartTriggerAnimationWait', 'StopPropertyAnimation', 'Stored', 'StyleLookup', 'StyleName', 'StyleState', 'StyledSettings', 'TabOrder', 'TabStop', 'Tag', 'TagFloat', 'TagObject', 'TagString', 'TextSettings', 'TextWidthToColWidth', 'ToList', 'ToString', 'ToTuple', 'TopRow', 'Touch', 'TouchTargetExpansion', 'TouchTracking', 'UnitName', 'UnitScope', 'UnloadPresentation', 'UpdateAction', 'UpdateContentSize', 'UpdateEffects', 'UpdateRect', 'VCLComObject', 'VScrollBar', 'ViewportPosition', 'ViewportSize', 'Visible', 'VisibleColumnCount', 'VisibleRows', 'Width', 'bound', 'class', 'contains', 'delattr', 'dir', 'doc', 'eq', 'format', 'ge', 'getattribute', 'getitem', 'getstate', 'gt', 'hash', 'init', 'init_subclass', 'iter', 'le', 'len', 'lt', 'ne', 'new', 'owned', 'reduce', 'reduce_ex', 'repr', 'setattr', 'sizeof', 'str', 'subclasshook']

Python 3.11 compatibility

Hi,
I'm moving projects to Python 3.11.1 in which I use DelphiVCL4Python/DelphiFMX4Python so to use new python language performances improvements.

They seems do not cover yet Python 3.11 but Python4Delphi does.

There is any planning to support Python 3.11 ?

Add dialog methods

There is no implementation of dialogs methods, such as ShowMessage or FMX.DialogService methods that are fundamental in the application.

How can sub-forms be called up?

Sub-forms with Main-form have been created in the Delphi application.
They were successfully exported, but no way to call the sub-forms from the main form was found.

These were exported successfully, but no way was found to call the sub-forms from the main form.

When MainWindow.py and Subwindow.py are exported, how to call them from MainWindow.py?

When I try to directly execute "self.Subwindow" in "init", which is written out by default, I get "TypeError: 'Form' object is not callable".

However, the documentation does not tell me how to create a Form other than MainForm.

How can I do this?

Error on Mac M1

If I try to use DelphiFMX in Python I get this error:

not valid for use in process: Trying to load an unsigned library), '/usr/local/lib/libDelphiFMX.dylib'

Here is the full terminal dump:

>>> from delphifmx import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/homebrew/lib/python3.9/site-packages/delphifmx/__init__.py", line 82, in <module>
    package = new_import()
  File "/opt/homebrew/lib/python3.9/site-packages/delphifmx/__init__.py", line 72, in new_import
    ld = loader.create_module(spec)
ImportError: dlopen(/opt/homebrew/lib/python3.9/site-packages/delphifmx/OSXARM64/libDelphiFMX.dylib, 0x0002): tried: '/opt/homebrew/lib/python3.9/site-packages/delphifmx/OSXARM64/libDelphiFMX.dylib' (code signature in <2D627531-CB8E-3D97-BE24-3045066492E7> '/opt/homebrew/lib/python3.9/site-packages/delphifmx/OSXARM64/libDelphiFMX.dylib' not valid for use in process: Trying to load an unsigned library), '/usr/local/lib/libDelphiFMX.dylib' (no such file), '/usr/lib/libDelphiFMX.dylib' (no such file)

Grid is not working

Although TGrid and TStringGrid are listed on the Wiki in the list of included classes, they are not working properly. See below the print of the form in Delphi:

delphi-fmx

Form in Python:

python

Hi DPI support?

image

On my windows, it's 1.5 times scaled. Is there are a way to set the DPI correctly or even better to calculate the prop DPI at run time?

Memo.VScrollBar doesn't exist

Normally in Delphi I would do Memo1.VScrollBar.Value := self.Memo1.VScrollBar.Max; to scroll to the bottom of a Memo. I tried doing this in Python, but it doesn't work.

Here's a code example in Python:

self.Memo1 = Memo(self)
self.Memo1.Parent = self
self.Memo1.Align = "Client"

for i in range(1000):
    self.Memo1.Lines.Add("This is a test: " + str(i))

self.Memo1.VScrollBar.Value = self.Memo1.VScrollBar.Max

The error is: AttributeError: 'NoneType' object has no attribute 'Max'

Or am I maybe using it wrong in Python?

Legal question

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

support plug-in

Does Delphi4Python support plug-ins? I hope to add my customized classes to delphifmx/delphivcl for collaborative work

Edit not accepting keyboard input

Hi,

I have being trying the Delphi FMX examples on my macbook pro (intel). While button clicks work perfectly, the Edit box is not accepting the characters I type on my keyboard. What ever I type does not show in the Edit box but instead on other open windows.

I am trying to run the ToDoList.py example on my local machine

delphifmx.mov

.

TCalendar and TDateEdit component missing?

I'm trying to make a Python form with the Calendar component, but it doesn't seem to exist in DelphiFMX. This is the component:

image

I'm trying to create it as follow:

self.myCalendar = Calendar(self)
self.myCalendar.Parent = self
self.myCalendar.Align = "MostTop"
self.myCalendar.Margins.Top = 20
self.myCalendar.Margins.Right = 20
self.myCalendar.Margins.Bottom = 20
self.myCalendar.Margins.Left = 20

My error is NameError: name 'Calendar' is not defined

Is Calendar available? If not, are there any plans to add it in the near future?

Linux Issues with sample scripts

Trying to run the sample scripts from the command line gives an error "from: command not found". This is because running from the command line attempts to run the file as a shell script - linux ignores the extension (so-called "magic number), and instead relies on a shebang comment at the head of the script to determine the correct interpreter to run the script with.

This can be fixed by adding a line at the top of every sample as follows:

#!/usr/bin/env python3

I'm not putting in a PR because the samples also segfault for me under linux (see comment in issue #40); when that is fixed I will make a PR to fix this issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.