-
Content Count
966 -
Joined
-
Last visited
-
Days Won
61
Everything posted by pyscripter
-
You probably have noticed that when you press the middle mouse button in the Delphi IDE the editor goes into panning mode, that allows you to scroll by moving the mouse. Many of the Vcl.Controls are panning enabled including the Memos, Grids, ContolLists, TabControls, Treeviews and others. For a complete list just search for csPannable in the Delphi Vcl source code folder. They use the exact same code that the IDE uses and behave in exactly the same way. However, what you may not know (I did not), is that to enable panning you need to include in your project the Vcl.IMouse unit. Vcl also makes it easy to add panning to your custom controls. All it takes is to add the csPannable control style. So SynEdit now has the same panning support as the Delphi IDE. However, I have discovered two bugs related to Vcl panning: Memory leak when you use Vcl.IMouse - RAD Studio Service - Jira Service Management The Panning Window is not DPI scaled - RAD Studio Service - Jira Service Management Both are easy to fix, so hopefully Embarcadero will provide fixes soon enough! In the meantime, it is easy to work around the memory leak and hopefully live with the second one, which also affects the Delphi IDE.
-
Unlike DelphiVcl, DelphiFMX does not wrap Canvas. Both DelphiVcl and DelphiFmx are maintained by Embarcadero. There is a reported issue regarding BeginScene, but you may want to submit a broader one about Canvas support.
-
I committed a change trying to fix this. Could you please try once more.
-
python4delphi Add extra components without touch DelphiVCL
pyscripter replied to shineworld's topic in Python4Delphi
This is not correct. When P4D is used in an extension module it uses LoadDllInExtensionModule which just uses the dll loaded in the python process. It does not load or initialize the python dll. The calling process does that. So you can have more than one Delphi generated pyd files without issues. -
In the latest commit, multiple connections are handled in separate threads. So, Multiple Connections on LocalForward · Issue #11 · pyscripter/Ssh-Pascal is fixed. Seems to work fine, but could you please test it?
-
@dummzeuch Please see my latest commit. TSshTunnel.ForwardLocalPort has been refactored and can now handle multiple connections sequentially. So your use case may be working. Could you please test. I will also see whether the connections can be handled in parallel. Is there a use case for that? Can you have multiple connections simultaneously on the same port?
-
@dummzeuchI have updated the build scripts and the binaries which do not need OpenSSL. Could you please try the new binaries and see whether you still get the error you mentioned? These binaries work well with ssh-agent password-less authentication, whilst the Php ones don't. Also would it be possible to post a test project that requires multiple connections, so that I can have a go at fixing the issue?
-
Probably not. When you add commits to the same branch, the commits are added to the PR. If you want to have separate PRs you need different branches for each change. Anyway your changes have been merged and you are listed as a contributor.
-
@dummzeuch I think handling connections sequentially should be quite easy, without resorting to multiple threads. Once one is closed you wait for the next one. Please bear in mind, that there are limitations when using libssh2 from multiple threads: Points 1 and 3 are the same, since the crypto functions are initialized by libssh2_init. Ssh_pascal handles this in a thread safe manner. The second point, I think means that you either have a session per thread or you protect with a lock, access to the same session and its channels,
-
A Pull Request implementing an alternative design that resolves this issue would be much appreciated.
-
The code in SshTunnel.pas is based on this libssh2 example. Maybe I missed something, in converting it to Delphi. It would be nice to fix it.
-
@dummzeuch I have pushed a couple of fixes to SshTunnel.pas (issues found by Copilot!). Could you please check whether they make a difference? One of them might: SocketOption := 1; // Initialize SocketOption
-
LIBSUFFIX AUTO has been a much requested feature for ages. The Delphi 10.4.1 announcement said: Sounded interesting so I decided to try that. I first searched the documentation and found the following: So I added {$LIBSUFFIX AUTO} to a package of mine say xyz.dpk and the bpl file generated was indeed xyz270.bpl. However I got an error message saying: This much for "full support" for this feature. Am I missing something??
-
See How can I import a .pyc compiled python file and use it - Stack Overflow
-
There are about 75 highlighters and It is not too difficult to add new ones. You can start with a highlighter for a language that is quite similar and adapt it, e.g. change the keywords. There is also SynGen that helps you create a highlighter from scratch. You can request a highlighter and someone may have or contribute a new one. Regarding Powershell have a look at this discussion. It contains an extended General highlighter that can be adapted to practically any language. PSPad uses that unit to support syntax highlighting for 180 programming languages.
-
I have no idea what you are trying to accomplish, but for instance you can put the PythonModule in a data module. Instead of using AddDelphiMethod directly. you could add an Event to the PythonModules Event's collection. Events are converted to python functions, which delegate the execution to a Delphi event handler. Then, every time the form is created, it could assign a handler to the event's OnExecute property.
-
You should not free modules that have been initialized and loaded into python while the python engine is active. python has references to procedures of the module and this may lead to crashing python. You can destroy modules after python has finailized.
-
Works here with the same version. Are you using the latest sources now from the master branch.
-
Flow control symbols have also been added: Technical details.
-
Structural highlighting has also been added. Technical details.
-
Using Python4Delphi library in a Windows service
pyscripter replied to Luca Pretti's topic in Python4Delphi
In the demo project modify the CreateEngine function as follows: procedure TService1.CreatePyEngine; begin PythonEngine := TPythonEngine.Create(nil); PythonEngine.Name := 'PythonEngine'; PythonEngine.DLLName := 'python313.dll'; PythonEngine.DllPath := 'c:\python\python313\'; PythonEngine.PythonHome := PythonEngine.DLLPath; PythonEngine.VenvPythonExe := PythonEngine.DLLPath + 'python.exe'; // may be needed PythonEngine.RegVersion := '3.13'; PythonEngine.UseLastKnownVersion := False; PythonEngine.FatalAbort := False; PythonEngine.FatalMsgDlg := False; PythonEngine.LoadDll; TPythonThread.Py_Begin_Allow_Threads; end; I think this should set the python path correctly and avoid import errors. -
Using Python4Delphi library in a Windows service
pyscripter replied to Luca Pretti's topic in Python4Delphi
What I think is best: - Create the pythonEngine (or load the python dll) on Start - Destroy the pythonEngine (or unload the python dll) on Stop - Follow these guideliines to execute python code in threads. Please see the attached project for an example that does that. Sample log output after starting and stopping the engine: Logs From Background Thread: 24/10/2024 14:49:18 Python eval = 4 Logs From Background Thread: 24/10/2024 14:49:19 Python eval = 4 Logs From Background Thread: 24/10/2024 14:49:20 Python eval = 4 Logs From Background Thread: 24/10/2024 14:49:21 Python eval = 4 Service.zip -
I very much like the "Filter Explicit properties" expert. However, in recent versions of Delphi (not sure when it started), the IDE inserts annoying DesignSize properties that "pollute" the Dfm and the revision history. It would be really nice if the expert was renamed "Filter DFM properties" and included the option of removing these DesignSize properties.
- 11 replies
-
Feature enhancement request - Filter DFM properties
pyscripter replied to pyscripter's topic in GExperts
The understatement of the year.- 11 replies
-
Delphi 12.2 is now available for download from https://my.embarcadero.com/.