From 42155ed22a7fa1c1fb5cadc35341375ef17f707b Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Tue, 21 May 2002 10:38:20 +0000
Subject: [PATCH] Added a StatusBar, Timer, and List.

---
 src/xpdev/clx/ThreadCreate/MainUnit.h     |  7 +++++++
 src/xpdev/clx/ThreadCreate/MainUnit.xfm   | 17 +++++++++++++++--
 src/xpdev/clx/ThreadCreate/ThreadUnit.cpp | 11 ++++++++---
 src/xpdev/clx/ThreadCreate/ThreadUnit.h   |  2 ++
 4 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/src/xpdev/clx/ThreadCreate/MainUnit.h b/src/xpdev/clx/ThreadCreate/MainUnit.h
index 7f33e93e48..9a26475dc2 100644
--- a/src/xpdev/clx/ThreadCreate/MainUnit.h
+++ b/src/xpdev/clx/ThreadCreate/MainUnit.h
@@ -8,6 +8,9 @@
 #include <QControls.hpp>
 #include <QStdCtrls.hpp>
 #include <QForms.hpp>
+#include <QComCtrls.hpp>
+#include <QExtCtrls.hpp>
+#include <QTypes.hpp>
 //---------------------------------------------------------------------------
 class TForm1 : public TForm
 {
@@ -16,10 +19,14 @@ __published:	// IDE-managed Components
 	TButton *CreateButton;
 	TButton *KillButton;
 	TMemo *Log;
+	TStatusBar *StatusBar;
+	TTimer *Timer;
 	void __fastcall CreateButtonClick(TObject *Sender);
 	void __fastcall KillButtonClick(TObject *Sender);
+	void __fastcall TimerTick(TObject *Sender);
 private:	// User declarations
 public:		// User declarations
+	TList* List;
 	TCriticalSection* CriticalSection;
 	__fastcall TForm1(TComponent* Owner);
 };
diff --git a/src/xpdev/clx/ThreadCreate/MainUnit.xfm b/src/xpdev/clx/ThreadCreate/MainUnit.xfm
index e18ba8fcbd..190b16fc04 100644
--- a/src/xpdev/clx/ThreadCreate/MainUnit.xfm
+++ b/src/xpdev/clx/ThreadCreate/MainUnit.xfm
@@ -2,8 +2,8 @@ object Form1: TForm1
   Left = 536
   Top = 314
   Width = 211
-  Height = 283
-  VertScrollBar.Range = 273
+  Height = 303
+  VertScrollBar.Range = 292
   HorzScrollBar.Range = 203
   ActiveControl = ListBox
   Caption = 'Form1'
@@ -45,4 +45,17 @@ object Form1: TForm1
     ScrollBars = ssAutoBoth
     TabOrder = 3
   end
+  object StatusBar: TStatusBar
+    Left = 0
+    Top = 284
+    Width = 211
+    Height = 19
+    Panels = <>
+    SimplePanel = True
+  end
+  object Timer: TTimer
+    OnTimer = TimerTick
+    Left = 96
+    Top = 144
+  end
 end
diff --git a/src/xpdev/clx/ThreadCreate/ThreadUnit.cpp b/src/xpdev/clx/ThreadCreate/ThreadUnit.cpp
index 8bb343dede..b850c06169 100644
--- a/src/xpdev/clx/ThreadCreate/ThreadUnit.cpp
+++ b/src/xpdev/clx/ThreadCreate/ThreadUnit.cpp
@@ -25,14 +25,19 @@ __fastcall TMyThread::TMyThread(bool CreateSuspended)
 	: TThread(CreateSuspended)
 {
 }
+void __fastcall TMyThread::AddToLog()
+{
+    	Log->Lines->Add(ThreadID);
+}
 //---------------------------------------------------------------------------
 void __fastcall TMyThread::Execute()
 {
 	while(!Terminated) {
-    	CriticalSection->Enter();
-    	Log->Lines->Add(ThreadID);
+    	Synchronize(AddToLog);
+		CriticalSection->Enter();
+		List->Add(new AnsiString(ThreadID));
         CriticalSection->Leave();
-	    Sleep(1000);
+ 	    Sleep(1);
     }
 }
 //---------------------------------------------------------------------------
diff --git a/src/xpdev/clx/ThreadCreate/ThreadUnit.h b/src/xpdev/clx/ThreadCreate/ThreadUnit.h
index 144ae0c88f..0bf617eae9 100644
--- a/src/xpdev/clx/ThreadCreate/ThreadUnit.h
+++ b/src/xpdev/clx/ThreadCreate/ThreadUnit.h
@@ -14,8 +14,10 @@ protected:
 	void __fastcall Execute();
 public:
 	TMemo*	Log;
+    TList*	List;
     TCriticalSection* CriticalSection;
 	__fastcall TMyThread(bool CreateSuspended);
+    void __fastcall AddToLog(void);
 };
 //---------------------------------------------------------------------------
 #endif
-- 
GitLab