Return;
} } } }
… }
static void Main() { Application.Run(new Avtos()); } }
Результат:
Пример 5.3.4.2. Реализация четвертого этапа разработки Avtos–приложения на языке C++/CLI. // kurs.cc.cpp: main project file.
#include "stdafx.h" #using <System.Drawing.dll> #using <System.Windows.Forms.dll> using namespace System; using namespace System::Threading; using namespace System::Collections; using namespace System::Drawing; using namespace System::Windows::Forms;
delegate void delEv(); delegate void Del();
ref class Avto { … };
ref class Avtos: public Form { private: ArrayList ^al; //ссылка на список машин ListBox ^listBoxNum;//список номеров машин …
public: Avtos() { …
ok = gcnew Button(); ok->Text = "Stop"; ok->Size = Drawing::Size(45, 30); ok->Location = Point(5, 10); ok->Click += gcnew EventHandler(this, &Avtos::OK); f->Controls->Add(ok);
listBoxNum = gcnew ListBox(); listBoxNum->Location = Point(140, 10); listBoxNum->Size = Drawing::Size(60, 70); f->Controls->Add(listBoxNum); del = gcnew Button(); del->Text = "Del"; del->Size = Drawing::Size(40, 30); del->Location = Point(90, 10); del->Click += gcnew EventHandler(this, &Avtos::DEL); f->Controls->Add(del); }
private: void OK(Object ^obj, EventArgs ^arg) { IEnumerator ^inum = al->GetEnumerator(); while (inum->MoveNext()) { Avto ^a = (Avto^)inum->Current; if (run) { a->Suspend(); ok->Text = "Start"; } else { a->Resume(); ok->Text = "Stop"; } } run =!run; }
public: void ADD(Object ^obj, EventArgs ^arg) { …
listBoxNum->Items->Add(num); b->numA = num; al->Add(b); IEnumerator ^inum = al->GetEnumerator(); while (inum->MoveNext()) { Avto ^q = (Avto^)inum->Current; q->evSpecial += gcnew delEv(this, &Avtos::HandlerEvSpecial);
} }
private: void DEL(Object ^o, EventArgs ^e) { if (listBoxNum->SelectedIndex == -1) { MessageBox::Show("Выделите номер удаляемого объекта"); } Else { int numSel = (int)listBoxNum->SelectedItem; listBoxNum->Items->Remove(numSel);//Удалить из списка IEnumerator ^inum = al->GetEnumerator(); while (inum->MoveNext()) { Avto ^a = (Avto^)inum->Current; if (a->N == numSel) {//объект с указанным номером найден a->Finish();//завершить поток al->Remove(a);//удалить из списка
|