Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ООП / ООП / Laba4 / Lab4

.cpp
Скачиваний:
8
Добавлен:
18.02.2017
Размер:
4.77 Кб
Скачать
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Lab4.h"
#include <math.h>
#include <string.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
click=false;
n=0;
this->Cls();
for (int i = 0; i < n; i++) {
str[i]=new CStr(0);
str[i]->Start(50,10+50*i,40,40);
}
}

//---------------------------------------------------------------------------

void __fastcall TForm1::Cls()
{
Image1->Canvas->Pen->Width=3;
Image1->Canvas->Pen->Color = RGB(255,255,255);
Image1->Canvas->Brush->Color = RGB(255,255,255);
Image1->Canvas->Rectangle(0,0,Image1->Width,Image1->Height);
};

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
this->Cls();
for (int i = 0; i < n; i++) {
str[i]->SetY(this->Image1->Height/2-50*n/2+i*50);
str[i]->MidX(this->Image1->Width);
str[i]->Draw();
};

}
//---------------------------------------------------------------------------


void __fastcall TForm1::OnDown(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
for (int i = 0; i < n; i++) {
int t=str[i]->Click(X,Y);
if (t==-1) str[i]->SetFlag(1,!str[i]->GetFlag(1));
if ((t==-2)  || (t>0) ){
for (int j=0;j<n;j++) {str[j]->SetFlag(2,false); if (i!=j) str[j]->ResetMark();};
str[i]->SetFlag(2,true);
};
if ((t>0) && (str[i]->GetFlag(2))) str[i]->SetMark(t-1);

}
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{

bool t,h=false;
do
{
t=false;
for (int i=0; i < n; i++)
if (str[i]->GetFlag(1))
{
t=true;
if (str[i]->GetFlag(2)) h=true;
delete str[i]; n--;
for (int j = i; j < n; j++) str[j]=str[j+1];
}
} while (t);

if (h) str[0]->SetFlag(2,true);

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
str[n]=new CStr((this->Edit1->Text).c_str());
str[n]->Start(0,0,40,40);
str[n]->ResetMark();
if (n==0) str[0]->SetFlag(2,true);
n++;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
int t=(this->Edit2->Text).ToInt();
if ((t>=0) && (t<20)) {
str[n]=new CStr(t);
str[n]->Start(0,0,40,40);
str[n]->ResetMark();
if (n==0) str[0]->SetFlag(2,true);
n++;
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)         //
{
for (int i=0;i<n;i++) if (str[i]->GetFlag(2)) {str[i]->Delete(true); str[i]->ResetMark();};
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button8Click(TObject *Sender)
{
for (int i=0;i<n;i++) if (str[i]->GetFlag(2)) {(*str[i])=str[i]->Copy(false); str[i]->ResetMark();};
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button9Click(TObject *Sender)
{
for (int i=0;i<n;i++) if (str[i]->GetFlag(2)) {(*str[i])=(this->Edit8->Text).c_str();};
}
//---------------------------------------------------------------------------

char * __fastcall TForm1::Sum (char * s1, char *s2)
{
char *u;
int i=0,k=0;
while (s1[i]!='\0') i++;
while (s2[i]!='\0') i++;
u = new char [i+1];
i=0;
while (s1[i]!='\0') {u[i]=s1[i]; i++;};
while (s2[k]!='\0') {u[i]=s2[k]; i++; k++;};
u[i]='\0';
return u;
}

void __fastcall TForm1::Button7Click(TObject *Sender)
{
for (int i=0;i<n;i++) if (str[i]->GetFlag(2))
{
char *f=(this->Edit3->Text).c_str();
char *f1=str[i]->Ret();
(*str[i])=Sum(f1,f);
};
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button6Click(TObject *Sender)
{
for (int i=0;i<n;i++) if (str[i]->GetFlag(2))
{
char *f=str[i]->Ret();
char *f1=str[i]->Copy(false);
(*str[i])=Sum(f,f1);
};
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)
{
for (int i=0;i<n;i++) if (str[i]->GetFlag(2))
{
int t=(this->Edit6->Text).ToInt();
if ((t>=0) && (t<=n)) {
str[i]->Paste(t,(this->Edit7->Text).c_str());
};
};
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button10Click(TObject *Sender)
{
for (int i=0;i<n;i++) str[i]->SetFlag(1,false);
}
//---------------------------------------------------------------------------

Соседние файлы в папке Laba4
  • #
    18.02.20173.26 Кб7CStr.cpp
  • #
    18.02.2017851 б8CStr.h
  • #
    18.02.20174.77 Кб8Lab4.cpp
  • #
    18.02.20174.17 Кб7Lab4.dfm
  • #
    18.02.20171.95 Кб7Lab4.h
  • #
    18.02.20177.37 Кб7Project1.cbproj
  • #
    18.02.20177.37 Кб7Project1.cbproj.2007
  • #
    18.02.20171.7 Кб8Project1.cbproj.local