Скачиваний:
18
Добавлен:
01.05.2014
Размер:
9.8 Кб
Скачать
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Main.h"
#include "About.h"
#include "Unit2.h"
#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma resource "*.dfm"
TMainForm *MainForm;
//---------------------------------------------------------------------------

__fastcall TMainForm::TMainForm(TComponent *Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------

TfrmMDIChild* __fastcall TMainForm::CreateMDIChild(String Name)
{
	TfrmMDIChild *Child;

	//--- create a new MDI child window ----
	Child = new TfrmMDIChild(Application);
	Child->Caption = Name;

    return Child;
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::FileNew1Execute(TObject *Sender)
{
	CreateMDIChild("NONAME" + IntToStr(MDIChildCount + 1));
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::FileOpen1Execute(TObject *Sender)
{
	if (OpenDialog->Execute()) {
		TfrmMDIChild *chf = CreateMDIChild(OpenDialog->FileName);
		TFileStream *fs = new  TFileStream(OpenDialog->FileName, fmOpenRead);

        fs->ReadComponent(chf->ListView1);
        chf->setField();

        delete fs;
    }
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::HelpAbout1Execute(TObject *Sender)
{
	AboutBox->ShowModal();
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::FileExit1Execute(TObject *Sender)
{
	Close();
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::FileSave1Update(TObject *Sender)
{
	dynamic_cast<TAction*>(Sender)->Enabled = ActiveMDIChild;
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::FileSaveAs1Execute(TObject *Sender)
{
	if (SaveDialog->Execute()) {
		TFileStream *fs = new  TFileStream(SaveDialog->FileName, fmCreate);
	    fs->WriteComponent((dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->ListView1);
        delete fs;
        ActiveMDIChild->Caption = SaveDialog->FileName;
	}
}
//---------------------------------------------------------------------------


void __fastcall TMainForm::FileSave1Execute(TObject *Sender)
{
	if (!ActiveMDIChild->Caption.AnsiPos("NONAME")) {
		TFileStream *fs = new  TFileStream(ActiveMDIChild->Caption, fmCreate);
	    fs->WriteComponent((dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->ListView1);
        delete fs;
    }
    else
	    FileSaveAs1->Execute();
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::FormCreate(TObject *Sender)
{
	actZoomIn->ShortCut = TextToShortCut("Ctrl+=");
	actZoomOut->ShortCut = TextToShortCut("Ctrl+-");
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actZoomInExecute(TObject *Sender)
{
	if (ActiveMDIChild) {
    	TfrmMDIChild *frm = dynamic_cast<TfrmMDIChild*>(ActiveMDIChild);
        frm->zoom = frm->zoom + 0.05;
    }
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actZoomOutExecute(TObject *Sender)
{
	if (ActiveMDIChild) {
    	TfrmMDIChild *frm = dynamic_cast<TfrmMDIChild*>(ActiveMDIChild);
        frm->zoom = frm->zoom - 0.05;
    }
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actIsStructureVisibleUpdate(TObject *Sender)
{
	TfrmMDIChild *frm = dynamic_cast<TfrmMDIChild*>(ActiveMDIChild);
    TAction *act = dynamic_cast<TAction*>(Sender);
    act->Enabled = frm;
    if (frm) act->Checked = (frm->Panel2->Width != 0);
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actIsStructureVisibleExecute(TObject *Sender)
{
	TfrmMDIChild *frm = dynamic_cast<TfrmMDIChild*>(ActiveMDIChild);
    TAction *act = dynamic_cast<TAction*>(Sender);
	frm->Panel2->Width = (frm->Panel2->Width == 0 ? 300 : 0);
    act->Checked = (frm->Panel2->Width != 0);
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actZoomInUpdate(TObject *Sender)
{
	(dynamic_cast<TAction*>(Sender))->Enabled = dynamic_cast<TfrmMDIChild*>(ActiveMDIChild);
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actOptionsExecute(TObject *Sender)
{
	if (ActiveMDIChild) (dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->setOptions();
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::N10Click(TObject *Sender)
{
	Form3->ShowModal();
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actAlgStepExecute(TObject *Sender)
{
	if (ActiveMDIChild) (dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->actAlgStep->Execute();
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actAlgStepUpdate(TObject *Sender)
{
	dynamic_cast<TAction*>(Sender)->Enabled = (ActiveMDIChild && (dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->actAlgStep->Enabled);
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actAlgRunExecute(TObject *Sender)
{
	if (ActiveMDIChild) (dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->actAlgRun->Execute();
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actAlgRunUpdate(TObject *Sender)
{
	dynamic_cast<TAction*>(Sender)->Enabled = (ActiveMDIChild && (dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->actAlgRun->Enabled);
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actAlgStopExecute(TObject *Sender)
{
	if (ActiveMDIChild) (dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->actAlgStop->Execute();
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actAlgStopUpdate(TObject *Sender)
{
	dynamic_cast<TAction*>(Sender)->Enabled = (ActiveMDIChild && (dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->actAlgStop->Enabled);
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actDeletePointExecute(TObject *Sender)
{
	if (ActiveMDIChild) (dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->actDeletePoint->Execute();
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actDeletePointUpdate(TObject *Sender)
{
	dynamic_cast<TAction*>(Sender)->Enabled = (ActiveMDIChild && (dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->actDeletePoint->Enabled);
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actInsertPointExecute(TObject *Sender)
{
	if (ActiveMDIChild) (dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->actInsertPoint->Execute();
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actInsertPointUpdate(TObject *Sender)
{
	dynamic_cast<TAction*>(Sender)->Enabled = (ActiveMDIChild && (dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->actInsertPoint->Enabled);
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actMovePointExecute(TObject *Sender)
{
	if (ActiveMDIChild) (dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->actMovePoint->Execute();
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actMovePointUpdate(TObject *Sender)
{
	dynamic_cast<TAction*>(Sender)->Enabled = (ActiveMDIChild && (dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->actMovePoint->Enabled);
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actAlgStepPreExecute(TObject *Sender)
{
	if (ActiveMDIChild) (dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->actAlgStepPre->Execute();
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::actAlgStepPreUpdate(TObject *Sender)
{
	dynamic_cast<TAction*>(Sender)->Enabled = (ActiveMDIChild && (dynamic_cast<TfrmMDIChild*>(ActiveMDIChild))->actAlgStepPre->Enabled);
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::N24Click(TObject *Sender)
{
	if (!ActiveMDIChild) return;

    TfrmMDIChild *form = dynamic_cast<TfrmMDIChild*>(ActiveMDIChild);

    try {
    	int nmb = StrToInt(InputBox("Случайная генерация точек", "Введите число", "100"));
        if (nmb<1 && nmb > 1000) throw Exception("Error");
        for (int i = 0 ; i < nmb; i++)
        	while (form->addPoint(TPoint(rand() % form->pWidth + 2, rand() % form->pHeight + 2)) == NULL_MYPOINT);
    }
    catch(...) { ShowMessage("Недопустимое значение!"); }
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::N25Click(TObject *Sender)
{
	if (!ActiveMDIChild) return;

    TfrmMDIChild *form = dynamic_cast<TfrmMDIChild*>(ActiveMDIChild);

	form->pointList.clear();
    form->ListView1->Items->Clear();
    form->ListView2->Items->Clear();
    form->Panel1->Invalidate();
}
//---------------------------------------------------------------------------

Соседние файлы в папке Sources