@@ -12,7 +12,7 @@ interface
1212
1313type
1414 TThreadSortForm = class (TForm)
15- StartBtn : TButton;
15+ Start3Btn : TButton;
1616 BubbleSortBox: TPaintBox;
1717 SelectionSortBox: TPaintBox;
1818 QuickSortBox: TPaintBox;
@@ -25,23 +25,23 @@ TThreadSortForm = class(TForm)
2525 PythonMemo: TMemo;
2626 PythonEngine1: TPythonEngine;
2727 SortModule: TPythonModule;
28- Start2Btn : TButton;
28+ Start1Btn : TButton;
2929 LoadBtn: TButton;
3030 PythonDialog: TOpenDialog;
3131 SaveDialog: TSaveDialog;
3232 SaveBtn: TButton;
33- Button1 : TButton;
33+ StopBtn : TButton;
3434 procedure BubbleSortBoxPaint (Sender: TObject);
3535 procedure SelectionSortBoxPaint (Sender: TObject);
3636 procedure QuickSortBoxPaint (Sender: TObject);
3737 procedure FormCreate (Sender: TObject);
38- procedure StartBtnClick (Sender: TObject);
39- procedure Start2BtnClick (Sender: TObject);
38+ procedure Start3BtnClick (Sender: TObject);
39+ procedure Start1BtnClick (Sender: TObject);
4040 procedure LoadBtnClick (Sender: TObject);
4141 procedure SaveBtnClick (Sender: TObject);
4242 procedure SortModuleInitialization (Sender: TObject);
4343 procedure FormCloseQuery (Sender: TObject; var CanClose: Boolean);
44- procedure Button1Click (Sender: TObject);
44+ procedure StopBtnClick (Sender: TObject);
4545 private
4646 OwnThreadState: PPyThreadState;
4747 ThreadsRunning: Integer;
@@ -129,22 +129,22 @@ procedure TThreadSortForm.InitThreads(ThreadExecMode: TThreadExecMode; script: T
129129
130130 end ;
131131
132- StartBtn .Enabled := False;
133- Start2Btn .Enabled := False;
132+ Start1Btn .Enabled := False;
133+ Start3Btn .Enabled := False;
134134end ;
135135
136- procedure TThreadSortForm.Start2BtnClick (Sender: TObject);
136+ procedure TThreadSortForm.Start1BtnClick (Sender: TObject);
137137begin
138138 with GetPythonEngine do
139139 begin
140140 ExecStrings(PythonMemo.Lines);
141- self.InitThreads(emNewState,nil );
141+ self.InitThreads(emNewState, nil );
142142 end ;
143143end ;
144144
145- procedure TThreadSortForm.StartBtnClick (Sender: TObject);
145+ procedure TThreadSortForm.Start3BtnClick (Sender: TObject);
146146begin
147- InitThreads(emNewInterpreter,PythonMemo.Lines);
147+ InitThreads(emNewInterpreter, PythonMemo.Lines);
148148// PythonEngine1.ExecStrings(PythonMemo.Lines);
149149end ;
150150
@@ -182,8 +182,8 @@ procedure TThreadSortForm.ThreadDone(Sender: TObject);
182182 if ThreadsRunning = 0 then
183183 begin
184184 GetPythonEngine.PyEval_RestoreThread(OwnThreadState);
185- StartBtn .Enabled := True;
186- Start2Btn .Enabled := True;
185+ Start1Btn .Enabled := True;
186+ Start3Btn .Enabled := True;
187187 ArraysRandom := False;
188188 Thread1 := nil ;
189189 Thread2 := nil ;
@@ -196,7 +196,8 @@ procedure TThreadSortForm.ThreadDone(Sender: TObject);
196196}
197197
198198function TThreadSortForm.SortModule_GetValue ( pself, args : PPyObject ) : PPyObject; cdecl;
199- var psort,index: integer;
199+ var
200+ psort, index: Integer;
200201begin
201202 with GetPythonEngine do
202203 begin
@@ -208,12 +209,10 @@ function TThreadSortForm.SortModule_GetValue( pself, args : PPyObject ) : PPyObj
208209 end ;
209210end ;
210211
211-
212-
213212function TThreadSortForm.SortModule_Swap ( pself, args : PPyObject ) : PPyObject; cdecl;
214- var psort,i,j: integer;
213+ var
214+ psort, i, j: Integer;
215215begin
216-
217216 with GetPythonEngine do
218217 begin
219218 if (PyErr_Occurred() = nil ) and (PyArg_ParseTuple( args, ' iii' ,@psort, @i, @j) <> 0 ) then
@@ -225,8 +224,6 @@ function TThreadSortForm.SortModule_Swap( pself, args : PPyObject ) : PPyObject;
225224 end ;
226225end ;
227226
228-
229-
230227procedure TThreadSortForm.SortModuleInitialization (Sender: TObject);
231228begin
232229 with Sender as TPythonModule do
@@ -240,7 +237,7 @@ procedure TThreadSortForm.SortModuleInitialization(Sender: TObject);
240237 end ;
241238end ;
242239
243- procedure TThreadSortForm.Button1Click (Sender: TObject);
240+ procedure TThreadSortForm.StopBtnClick (Sender: TObject);
244241begin
245242 if Assigned(Thread1) and not Thread1.Finished then Thread1.Stop();
246243 if Assigned(Thread2) and not Thread2.Finished then Thread2.Stop();
0 commit comments