@@ -2019,6 +2019,7 @@ TPythonInterface=class(TDynamicDll)
2019
2019
TEngineClient = class ;
2020
2020
TSysPathInitEvent = procedure(Sender: TObject; PathList: PPyObject) of object ;
2021
2021
TConfigInitEvent = procedure(Sender: TObject; var Config: PyConfig) of object ;
2022
+ TPreConfigInitEvent = procedure(Sender: TObject; var PreConfig: PyPreConfig) of object ;
2022
2023
2023
2024
TTracebackItem = class
2024
2025
public
@@ -2067,6 +2068,7 @@ TPythonEngine = class(TPythonInterface)
2067
2068
FPythonPath: UnicodeString;
2068
2069
FOnSysPathInit: TSysPathInitEvent;
2069
2070
FOnConfigInit: TConfigInitEvent;
2071
+ FOnPreConfigInit: TPreConfigInitEvent;
2070
2072
FTraceback: TPythonTraceback;
2071
2073
FUseWindowsConsole: Boolean;
2072
2074
FGlobalVars: PPyObject;
@@ -2217,8 +2219,8 @@ TPythonEngine = class(TPythonInterface)
2217
2219
property UseWindowsConsole: Boolean read FUseWindowsConsole write FUseWindowsConsole default False;
2218
2220
property OnAfterInit: TNotifyEvent read FOnAfterInit write FOnAfterInit;
2219
2221
property OnSysPathInit: TSysPathInitEvent read FOnSysPathInit write FOnSysPathInit;
2222
+ property OnPreConfigInit: TPreConfigInitEvent read FOnPreConfigInit write FOnPreConfigInit;
2220
2223
property OnConfigInit: TConfigInitEvent read FOnConfigInit write FOnConfigInit;
2221
-
2222
2224
end ;
2223
2225
2224
2226
@@ -4822,6 +4824,10 @@ procedure TPythonEngine.Initialize;
4822
4824
else
4823
4825
PyPreConfig_InitPythonConfig(PreConfig);
4824
4826
4827
+ // Fine tune PreConfig
4828
+ if Assigned(FOnPreConfigInit) then
4829
+ FOnPreConfigInit(Self, PreConfig);
4830
+
4825
4831
Status := Py_PreInitialize(PreConfig);
4826
4832
if not PyStatus_Exception(Status) then begin
4827
4833
// Fills Config with zeros and then sets some default values
0 commit comments