Jump to content

softtouch

Members
  • Content Count

    148
  • Joined

  • Last visited

Community Reputation

4 Neutral

Technical Information

  • Delphi-Version
    Delphi 12 Athens

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. softtouch

    Delphi 12.1 is available

    Yes, that will just return "We couldn’t find any requests"
  2. softtouch

    Delphi 12.1 is available

    Just wanted to read and comment on it, but that weird new portal does not list any report for me.
  3. softtouch

    Delphi 12.1 is available

    It uninstalled my 12 update 1 version and I had to reinstall all components again 😞
  4. softtouch

    mainmodule.<functionname> dynamically?

    Thank you! This is actually working just fine!
  5. softtouch

    mainmodule.<functionname> dynamically?

    I did, but I cant get it to work unfortunately. Anyway, thanks for your help.
  6. softtouch

    mainmodule.<functionname> dynamically?

    Thank you, but how can I provide parameter to the call when using this approach like result:=MainModule.ClickElement_ByXPATH(param1,param2,param3...)
  7. softtouch

    mainmodule.<functionname> dynamically?

    Via MainModule.<pythonfunction name here> (TPythonModule of P4D) If the python function ClickElement_ByXPATH exist, I call it like MainModule.ClickElement_ByXPATH();
  8. softtouch

    mainmodule.<functionname> dynamically?

    I want to call python functions. Their names are in a stringlist. With other words, how could I call a python function when the function name is a string? Example: var s:='ClickElement_ByXPATH'; How can I call the corresponding python function, which has exactly that name?
  9. Lets say I have an array with the following 2 strings in it: ClickElement_ByXPATH ClickElement_ByCSSSelector I have Python function with the same name, so I could call MainModule.ClickElement_ByXPATH or MainModule.ClickElement_ByCSSSelector, which works. Is there any way to create the funcname in the call MainModule.<funcname> based on the strings in the stringlist? For example, when I get the first item in the stringlist (ClickElement_ByXPATH), how could I create a call to MainModule.<here the element from the stringlist>, similar I can do with rtti and delphi functions, so it would call MainModule.ClickElement_ByXPATH? With other words, creating the call based on the text in a stringlist.
  10. I just set DefaultDraw to false in onCustomDrawItem for that dummy item, and I have now the group header with an invisible item and no checkbox for that, so thats all fine so far.
  11. Thanks for the hint with the blank item. Now I just need to find a way to hide the checkbox for that blank item.
  12. I have a listview with groups and items. User can drag/drop items between groups. But when they move the last item of a group to another group, that group become invisible, so they cant move items back to that group. Is there any way to keep groups visible at all time, even they have no items assigned to them?
  13. softtouch

    Freeing TPythonModule after using it takes long

    Sorry for the late replay. I believe I found the issue, its related to selenium somehow. Once I use selenium, freeing the module takes 5 seconds, even the selenium driver was already closed earlier.
  14. softtouch

    Freeing TPythonModule after using it takes long

    A minimum example, which works just fine but cause the delay, and I cant figure out why that is. In form create: procedure TfrmTest.FormCreate(Sender: TObject); begin eng:=TPythonEngine.Create(nil); eng.DllName:='python312.dll'; eng.DllPath:=pythonhome; module:=TPythonModule.Create(nil); module.Engine:=eng; module.ModuleName:='delphicallback'; module.OnInitialization:=InitPythonModule; eng.LoadDll; end; In form close: procedure TfrmTest.FormClose(Sender: TObject; var Action: TCloseAction); begin eng.Free; // Takes 5 seconds to return once the python script called the delphi method end; The InitPythonModule has just this one line: procedure TfrmTest.InitPythonModule(Sender: TObject); begin TPythonModule(Sender).AddDelphiMethod('callback',delphi_callback,'callback(name, value)->value'); end; The delphi method "delphi_callback" only does this for testing: function TfrmTest.delphi_callback(pself, args: PPyObject): PPyObject; var key:pansichar; value:PPyObject; begin with GetPythonEngine do begin if PyArg_ParseTuple(args, 'sO:callback', @key, @value) <> 0 then begin result:=PyUnicodeFromString('Test'); end; end; end; Calling the python script procedure Tfrmtest.btntestClick(Sender: TObject); begin eng.ExecFile(<the script file path here>); s:=MainModule.Test('Hello world'); end; The python script does this for testing: import delphicallback def Test(s:str)->str: delphicallback.callback('testing',s)
  15. softtouch

    Freeing TPythonModule after using it takes long

    I stopped the time and it takes around 5 second until the .free returns. If I dont free it and just free the pythonengine, that will take 5 seconds (I guess for releasing the module). It definitely only take so long when the delphi function was called once from python, even the delphi function does not do anything. If I dont call the delphi function from python, there is no delay at all.
×