Jump to content

peardox

Members
  • Content Count

    7
  • Joined

  • Last visited

Posts posted by peardox


  1. I was just having this problem and found a nasty explanation (bug)

     

    I was calling Main Form via a custom event handler to pass some data I want to monitor but the electric just had to be switched off (highly relevant) so I set my Laptop to being only monitor and suddenly I was seeing numbers changing without any kind of special processing. Electric came back on so I switched back to Laptop + External monitor and it stopped working again (External being main display).

     

    Running it again I dragged to form between displays - on Laptop screen numbers change, on External display they don't ...

     

    As some will have multiple displays (most these days?) it is likely that some people will think it works and some people wont

     

    Note that like the OP I'm also using FMX


  2. My license is for 11.2 Architect and as such includes access back to XE2 Architect

     

    I've been writing some installation routines and want to check older version compatibility but I if I download any XE (tried a few inceluding 2 + 7) but the installer for pre-10.x wont accept my serial informing me it's not valid.

     

    It was suggested that I install 11 then try XE [some version] as my 11 would recognise the key and that should be picked up by the XE installer - but it didn't work.

     

    Anyone know how I can install an XE with my valid 11 license?


  3. I think this is something screwey in some obscure Windows setting as this works fine on other machines.

     

    badscale.thumb.png.6f16698a9c0cea0b9777f16d05919cb7.png

     

    The application is displayed half height half width - other than that it's perfect. Of course this means the user can't actually use the program

    He tells me he's got another very similar machine that doesn;t do this with the app displaying properly sized

    He also says some "The may be the result of a previous Canon app that appeared the same way."
    I'd like to know why his PC is doing this so I can look out for it and hopefully cater for the situation

    My Mac has high res monitor but doesn't do the same thing (his is a Win PC tho)


  4. Some sample python...
     

    import adelphimodule
    
    class ADict(dict):
        def __init__(self, *args, **kwargs):
            super().__init__(*args, **kwargs)
            self.__dict__ = self
    
    someitems = ADict(
    	first = 1,
    	second = "Two",
    	third = 3.0,
    	fourth = ADict(
    		subitem1 = True
    		}
    	)
    	
    print(adelphimodule.delphievent(someitems))

     

    Now, in Delphi I stick a PythonModule on a form and hook it up to engine etc (i.e. all this bit works) - I name it delphimodule which will then make it accessible with the Python above.

    Next I create an event for the module called delphievent

    In delphi I run the Python and when it hits the adelphimodule.delphievent(someitems) which then triggers this bit of Delphi...

     

    procedure TForm1.PythonModule1Events0Execute(Sender: TObject; PSelf, Args: PPyObject;
      var Result: PPyObject);
    var
      log: TTrainLog;
    begin
      with GetPythonEngine do
      begin
        // Check if the transmitted object is a dictionary
        if not PyDict_Check(Args) then
        begin
          Result := PyUnicodeFromString('===> Bad Event Handler!');
          Exit;
        end;
      end;
      Result := PyUnicodeFromString('===> Good Event Handler!');
    end;

     

    This code will make the Python print "Bad Event Handler" even though I've passed the event data that is a Python dict

     

    The examples have a single event demo and it does nothing with passing data so I'm a little stumped over how to extract the data I passed in

     

    I could write yet another module I guess but then I'd end up needing new modules for any new bunch of data I sent back to Delphi. The thing I'm trying to do is pass arbitary data back to delphi (tried packaging it as JSon but couldn't read ther string data either) 

     

    Edit : Got string passing OK now so can always pass as JSON

     

×