class TMyThread : public TThread
{
private:
TEdit *edt;
DWORD n;
public:
__fastcall TMyThread(TEdit *Edit)
: TThread(false)
{
edt = Edit;
n = Edit->Text.ToIntDef(0);
edt->Tag = (int)this;
};
__fastcall ~TMyThread(void)
{
edt->Tag = 0;
};
void __fastcall Execute(void)
{
while (!this->Terminated)
{
Sleep(200);
this->Synchronize(ShowData);
}
}
void __fastcall ShowData(void)
{
if (edt != NULL) edt->Text = IntToStr(n++);
}
};
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Button1->OnClick = Button1Click;
Button2->OnClick = Button1Click;
Button3->OnClick = Button1Click;
Button4->OnClick = Button1Click;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Sender == Button1) new TMyThread(Edit1 );
else if (Sender == Button2) new TMyThread(Edit2);
else if (Sender == Button3) delete (TMyThread *)Edit1->Tag;
else if (Sender == Button4) delete (TMyThread *)Edit2->Tag;
}
{
private:
TEdit *edt;
DWORD n;
public:
__fastcall TMyThread(TEdit *Edit)
: TThread(false)
{
edt = Edit;
n = Edit->Text.ToIntDef(0);
edt->Tag = (int)this;
};
__fastcall ~TMyThread(void)
{
edt->Tag = 0;
};
void __fastcall Execute(void)
{
while (!this->Terminated)
{
Sleep(200);
this->Synchronize(ShowData);
}
}
void __fastcall ShowData(void)
{
if (edt != NULL) edt->Text = IntToStr(n++);
}
};
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Button1->OnClick = Button1Click;
Button2->OnClick = Button1Click;
Button3->OnClick = Button1Click;
Button4->OnClick = Button1Click;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Sender == Button1) new TMyThread(Edit1 );
else if (Sender == Button2) new TMyThread(Edit2);
else if (Sender == Button3) delete (TMyThread *)Edit1->Tag;
else if (Sender == Button4) delete (TMyThread *)Edit2->Tag;
}
5677

被折叠的 条评论
为什么被折叠?



