Componentes.Terceros.jvcl/official/3.32/examples/JvProfiler32/BCB/Profiler32MainFormU.cpp

146 lines
4.0 KiB
C++

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Profiler32MainFormU.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "JvComponentBase"
#pragma link "JvProfilerForm"
#pragma resource "*.dfm"
TProfiler32MainForm *Profiler32MainForm;
//---------------------------------------------------------------------------
__fastcall TProfiler32MainForm::TProfiler32MainForm(TComponent* Owner)
: TForm(Owner)
{
P->Names = ListBox1->Items;
P->Sorted = true;
P->Enabled = true;
FTerminated = false;
DefCaption = "JvProfiler 32 Test program";
#if ( SET_DECIMAL_SEPARATOR > 0)
DecimalSeparator = '.';
#endif
}
//---------------------------------------------------------------------------
void __fastcall TProfiler32MainForm::FormClose(TObject *Sender,
TCloseAction &Action)
{
FTerminated = true;
P->Enabled = false;
P->Stop();
}
//---------------------------------------------------------------------------
void __fastcall TProfiler32MainForm::FormKeyDown(TObject *Sender,
WORD &Key, TShiftState Shift)
{
if( Key == 27 ) /* test for ESCAPE key */
{
FTerminated = true;
}
}
//---------------------------------------------------------------------------
void __fastcall TProfiler32MainForm::UseIdBtnClick(TObject *Sender)
{
int i,j,k;
FTerminated = false;
randomize();
P->Start();
//{ make distributed randomize to get some results }
Screen->Cursor = crHourGlass;
UseIdBtn->Enabled = false;
UseNameBtn->Enabled = false;
ResultBtn->Enabled = false;
try
{
k = random(100);
Progress->Max = k;
for( j = 0;j<=k;++j )
{
Progress->Position = j;
Caption = Format("%s - to do: %d", OPENARRAY(TVarRec, (DefCaption.c_str(),(k-j)) ) );
i = random(ListBox1->Items->Count);
// { use string ID instead }
P->EnterName(P->Names->Strings[i]);
::SleepEx(10 * j,false);
P->ExitName(P->Names->Strings[i]);
Application->ProcessMessages();
if( FTerminated )
{
break;
}
}
}
__finally
{
Screen->Cursor = crDefault;
UseIdBtn->Enabled = true;
UseNameBtn->Enabled = true;
ResultBtn->Enabled = true;
}
P->Stop();
Beep();
Progress->Position = 0;
}
//---------------------------------------------------------------------------
void __fastcall TProfiler32MainForm::UseNameBtnClick(TObject *Sender)
{
int i,j,k;
FTerminated = false;
randomize();
//{ just randomize to get some results }
Screen->Cursor = crHourGlass;
UseIdBtn->Enabled = false;
UseNameBtn->Enabled = false;
ResultBtn->Enabled = false;
P->Start();
try
{
k = random(133);
Progress->Max = k;
for( j = 0;j<= k; ++j)
{
Progress->Position = j;
Caption = Format("%s - to do: %d", OPENARRAY(TVarRec, (DefCaption.c_str(),(k-j)) ) );
i = random(ListBox1->Items->Count);
//{ use integer ID (Names[i] ID = i) }
P->EnterID(i);
SleepEx(random(333),false);
P->ExitID(i);
Application->ProcessMessages();
if( FTerminated )
{
break;
}
}
}
__finally
{
Screen->Cursor = crDefault;
UseIdBtn->Enabled = true;
UseNameBtn->Enabled = true;
ResultBtn->Enabled = true;
}
P->Stop();
Beep();
Progress->Position = 0;
}
//---------------------------------------------------------------------------
void __fastcall TProfiler32MainForm::ResultBtnClick(TObject *Sender)
{
/*
If you have some exception problems with sorting in result
it can be casued by different decimal separators.
In this case you should search for SET_DECIMAL_SEPARATOR
in this module and set your own decimal separator.
*/
P->ShowReport();
}
//---------------------------------------------------------------------------