forked from pyscripter/python4delphi
-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathUnit1.pas
90 lines (74 loc) · 1.95 KB
/
Unit1.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
unit Unit1;
interface
uses
SysUtils, Classes,
Windows, Messages, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, ExtCtrls,
PythonEngine, Vcl.PythonGUIInputOutput;
type
TForm1 = class(TForm)
PythonEngine1: TPythonEngine;
Memo1: TMemo;
PythonModule1: TPythonModule;
Panel1: TPanel;
Button1: TButton;
Splitter1: TSplitter;
Button2: TButton;
Button3: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
PythonGUIInputOutput1: TPythonGUIInputOutput;
Memo2: TMemo;
procedure Button1Click(Sender: TObject);
procedure PythonModule1Initialization(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
function spam_foo( self, args : PPyObject ) : PPyObject; cdecl;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
PythonEngine1.ExecStrings( Memo1.Lines );
end;
// Here's an example of functions defined for the module spam
function spam_foo( self, args : PPyObject ) : PPyObject; cdecl;
begin
with GetPythonEngine do
begin
ShowMessage( 'args of foo: '+PyObjectAsString(args) );
Result := ReturnNone;
end;
end;
procedure TForm1.PythonModule1Initialization(Sender: TObject);
begin
// In a module initialization, we just need to add our
// new methods
with Sender as TPythonModule do
begin
AddMethod( 'foo', spam_foo, 'foo' );
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
with OpenDialog1 do
begin
if Execute then
Memo1.Lines.LoadFromFile( FileName );
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
with SaveDialog1 do
begin
if Execute then
Memo1.Lines.SaveToFile( FileName );
end;
end;
end.