Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Геометрический поиск метод локусов / Sources / Main
.cpp//---------------------------------------------------------------------------
#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