//--------------------------------------------------------------------------- #include #include #include #pragma hdrstop #include "MainMenu.h" #include "ColorChange_F.h" #include "Draw_F.h" #include "Fill_F.h" #include "Fullview.h" #include "Grouping_F.h" #include "Knitting_F.h" #include "Main.h" #include "MainImage.h" #include "MarkEdit_F.h" #include "MarkClear.h" #include "MoveCopy_F.h" #include "MarkDraw_F.h" #include "MarkFill.h" #include "MarkMoveCopy.h" #include "MarkRepeat.h" #include "Palette.h" #include "PatternRepeat.h" #include "PenManager.h" #include "ProtectCard.h" #include "Repeat_F.h" #include "Repro_F.h" #include "SimpleWindow_F.h" #include "SpreadFill.h" #include "Stipple.h" #include "Stripe_F.h" #include "Text_F.h" #include "Undo_F.h" #include "Window.h" #include "ProductData_F.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" //--------------------------------------------------------------------------- #define IDS_FCAPTION StringTable[0] #define IDS_MOVECOPY StringTable[1] #define IDS_COLORCHANGE StringTable[2] #define IDS_CLEAR StringTable[3] #define IDS_GROUPING StringTable[4] #define IDS_REPROPORTION StringTable[5] #define IDS_FILL StringTable[6] #define IDS_SPREADFILL StringTable[7] #define IDS_STIPPLE StringTable[8] #define IDS_PATTERNREPEAT StringTable[9] #define IDS_STRIPE StringTable[10] #define IDS_COLORSEPARATE StringTable[11] #define IDS_TEXT StringTable[12] #define IDS_PRINTER StringTable[13] #define IDS_SCANNER StringTable[14] #define IDS_MARKFILL StringTable[15] #define IDS_YARN StringTable[16] #define IDS_MARK StringTable[17] #define IDS_KNIT StringTable[18] #define IDS_RESIZE StringTable[19] //============================================== ¼­ºê¸Þ´º¿¡ Ãß°¡ÇÑ ºÎºÐ #define IDS_SHAPE StringTable[20] #define IDS_IRREGULAR StringTable[21] #define IDS_SURFACEMULTI StringTable[22] #define IDS_SURFACESINGLE StringTable[23] #define IDS_BORDER StringTable[24] #define IDS_FULL StringTable[25] #define IDS_OFF StringTable[26] #define IDS_ROTATEMIRROR StringTable[27] #define IDS_ROTATE StringTable[28] #define IDS_BEND StringTable[29] #define IDS_BYWINDOW StringTable[30] #define IDS_SWAP StringTable[31] #define IDS_SINGLETOSINGLE StringTable[32] #define IDS_MULTITOSINGLE StringTable[33] #define IDS_BYPEN StringTable[34] #define IDS_WINDOWIN StringTable[35] #define IDS_WINDOWOUT StringTable[36] #define IDS_TYPE StringTable[37] #define IDS_USERCHOOSE StringTable[38] #define IDS_FILLTER StringTable[39] #define IDS_REARRANGE StringTable[40] #define IDS_MANUALREPEAT StringTable[41] #define IDS_MATCHNORMAL StringTable[42] #define IDS_MATCHHOR StringTable[43] #define IDS_AUTOREPEAT StringTable[44] #define IDS_PULL StringTable[45] #define IDS_PERSPFIXX StringTable[46] #define IDS_PERSPFIXY StringTable[47] #define IDS_PATTERN StringTable[48] #define IDS_REGULAR StringTable[49] #define IDS_IMAGESPRAY StringTable[50] #define IDS_CLOSECOLOR StringTable[51] #define IDS_CLOSEAREA StringTable[52] #define IDS_WHOLE StringTable[53] #define IDS_SQUARE StringTable[54] #define IDS_SINGLETOPATTERN StringTable[55] #define IDS_SINGLETOROTATE StringTable[56] #define IDS_CIRCLE StringTable[57] #define IDS_MULTITOMULTI StringTable[58] #define IDS_MULTITOPATTERN StringTable[59] #define IDS_MULTITOROTATE StringTable[60] #define IDS_MATCHVER StringTable[61] #define IDS_BOTH StringTable[62] #define IDS_YARNCREAR StringTable[63] #define IDS_MARKCREAR StringTable[64] #define IDS_PRODUCTDATA StringTable[65] //--------------------------------------------------------------------------- TMainMenuForm *MainMenuForm; //--------------------------------------------------------------------------- __fastcall TMainMenuForm::TMainMenuForm(TComponent* Owner) : TForm(Owner) { //================================================= StringTable.Create(DirectoryItem, Language, "MainMenu"); SetSmallFont(Font); Caption = IDS_FCAPTION; sbWindow->Hint = IDS_COMMON_WINDOW; sbMoveCopy->Hint = IDS_MOVECOPY; sbColorChange->Hint = IDS_COLORCHANGE; sbClear->Hint = IDS_CLEAR; sbGrouping->Hint = IDS_GROUPING; sbRepeat->Hint = IDS_COMMON_REPEAT; sbDraw->Hint = IDS_COMMON_DRAW; sbRepro->Hint = IDS_REPROPORTION; sbFill->Hint = IDS_FILL; sbSpreadFill->Hint = IDS_SPREADFILL; sbStipple->Hint = IDS_STIPPLE; sbPatternRepeat->Hint = IDS_PATTERNREPEAT; sbStripe->Hint = IDS_STRIPE; sbText->Hint = IDS_TEXT; sbFile->Hint = IDS_COMMON_FILE; sbPrint->Hint = IDS_PRINTER; sbScan->Hint = IDS_SCANNER; sbUndo->Hint = IDS_COMMON_UNDO; sbMarkFill->Hint = IDS_MARKFILL; sbKnit->Hint = IDS_KNIT; sbMark->Hint = IDS_MARK; sbYarn->Hint = IDS_YARN; sbResize->Hint = IDS_RESIZE; sbPData->Hint = IDS_PRODUCTDATA; Window1->Caption = IDS_COMMON_WINDOW; MoveCopy1->Caption = IDS_MOVECOPY; ColorChange1->Caption = IDS_COLORCHANGE; Clear1->Caption = IDS_CLEAR; Grouping1->Caption = IDS_GROUPING; repeat1->Caption = IDS_COMMON_REPEAT; Draw1->Caption = IDS_COMMON_DRAW; Reproportion1->Caption = IDS_REPROPORTION; Fill1->Caption = IDS_FILL; SpreadFill1->Caption = IDS_SPREADFILL; Stipple1->Caption = IDS_STIPPLE; PatternRepeat1->Caption = IDS_PATTERNREPEAT; Stripe1->Caption = IDS_STRIPE; Text1->Caption = IDS_TEXT; MarkFill1->Caption = IDS_MARK; File1->Caption = IDS_COMMON_FILE; Resize1->Caption = IDS_RESIZE; Printing1->Caption = IDS_PRINTER; Scanning1->Caption = IDS_SCANNER; Undo1->Caption = IDS_COMMON_UNDO; subshape1->Caption = IDS_SHAPE; subRectangle2->Caption = IDS_COMMON_RECTANGLE; subCircle1->Caption = IDS_COMMON_CIRCLE; subEllipse1->Caption = IDS_COMMON_ELLIPSE; subIrreegular1->Caption = IDS_IRREGULAR; subOutline1->Caption = IDS_COMMON_OUTLINE; subSurfaceM1->Caption = IDS_SURFACEMULTI; subSurfaceS1->Caption = IDS_SURFACESINGLE; subBorder1->Caption = IDS_BORDER; subfull1->Caption = IDS_FULL; subOff1->Caption = IDS_OFF; Copy1->Caption = IDS_COMMON_COPY; Normal1->Caption = IDS_COMMON_NORMAL; UpDown1->Caption = IDS_COMMON_UPDOWN; Mirror1->Caption = IDS_COMMON_MIRROR; RotatingMirror1->Caption = IDS_ROTATEMIRROR; UpdownMirror1->Caption = IDS_COMMON_UPDOWNMIRROR; Rotate1->Caption = IDS_ROTATE; Bend1->Caption = IDS_BEND; Move1->Caption = IDS_COMMON_MOVE; Normal2->Caption = IDS_COMMON_NORMAL; UpDown2->Caption = IDS_COMMON_UPDOWN; Mirror2->Caption = IDS_COMMON_MIRROR; RotatingMirror2->Caption = IDS_ROTATEMIRROR; UpDownMirror2->Caption = IDS_COMMON_UPDOWNMIRROR; Rotate2->Caption = IDS_ROTATE; Bend2->Caption = IDS_BEND; ByWindow1->Caption = IDS_BYWINDOW; Swap1->Caption = IDS_SWAP; SToS1->Caption = IDS_SINGLETOSINGLE; MToS1->Caption = IDS_MULTITOSINGLE; ByPen1->Caption = IDS_BYPEN; SToS2->Caption = IDS_SINGLETOSINGLE; MToS2->Caption = IDS_MULTITOSINGLE; Both1->Caption = IDS_BOTH; Yarn1->Caption = IDS_YARNCREAR; Mark1->Caption = IDS_MARKCREAR; subwholeclear2->Caption = IDS_COMMON_WHOLE; subwindowin2->Caption = IDS_WINDOWIN; subwindowout2->Caption = IDS_WINDOWOUT; subwholeclear3->Caption = IDS_COMMON_WHOLE; subwindowin3->Caption = IDS_WINDOWIN; subwindowout3->Caption = IDS_WINDOWOUT; subwholeclear4->Caption = IDS_COMMON_WHOLE; subwindowin4->Caption = IDS_WINDOWIN; subwindowout4->Caption = IDS_WINDOWOUT; subType1->Caption = IDS_TYPE; subUserchoose1->Caption = IDS_USERCHOOSE; subFilter1->Caption = IDS_FILLTER; subRearrange1->Caption = IDS_REARRANGE; // ManualR->Caption = IDS_MANUALREPEAT; Normal4->Caption = IDS_COMMON_NORMAL; halfVer2->Caption = IDS_COMMON_HDVER; halfHor2->Caption = IDS_COMMON_HDHOR; MatchNormal2->Caption = IDS_MATCHNORMAL; MatchVer2->Caption = IDS_MATCHHOR; MatchHor2->Caption = IDS_MATCHVER; // AutoRepeat1->Caption = IDS_AUTOREPEAT; // Normal1->Caption = IDS_COMMON_NORMAL; // halfDHor1->Caption = IDS_COMMON_HDHOR; // halfDVer1->Caption = IDS_COMMON_HDVER; // close1->Caption = IDS_COMMON_EXIT; Line1->Caption = IDS_COMMON_LINE; Square1->Caption = IDS_COMMON_SQUARE; Circle1->Caption = IDS_COMMON_CIRCLE; OutLine1->Caption = IDS_COMMON_OUTLINE; Curve1->Caption = IDS_COMMON_CURVE; Rectangle1->Caption = IDS_COMMON_RECTANGLE; Ellipse1->Caption = IDS_COMMON_ELLIPSE; subRectangle1->Caption = IDS_COMMON_RECTANGLE; subpull1->Caption = IDS_PULL; subPerspX1->Caption = IDS_PERSPFIXX; subPerspY1->Caption = IDS_PERSPFIXY; subLine1->Caption = IDS_COMMON_LINE; subCircle2->Caption = IDS_COMMON_CIRCLE; subRect1->Caption = IDS_COMMON_RECTANGLE; // subpattern1->Caption = IDS_PATTERN; subRegular1->Caption = IDS_REGULAR; subIrrgular1->Caption = IDS_IRREGULAR; subImagespray1->Caption = IDS_IMAGESPRAY; // subchoosecolor1->Caption = IDS_CLOSECOLOR; // subchoosearea1->Caption = IDS_CLOSEAREA; // subwhole1->Caption = IDS_WHOLE; StoS3->Caption = IDS_SINGLETOSINGLE; StoPattern1->Caption = IDS_SINGLETOPATTERN; StoRotate1->Caption = IDS_SINGLETOROTATE; MtoS3->Caption = IDS_MULTITOSINGLE; MtoM1->Caption = IDS_MULTITOMULTI; MtoPattern1->Caption = IDS_MULTITOPATTERN; MtoRotate1->Caption = IDS_MULTITOROTATE; subSquare1->Caption = IDS_SQUARE; subCircle2->Caption = IDS_CIRCLE; //================================================= } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::FormClose(TObject *Sender, TCloseAction &Action) { ExitForm(); Visible = false; if (FOnUpdateMenu) FOnUpdateMenu(Sender); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::FormCreate(TObject *Sender) { ClientWidth = 248; ClientHeight = PanelExit->Top; PosY = Height; FWidth = ClientWidth; FHeight = ClientHeight; UndoHotKeysw = false; } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbYarnClick(TObject *Sender) { InitKnitMenu(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbMarkClick(TObject *Sender) { InitKnitMenu(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbKnitClick(TObject *Sender) { InitKnitMenu(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitKnitMenu() { HRGN rgn; RECT r, rect; TKnitArrange *ka; int px, py, oldpx, oldpy, dpi, u; bool sw = false; ka = MainImageForm->Arrange; oldpx = MainImageForm->iMainImage->PositionX; oldpy = MainImageForm->iMainImage->PositionY; dpi = MainImageForm->CanvasInfor.DotsPerInch; ExitForm(); ExitKnitMenu(); if (sbYarn->Down) { if (DesignMode==D_MARK) { if (MainImageForm->WorkArea->Mask) { rgn = MainImageForm->iMainImage->ArrayBitmap[1].GetRegion(true); MainImageForm->iMainImage->ArrayBitmap[0].PutRegion(rgn); DeleteObject(rgn); } sw = false; } else if (DesignMode==D_KNIT) { if (MainImageForm->WorkArea->Mask) { MainImageForm->iMainImage->ArrayBitmap[2].RemoveRegion(); MainImageForm->ConvertRegion(MainImageForm->WorkArea->Range, &r, false); rgn = CreateRectRgn(r.left, r.top, r.right, r.bottom); MainImageForm->iMainImage->ArrayBitmap[0].PutRegion(rgn); DeleteObject(rgn); MainImageForm->WorkArea->SetShapeRegion(&MainImageForm->iMainImage->ArrayBitmap[0] , Point(r.left, r.top), Point(r.right, r.bottom)); } sw = true; } KnittingForm->Visible = sbKnit->Down; MarkEditForm->Visible = sbMark->Down; MainImageForm->iMainImage->ArrayIndex = 0; MainImageForm->iMainImage->Cursor = DesignMode==D_YARN ? crPen : crCross; MainImageForm->ZoomChange(16, 1); if (sw) { px = oldpx * (double) ka->kdsn.wpi / dpi; py = oldpy * (double) ka->kdsn.cpi / dpi; } else { px = oldpx; py = oldpy; } MainImageForm->iMainImage->SetPosition(px, py); shYarn->Pen->Color = clBlue; shYarn->Brush->Color = clBlue; DesignMode = D_YARN; MainImageForm->UnitChange(uDot); } else { shYarn->Pen->Color = clBlack; shYarn->Brush->Color = clBlack; } if (sbMark->Down) { if (DesignMode==D_YARN) { if (MainImageForm->WorkArea->Mask) { r = MainImageForm->WorkArea->Range; rgn = CreateRectRgn(r.left, r.top, r.right, r.bottom); if (MainImageForm->WorkArea->IsRect(&MainImageForm->iMainImage->ArrayBitmap[0])==1) { MainImageForm->iMainImage->ArrayBitmap[0].RemoveRegion(); MainImageForm->iMainImage->ArrayBitmap[1].PutRegion(rgn); } else { MainImageForm->WorkArea->ResetRegion(MainImageForm->iMainImage); } DeleteObject(rgn); } sw = false; } else if (DesignMode==D_KNIT) { if (MainImageForm->WorkArea->Mask) { MainImageForm->iMainImage->ArrayBitmap[2].RemoveRegion(); MainImageForm->ConvertRegion(MainImageForm->WorkArea->Range, &r, false); rgn = CreateRectRgn(r.left, r.top, r.right, r.bottom); MainImageForm->iMainImage->ArrayBitmap[0].PutRegion(rgn); DeleteObject(rgn); MainImageForm->WorkArea->SetShapeRegion(&MainImageForm->iMainImage->ArrayBitmap[1] , Point(r.left, r.top), Point(r.right, r.bottom)); } sw = true; } KnittingForm->Visible = sbKnit->Down; MarkEditForm->Visible = sbMark->Down; MarkEditForm->PageControl1->ActivePageIndex = 0; MainImageForm->iMainImage->ArrayIndex = 1; MainImageForm->iMainImage->Cursor = crCross; MainImageForm->ZoomChange(16, 1); if (sw) { px = oldpx * (double) ka->kdsn.wpi / dpi; py = oldpy * (double) ka->kdsn.cpi / dpi; } else { px = oldpx; py = oldpy; } MainImageForm->iMainImage->SetPosition(px, py); PenManagerForm->Pen->Brush = false; PenManagerForm->cbPressure->Checked = false; shMark->Pen->Color = clBlue; shMark->Brush->Color = clBlue; DesignMode = D_MARK; MainImageForm->UnitChange(uDot); } else { shMark->Pen->Color = clBlack; shMark->Brush->Color = clBlack; } if (sbKnit->Down) { if (DesignMode==D_MARK) { if (MainImageForm->WorkArea->Mask) { MainImageForm->iMainImage->ArrayBitmap[1].RemoveRegion(); MainImageForm->ConvertRegion(MainImageForm->WorkArea->Range, &r, true); rgn = CreateRectRgn(r.left, r.top, r.right, r.bottom); MainImageForm->iMainImage->ArrayBitmap[2].PutRegion(rgn); DeleteObject(rgn); MainImageForm->WorkArea->SetShapeRegion(&MainImageForm->iMainImage->ArrayBitmap[2] , Point(r.left, r.top), Point(r.right, r.bottom)); } sw = true; } else if (DesignMode==D_YARN) { if (MainImageForm->WorkArea->Mask) { MainImageForm->iMainImage->ArrayBitmap[0].RemoveRegion(); MainImageForm->ConvertRegion(MainImageForm->WorkArea->Range, &r, true); rgn = CreateRectRgn(r.left, r.top, r.right, r.bottom); MainImageForm->iMainImage->ArrayBitmap[2].PutRegion(rgn); DeleteObject(rgn); MainImageForm->WorkArea->SetShapeRegion(&MainImageForm->iMainImage->ArrayBitmap[2] , Point(r.left, r.top), Point(r.right, r.bottom)); } sw = true; } KnittingForm->Visible = sbKnit->Down; MarkEditForm->Visible = MainForm->VMarkLibItem->Checked; MarkEditForm->PageControl1->ActivePageIndex = 1; MarkEditForm->PageControl1Change(NULL); MarkEditForm->sgMarkLib->Repaint(); MainImageForm->iMainImage->ArrayIndex = 2; MainImageForm->iMainImage->Cursor = crCross; MainImageForm->ZoomChange(1, 1); if (sw) { px = oldpx * (double) dpi / ka->kdsn.wpi; py = oldpy * (double) dpi / ka->kdsn.cpi; } else { px = oldpx; py = oldpy; } MainImageForm->iMainImage->SetPosition(px, py); PenManagerForm->Pen->Brush = false; PenManagerForm->cbPressure->Checked = false; shKnit->Pen->Color = clBlue; shKnit->Brush->Color = clBlue; KnittingForm->YarnRearrange(); DesignMode = D_KNIT; TIniFile *IniFile = new TIniFile(DirectoryItem+"\\Environment.ini"); if (IniFile) { u = IniFile->ReadInteger("MainImage", "Unit", 0); if (u == 0) { MainImageForm->UnitChange(uCm); } else if (u == 1) { MainImageForm->UnitChange(uInch); } else { MainImageForm->UnitChange(uDot); } delete IniFile; } } else { shKnit->Pen->Color = clBlack; shKnit->Brush->Color = clBlack; } UpdateItem(); PenManagerForm->ChangeMode(); ::RepaintColor(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::ExitKnitMenu() { if (DesignMode==D_YARN) { PenManagerForm->InitPenForm(); } else if (DesignMode==D_KNIT) { MainImageForm->BackupUnit = MainImageForm->CurrentUnit; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::YarnMarkUpdate() { if (MainImageForm) { if (MainImageForm->Arrange) { MarkEditForm->UseGrid->Repaint(); KnittingForm->YarnGrid->Repaint(); } } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbWindowClick(TObject *Sender) { InitWindowForm(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbMoveCopyClick(TObject *Sender) { InitMoveCopyForm(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbColorChangeClick(TObject *Sender) { InitColorChangeForm(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbClearClick(TObject *Sender) { InitClearForm(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbGroupingClick(TObject *Sender) { InitGroupingForm(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbRepeatClick(TObject *Sender) { InitRepeatForm(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbDrawClick(TObject *Sender) { if (DesignMode == D_YARN) { InitDrawForm(); } else if (DesignMode == D_MARK) { InitMarkDrawForm(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbReproClick(TObject *Sender) { InitReproForm(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbFillClick(TObject *Sender) { InitFillForm(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbSpreadFillClick(TObject *Sender) { InitSpreadFillForm(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbStippleClick(TObject *Sender) { InitStippleForm(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbPatternRepeatClick(TObject *Sender) { InitPatternRepeatForm(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbStripeClick(TObject *Sender) { InitStripeForm(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbTextClick(TObject *Sender) { InitTextForm(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbMarkFillClick(TObject *Sender) { if (DesignMode == D_MARK) { InitMarkFillForm(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbResizeClick(TObject *Sender) { MainForm->FResizeCanvasItemClick(Sender); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbFileClick(TObject *Sender) { MainForm->FManagerItemClick(Sender); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbPrintClick(TObject *Sender) { MainForm->FPrintingItemClick(Sender); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbScanClick(TObject *Sender) { MainForm->FScanningItemClick(Sender); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbPDataClick(TObject *Sender) { UndoHotKeysw = false; InitPDataForm(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbUndoClick(TObject *Sender) { UndoHotKeysw = false; InitUndoForm(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbExitClick(TObject *Sender) { ExitForm(); showfalse(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::PopupMenu1Popup(TObject *Sender) { TMenuItem *NewItem; GetCursorPos(&ptScreen); UpdatePopup(); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::UpdatePopup() { TMenuItem *NewItem; for (int i = 0; i < 2; i++) { NewItem = (TMenuItem *) PopupMenu1->Items->Items[0]; if (NewItem->Caption == "Capture Overwrite") { PopupMenu1->Items->Remove(NewItem); delete NewItem; continue; } if (NewItem->Caption == "StyleImage Delete") { PopupMenu1->Items->Remove(NewItem); delete NewItem; continue; } if (NewItem->Caption == "-") { PopupMenu1->Items->Remove(NewItem); delete NewItem; } } if (MainImageForm->WorkArea->Mask) { subwindowin2->Enabled = true; subwindowin3->Enabled = true; subwindowin4->Enabled = true; subwindowout2->Enabled = true; subwindowout3->Enabled = true; subwindowout4->Enabled = true; subOff1->Enabled = true; }else { subwindowin2->Enabled = false; subwindowin3->Enabled = false; subwindowin4->Enabled = false; subwindowout2->Enabled = false; subwindowout3->Enabled = false; subwindowout4->Enabled = false; subOff1->Enabled = false; } MtoS3->Enabled = true; MtoM1->Enabled = true; MtoPattern1->Enabled = MainImageForm->WorkArea->Mask!=NULL; MtoRotate1->Enabled = MainImageForm->WorkArea->Mask!=NULL; StoPattern1->Enabled = MainImageForm->WorkArea->Mask!=NULL; StoRotate1->Enabled = MainImageForm->WorkArea->Mask!=NULL; } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::ZoomClick(TObject *Sender) { TMenuItem *MenuItem; if (MenuItem = dynamic_cast(Sender)) { switch (MenuItem->Tag) { case 0: MainImageForm->ZoomChange(1, 16, &ptScreen); break; case 1: MainImageForm->ZoomChange(1, 12, &ptScreen); break; case 2: MainImageForm->ZoomChange(1, 8, &ptScreen); break; case 3: MainImageForm->ZoomChange(1, 6, &ptScreen); break; case 4: MainImageForm->ZoomChange(1, 4, &ptScreen); break; case 5: MainImageForm->ZoomChange(1, 3, &ptScreen); break; case 6: MainImageForm->ZoomChange(1, 2, &ptScreen); break; case 7: MainImageForm->ZoomChange(2, 3, &ptScreen); break; case 8: MainImageForm->ZoomChange(1, 1, &ptScreen); break; case 9: MainImageForm->ZoomChange(3, 2, &ptScreen); break; case 10: MainImageForm->ZoomChange(2, 1, &ptScreen); break; case 11: MainImageForm->ZoomChange(3, 1, &ptScreen); break; case 12: MainImageForm->ZoomChange(4, 1, &ptScreen); break; case 13: MainImageForm->ZoomChange(6, 1, &ptScreen); break; case 14: MainImageForm->ZoomChange(8, 1, &ptScreen); break; case 15: MainImageForm->ZoomChange(12, 1, &ptScreen); break; case 16: MainImageForm->ZoomChange(16, 1, &ptScreen); break; } } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::ViewLight() { switch (Item) { case T_WIN: shWindow->Brush->Color = clRed; shWindow->Pen->Color = clRed; break; case T_MOVECOPY: shMoveCopy->Brush->Color = clRed; shMoveCopy->Pen->Color = clRed; break; case T_COLOR: shColorChange->Brush->Color = clRed; shColorChange->Pen->Color = clRed; break; case T_CLEAR: shClear->Brush->Color = clRed; shClear->Pen->Color = clRed; break; case T_GROUP: shGrouping->Brush->Color = clRed; shGrouping->Pen->Color = clRed; break; case T_REPEAT: shRepeat->Brush->Color = clRed; shRepeat->Pen->Color = clRed; break; case T_DRAW: shDraw->Brush->Color = clRed; shDraw->Pen->Color = clRed; break; case T_REPRO: shRepro->Brush->Color = clRed; shRepro->Pen->Color = clRed; break; case T_FILL: shFill->Brush->Color = clRed; shFill->Pen->Color = clRed; break; case T_SPREAD: shSpreadFill->Brush->Color = clRed; shSpreadFill->Pen->Color = clRed; break; case T_STIPPLE: shStipple->Brush->Color = clRed; shStipple->Pen->Color = clRed; break; case T_PATTERN: shPattern->Brush->Color = clRed; shPattern->Pen->Color = clRed; break; case T_STRIPE: shStripe->Brush->Color = clBlue; shStripe->Pen->Color = clBlue; break; case T_TEXT: shText->Brush->Color = clBlue; shText->Pen->Color = clBlue; break; case T_UNDO: shUndo->Brush->Color = clBlue; shUndo->Pen->Color = clBlue; break; case T_MARKFILL: shMarkFill->Brush->Color = clRed; shMarkFill->Pen->Color = clRed; break; case T_PDATA: shPData->Brush->Color = clRed; shPData->Pen->Color = clRed; } } //--------------------------------------------------------------------------- /* void TMainMenuForm::WMEXITSIZEMOVE(TMessage &msg) { if ((Left <= MainForm->MainMenuFormPos.x + 100) && (Left >= MainForm->MainMenuFormPos.x - 100)) { if ((Top <= MainForm->MainMenuFormPos.y + 100) && (Top >= MainForm->MainMenuFormPos.y - 100)) { Top = MainForm->MainMenuFormPos.y; Left = MainForm->MainMenuFormPos.x; } } } */ //--------------------------------------------------------------------------- void TMainMenuForm::TPMExitFunction(TMessage &msg) { ExitForm(); } //-------------------------------------------------------------------------- void __fastcall TMainMenuForm::UpdateItem() { bool enable = true, all = true; if (MainImageForm==NULL) return; if (MainImageForm->iMainImage==NULL) return; if (sbYarn->Down) { shYarn->Pen->Color = clBlue; shYarn->Brush->Color = clBlue; subIrreegular1->Enabled = true; subOutline1->Enabled = true; subCircle1->Enabled = true; subEllipse1->Enabled = true; } else { shYarn->Pen->Color = clBlack; shYarn->Brush->Color = clBlack; subIrreegular1->Enabled = false; subOutline1->Enabled = false; subCircle1->Enabled = false; subEllipse1->Enabled = false; } if (sbMark->Down) { shMark->Pen->Color = clBlue; shMark->Brush->Color = clBlue; enable = false; } else { shMark->Pen->Color = clBlack; shMark->Brush->Color = clBlack; } if (sbKnit->Down) { shKnit->Pen->Color = clBlue; shKnit->Brush->Color = clBlue; enable = false; all = false; } else { shKnit->Pen->Color = clBlack; shKnit->Brush->Color = clBlack; all = true; } sbColorChange->Enabled = enable; // Yarn->Down ColorChange1->Enabled = enable; sbGrouping->Enabled = enable; Grouping1->Enabled = enable; sbStipple->Enabled = enable; Stipple1->Enabled = enable; sbStripe->Enabled = enable; Stripe1->Enabled = enable; sbText->Enabled = enable; Text1->Enabled = enable; sbFill->Enabled = enable; Fill1->Enabled = enable; sbSpreadFill->Enabled = enable; SpreadFill1->Enabled = enable; sbScan->Enabled = enable; sbPatternRepeat->Enabled = false; // MainImageForm->WorkArea PatternRepeat1->Enabled = false; sbRepro->Enabled = false; Reproportion1->Enabled = false; sbMoveCopy->Enabled = false; MoveCopy1->Enabled = false; sbRepeat->Enabled = false; repeat1->Enabled = false; if (MainImageForm->WorkArea) { if (MainImageForm->WorkArea->Mask) { sbPatternRepeat->Enabled = enable; sbRepro->Enabled = enable; Reproportion1->Enabled = enable; PatternRepeat1->Enabled = enable; } } if (sbMark->Down){ sbMarkFill->Enabled = true; // Mark->Down MarkFill1->Enabled = true; } else { sbMarkFill->Enabled = false; // Mark->Down MarkFill1->Enabled = false; } // sbWindow->Enabled = all; // Mark-Down || Yarn->Down // Window1->Enabled = all; sbClear->Enabled = all; Clear1->Enabled = all; Draw1->Enabled = all; sbDraw->Enabled = all; sbUndo->Enabled = all; Undo1->Enabled = all; if (MainImageForm->WorkArea) { if (MainImageForm->WorkArea->Mask) { if (DesignMode == D_YARN) { sbMoveCopy->Enabled = true; MoveCopy1->Enabled = true; sbRepeat->Enabled = true; repeat1->Enabled = true; } else if (DesignMode == D_MARK) { if (IsCross()) { sbMoveCopy->Enabled = false; MoveCopy1->Enabled = false; sbRepeat->Enabled = false; repeat1->Enabled = false; } else { sbMoveCopy->Enabled = true; MoveCopy1->Enabled = true; sbRepeat->Enabled = true; repeat1->Enabled = true; } } } } if (DesignMode == D_YARN){ sbScan->Enabled = MainForm->FScanningItem->Enabled; Scanning1->Enabled = MainForm->FScanningItem->Enabled; } } //--------------------------------------------------------------------------- bool __fastcall TMainMenuForm::IsCross() { RECT r; Byte *IP, *IP1; int i, w, h, sh; bool rtn = false; r = MainImageForm->WorkArea->Range; sh = r.bottom - r.top; r.right--; w = MainImageForm->iMainImage->ArrayBitmap[1].Width; h = MainImageForm->iMainImage->ArrayBitmap[1].Height; if (!MainImageForm->iMainImage->ArrayBitmap[1].StartScanLine()) goto fail; for (i = 0; i < sh; i++) { if ((r.left >= 1) && (r.right < w - 1)){ IP = MainImageForm->iMainImage->ArrayBitmap[1].GetScanLine(r.top + i) + (r.left - 1); IP1 = IP+1; if (((*IP & 0x3F) > 1) && ((*IP1 & 0x3F) > 1)) if((*IP & 0x3F) == (*IP1 & 0x3F)) if((*IP1 & 0x80) != 0) { rtn = true; goto next; } } if (r.right < w - 1) { IP = MainImageForm->iMainImage->ArrayBitmap[1].GetScanLine(r.top + i) + (r.right); IP1 = IP+1; if (((*IP & 0x3F) > 1) && ((*IP1 & 0x3F) > 1)) if((*IP & 0x3F) == (*IP1 & 0x3F)) if((*IP1 & 0x80) != 0) { rtn = true; goto next; } } } r.right++; r.bottom--; if ((r.top >= 1) && (r.bottom < h - 1)) { IP = MainImageForm->iMainImage->ArrayBitmap[1].GetScanLine(r.top-1) + r.left; IP1 = MainImageForm->iMainImage->ArrayBitmap[1].GetScanLine(r.top) + r.left; for (i = r.left; i < r.right; i++, IP++, IP1++) { if (MainImageForm->Arrange->Dmark.sp[*IP & 0x3F]->course > 1) if (((*IP & 0x3F) > 1) && ((*IP1 & 0x3F) > 1)) if((*IP & 0x3F) == (*IP1 & 0x3F)) if((*IP1 & 0x80) != 0) { rtn = true; goto next; } } } if (r.bottom < h - 1) { IP = MainImageForm->iMainImage->ArrayBitmap[1].GetScanLine(r.bottom) + r.left; IP1 = MainImageForm->iMainImage->ArrayBitmap[1].GetScanLine(r.bottom+1) + r.left; for (i = r.left; i < r.right; i++, IP++, IP1++) { if (MainImageForm->Arrange->Dmark.sp[*IP & 0x3F]->course > 1) if (((*IP & 0x3F) > 1) && ((*IP1 & 0x3F) > 1)) if((*IP & 0x3F) == (*IP1 & 0x3F)) if((*IP1 & 0x80) != 0) { rtn = true; goto next; } } } next: MainImageForm->iMainImage->ArrayBitmap[1].StopScanLine(); return rtn; fail : MainImageForm->iMainImage->ArrayBitmap[1].StopScanLine(); EXCEPTION_MESSAGE_OK(EC_MEMORY_LACK); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitWindowForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Read(); #endif #endif if (Item==T_WIN) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_WIN; ViewLight(); if (DesignMode == D_YARN) { WindowForm = new TWindowForm(this); WindowForm->Parent = this; WindowForm->BorderStyle = bsNone; WindowForm->Left = 0; WindowForm->Top = ClientHeight+20; WindowForm->Visible = true; WindowForm->InitForm(); showfalse(); showWindow = true; } else { SimpleWindowForm = new TSimpleWindowForm(this); SimpleWindowForm->Parent = this; SimpleWindowForm->BorderStyle = bsNone; SimpleWindowForm->Left = 0; SimpleWindowForm->Top = ClientHeight+20; SimpleWindowForm->Visible = true; SimpleWindowForm->InitForm(); showfalse(); showWindow = true; } } else sbWindow->Down = false; } else { ExitForm(); showfalse(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitMoveCopyForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Check(); #endif #endif if (Item==T_MOVECOPY) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_MOVECOPY; ViewLight(); if (DesignMode == D_YARN) { MoveCopyForm = new TMoveCopyForm(this); MoveCopyForm->Parent = this; MoveCopyForm->BorderStyle = bsNone; MoveCopyForm->Left = 0; MoveCopyForm->Top = ClientHeight+20; MoveCopyForm->Visible = true; MoveCopyForm->InitForm(); showfalse(); showMovecopy = true; } else if (DesignMode == D_MARK) { MarkMoveCopyForm = new TMarkMoveCopyForm(this); MarkMoveCopyForm->Parent = this; MarkMoveCopyForm->BorderStyle = bsNone; MarkMoveCopyForm->Left = 0; MarkMoveCopyForm->Top = ClientHeight+20; MarkMoveCopyForm->Visible = true; MarkMoveCopyForm->InitForm(); showfalse(); showMovecopy = true; } } else sbMoveCopy->Down = false; } else { ExitForm(); showfalse(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitColorChangeForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Read(); #endif #endif if (Item==T_COLOR) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_COLOR; ViewLight(); ColorChangeForm = new TColorChangeForm(this); ColorChangeForm->Parent = this; ColorChangeForm->BorderStyle = bsNone; ColorChangeForm->Left = 0; ColorChangeForm->Top = ClientHeight+20; ColorChangeForm->Visible = true; ColorChangeForm->InitForm(); showColorChange = true; shifta = 0; //lhskys shift Ŭ¸®¼ö ÃʱâÈ­ } else sbColorChange->Down = false; } else { ExitForm(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitClearForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Check(); #endif #endif if (Item==T_CLEAR) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_CLEAR; ViewLight(); MClearForm = new TMClearForm(this); MClearForm->Parent = this; MClearForm->BorderStyle = bsNone; MClearForm->Left = 0; MClearForm->Top = ClientHeight + 20; MClearForm->Visible = true; MClearForm->InitForm(); showClear = true; } else sbClear->Down = false; } else { ExitForm(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitGroupingForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Read(); #endif #endif if (Item==T_GROUP) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_GROUP; ViewLight(); GroupingForm = new TGroupingForm(this); GroupingForm->Parent = this; GroupingForm->BorderStyle = bsNone; GroupingForm->Left = 0; GroupingForm->Top = ClientHeight+20; GroupingForm->Visible = true; GroupingForm->InitForm(); showGrouping = true; } else sbGrouping->Down = false; } else { ExitForm(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitRepeatForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Check(); #endif #endif if (Item==T_REPEAT) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_REPEAT; ViewLight(); if (DesignMode == D_YARN) { RepeatForm = new TRepeatForm(this); RepeatForm->Parent = this; RepeatForm->BorderStyle = bsNone; RepeatForm->Left = 0; RepeatForm->Top = ClientHeight+20; RepeatForm->Visible = true; RepeatForm->InitForm(); showRepeat = true; } else if (DesignMode == D_MARK) { MarkRepeatForm = new TMarkRepeatForm(this); MarkRepeatForm->Parent = this; MarkRepeatForm->BorderStyle = bsNone; MarkRepeatForm->Left = 0; MarkRepeatForm->Top = ClientHeight+20; MarkRepeatForm->Visible = true; MarkRepeatForm->InitForm(); showRepeat = true; } } else sbRepeat->Down = false; } else { ExitForm(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitDrawForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Read(); #endif #endif if (Item==T_DRAW) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_DRAW; ViewLight(); DrawForm = new TDrawForm(this); DrawForm->Parent = this; DrawForm->BorderStyle = bsNone; DrawForm->Left = 0; DrawForm->Top = ClientHeight+20; DrawForm->Visible = true; DrawForm->InitForm(); showDraw = true; } else sbDraw->Down = false; } else { ExitForm(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitMarkDrawForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Check(); #endif #endif if (Item==T_MARKDRAW) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_MARKDRAW; ViewLight(); MarkDrawForm = new TMarkDrawForm(this); MarkDrawForm->Parent = this; MarkDrawForm->BorderStyle = bsNone; MarkDrawForm->Left = 0; MarkDrawForm->Top = ClientHeight+20; MarkDrawForm->Visible = true; MarkDrawForm->InitForm(); } else sbDraw->Down = false; } else { ExitForm(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitReproForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Read(); #endif #endif if (Item==T_REPRO) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_REPRO; ViewLight(); ReproForm = new TReproForm(this); ReproForm->Parent = this; ReproForm->BorderStyle = bsNone; ReproForm->Left = 0; ReproForm->Top = ClientHeight+20; ReproForm->Visible = true; ReproForm->InitForm(); showReproportion = true; } else sbRepro->Down = false; } else { ExitForm(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitFillForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Check(); #endif #endif if (Item==T_FILL) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_FILL; ViewLight(); FillForm = new TFillForm(this); FillForm->Parent = this; FillForm->BorderStyle = bsNone; FillForm->Left = 0; FillForm->Top = ClientHeight+20; FillForm->Visible = true; FillForm->InitForm(); showFill = true; } else sbFill->Down = false; } else { ExitForm(); showfalse(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitSpreadFillForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Read(); #endif #endif if (Item==T_SPREAD) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_SPREAD; ViewLight(); SpreadFillForm = new TSpreadFillForm(this); SpreadFillForm->Parent = this; SpreadFillForm->BorderStyle = bsNone; SpreadFillForm->Left = 0; SpreadFillForm->Top = ClientHeight+20; SpreadFillForm->Visible = true; SpreadFillForm->InitForm(); } else sbSpreadFill->Down = false; } else { ExitForm(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitStippleForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Check(); #endif #endif if (Item==T_STIPPLE) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_STIPPLE; ViewLight(); StippleForm = new TStippleForm(this); StippleForm->Parent = this; StippleForm->BorderStyle = bsNone; StippleForm->Left = 0; StippleForm->Top = ClientHeight+20; StippleForm->Visible = true; StippleForm->InitForm(); showStipple = true; } else sbStipple->Down = false; } else { ExitForm(); showfalse(); } } //---------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitPatternRepeatForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Read(); #endif #endif if (Item==T_PATTERN) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_PATTERN; ViewLight(); PatternRepeatForm = new TPatternRepeatForm(this); PatternRepeatForm->Parent = this; PatternRepeatForm->BorderStyle = bsNone; PatternRepeatForm->Left = 0; PatternRepeatForm->Top = ClientHeight+20; PatternRepeatForm->Visible = true; PatternRepeatForm->InitForm(); showPatternRe = true; } else sbPatternRepeat->Down = false; } else { ExitForm(); showfalse(); } } //---------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitStripeForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Check(); #endif #endif if (Item==T_STRIPE) sw = false; else sw = true; if (sw) { if (ExitForm()) { Item = T_STRIPE; StripeForm = new TStripeForm(this); StripeForm->Parent = MainForm; StripeForm->InitForm(); } else sbStripe->Down = false; } else { ExitForm(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitTextForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Read(); #endif #endif if (Item==T_TEXT) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_TEXT; ViewLight(); TextForm = new TTextForm(this); TextForm->Parent = this; TextForm->BorderStyle = bsNone; TextForm->Left = 0; TextForm->Top = ClientHeight+20; TextForm->Visible = true; TextForm->InitForm(); } else sbText->Down = false; } else { ExitForm(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitMarkFillForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Check(); #endif #endif if (Item==T_MARKFILL) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_MARKFILL; ViewLight(); MarkFillForm = new TMarkFillForm(this); MarkFillForm->Parent = this; MarkFillForm->BorderStyle = bsNone; MarkFillForm->Left = 0; MarkFillForm->Top = ClientHeight+20; MarkFillForm->Visible = true; MarkFillForm->InitForm(); } else sbMarkFill->Down = false; } else { ExitForm(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitPDataForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Read(); #endif #endif if (Item==T_PDATA) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_PDATA; ViewLight(); ProductDataForm = new TProductDataForm(NULL); ProductDataForm->Font->Assign(MainForm->Font); ProductDataForm->InitForm(); // ProductDataForm->Parent = MainForm; // ProductDataForm->BorderStyle = bsNone; // ProductDataForm->Left = 0; // ProductDataForm->Top = ClientHeight+20; // ProductDataForm->Visible = true; ProductDataForm->ShowModal(); delete ProductDataForm; ProductDataForm = NULL; ExitForm(); } else sbPData->Down = false; } else { ExitForm(); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::InitUndoForm() { bool sw; #ifndef LOCK_CRYPKEY #ifndef LOCK_IFC ProtectCard->Read(); #endif #endif if (Item==T_UNDO) sw = false; else sw = true; if (sw) { if (ExitForm()) { Visible = true; Item = T_UNDO; ViewLight(); UndoForm = new TUndoForm(this); UndoForm->Parent = this; UndoForm->BorderStyle = bsNone; UndoForm->Left = 0; UndoForm->Top = ClientHeight+20; UndoForm->Visible = true; UndoForm->InitForm(); } else sbUndo->Down = false; } else { ExitForm(); } } //--------------------------------------------------------------------------- bool __fastcall TMainMenuForm::ExitForm() { AnsiString msg, fn, ext; char *s; TGraphicFileFormat gff; int Btn; bool success = true; MainForm->ExitMenuItem(); if(MainImageForm) if(MainImageForm->IndexSW)MainImageForm->Ruler->Cursor = crDefault; if (Item!=T_NONE) { Show(); switch (Item) { case T_WIN: if (DesignMode == D_YARN) { WindowForm->ExitForm(); delete WindowForm; WindowForm = NULL; } else { SimpleWindowForm->ExitForm(); delete SimpleWindowForm; SimpleWindowForm = NULL; } sbWindow->Down = false; break; case T_MOVECOPY: if (DesignMode == D_YARN) { MoveCopyForm->ExitForm(); delete MoveCopyForm; MoveCopyForm = NULL; } else if (DesignMode == D_MARK) { MarkMoveCopyForm->ExitForm(); delete MarkMoveCopyForm; MarkMoveCopyForm = NULL; } sbMoveCopy->Down = false; break; case T_COLOR: ColorChangeForm->ExitForm(); delete ColorChangeForm; ColorChangeForm = NULL; sbColorChange->Down = false; break; case T_CLEAR: delete MClearForm; MClearForm = NULL; sbClear->Down = false; break; case T_GROUP: GroupingForm->ExitForm(); delete GroupingForm; GroupingForm = NULL; sbGrouping->Down = false; break; case T_REPEAT: if (DesignMode == D_YARN) { RepeatForm->ExitForm(); delete RepeatForm; RepeatForm = NULL; } else if (DesignMode == D_MARK) { MarkRepeatForm->ExitForm(); delete MarkRepeatForm; MarkRepeatForm = NULL; } sbRepeat->Down = false; break; case T_DRAW: DrawForm->ExitForm(); delete DrawForm; DrawForm = NULL; sbDraw->Down = false; break; case T_REPRO: ReproForm->ExitForm(); delete ReproForm; ReproForm = NULL; sbRepro->Down = false; break; case T_FILL: FillForm->ExitForm(); delete FillForm; FillForm = NULL; sbFill->Down = false; break; case T_TEXT: TextForm->ExitForm(); delete TextForm; TextForm = NULL; sbText->Down = false; break; case T_UNDO: delete UndoForm; UndoForm = NULL; sbUndo->Down = false; break; case T_STIPPLE: StippleForm->ExitForm(); delete StippleForm; StippleForm = NULL; sbStipple->Down = false; break; case T_SPREAD: SpreadFillForm->ExitForm(); delete SpreadFillForm; SpreadFillForm = NULL; sbSpreadFill->Down = false; break; case T_PATTERN: PatternRepeatForm->ExitForm(); delete PatternRepeatForm; PatternRepeatForm = NULL; sbPatternRepeat->Down = false; break; case T_STRIPE: StripeForm->ExitForm(); Item = T_NONE; delete StripeForm; StripeForm = NULL; sbStripe->Down = false; break; case T_MERGE: MainImageForm->ExitMerge(); break; case T_MARKFILL: MarkFillForm->ExitForm(); delete MarkFillForm; MarkFillForm = NULL; sbMarkFill->Down = false; break; case T_MARKDRAW: MarkDrawForm->ExitForm(); delete MarkDrawForm; MarkDrawForm = NULL; sbDraw->Down = false; break; case T_PDATA: sbPData->Down = false; } shWindow->Brush->Color = clBlack; shWindow->Pen->Color = clBlack; shMoveCopy->Brush->Color = clBlack; shMoveCopy->Pen->Color = clBlack; shColorChange->Brush->Color = clBlack; shColorChange->Pen->Color = clBlack; shClear->Brush->Color = clBlack; shClear->Pen->Color = clBlack; shGrouping->Brush->Color = clBlack; shGrouping->Pen->Color = clBlack; shRepeat->Brush->Color = clBlack; shRepeat->Pen->Color = clBlack; shDraw->Brush->Color = clBlack; shDraw->Pen->Color = clBlack; shRepro->Brush->Color = clBlack; shRepro->Pen->Color = clBlack; shFill->Brush->Color = clBlack; shFill->Pen->Color = clBlack; shSpreadFill->Brush->Color = clBlack; shSpreadFill->Pen->Color = clBlack; shStipple->Brush->Color = clBlack; shStipple->Pen->Color = clBlack; shPattern->Brush->Color = clBlack; shPattern->Pen->Color = clBlack; shStripe->Brush->Color = clBlack; shStripe->Pen->Color = clBlack; shText->Brush->Color = clBlack; shText->Pen->Color = clBlack; shUndo->Brush->Color = clBlack; shUndo->Pen->Color = clBlack; shMarkFill->Brush->Color = clBlack; shMarkFill->Pen->Color = clBlack; shPData->Brush->Color = clBlack; shPData->Pen->Color = clBlack; ClientWidth = FWidth; ClientHeight = FHeight; Item = T_NONE; MainImageForm->PenChange(); } if (MainImageForm) { if (MainImageForm->iMainImage) { if (DesignMode==D_MARK) { FullViewForm->InitForm(MainImageForm->iMainImage, MainImageForm->iMainImage->ArrayBitmap); } else { FullViewForm->InitForm(MainImageForm->iMainImage); } } } showfalse(); UpdateItem(); return success; } //--------------------------------------------------------------------------- bool __fastcall TMainMenuForm::iMainImageMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { TRect r; int ZoomIn, ZoomOut; int PenSize; Byte color; TCursor cursor; TMainImageForm *mif = (TMainImageForm *)Sender; if (Button==mbMiddle || (Shift.Contains(ssShift) && Button==mbLeft)) { if (DesignMode == D_YARN) { color = mif->iMainImage->Bitmap->GetPixelColor(X, Y); if (color<252) PaletteForm->DIB256Palette->ChoiceIndex = color; PenManagerForm->PenShapeChange(color); } else if (DesignMode == D_KNIT) { color = mif->iMainImage->Bitmap->GetPixelColor(X, Y); if (color > 1) color = mif->GetPaletteIndex(color); if (color<252) PaletteForm->DIB256Palette->ChoiceIndex = color; } } ZoomIn = mif->iMainImage->ZoomIn; ZoomOut = mif->iMainImage->ZoomOut; PenSize = PenManagerForm->Pen->Thick; switch (Item) { case T_NONE: return true; case T_MERGE: // D_MARK ÀÎ °æ¿ì¿¡¸¸ Àû¿ë ¾Æ´Ò ¶§´Â iSelectImageMouseDown¿¡¼­ ó¸® cursor = Screen->Cursor; Screen->Cursor = crHourGlass; if (MainImageForm->WorkArea) MainImageForm->WorkArea->PushUndo(); mif->IsMerge(mif->iSelectImagePosition(Point(X-mif->Center.x, Y-mif->Center.y))); if (mif->OpenItem(mif->iSelectImage)) { PaletteForm->DIB256Palette->ChoiceIndex = 2; ExitForm(); } else { ExitForm(); Undo->Read(); } // 7.41 MainImageForm->IsMerge·Î À̵¿ if (DesignMode == D_MARK) MainImageForm->iMainImage->SetMark(); ::RepaintColor(); Screen->Cursor = cursor; break; case T_WIN: if (Button == mbLeft || Button == mbMiddle) { if (DesignMode == D_YARN) { WindowForm->iMainImageMouseDown(Button, Shift, X, Y); } else { SimpleWindowForm->iMainImageMouseDown(Button, Shift, X, Y); } } UpdateItem(); break; case T_MOVECOPY: if (Button == mbLeft) { if (DesignMode == D_YARN) { MoveCopyForm->MoveCopyMouseDown(X, Y); } else if (DesignMode == D_MARK) { MarkMoveCopyForm->MoveCopyMouseDown(X, Y); } } break; case T_COLOR: ColorChangeForm->ColorChangeMouseDown(Button, Shift, X, Y); if (ColorChangeForm->IsPen()) { /* r.Left = mif->iMainImage->PositionX-PenSize; if (r.Left<0) r.Left = 0; r.Top = mif->iMainImage->PositionY-PenSize; if (r.Top<0) r.Top = 0; r.Right = r.Left+mif->iMainImage->Width*ZoomOut/ZoomIn+PenSize; if (r.Right>mif->iMainImage->Bitmap->Width) r.Right = mif->iMainImage->Bitmap->Width; r.Bottom = r.Top+mif->iMainImage->Height*ZoomOut/ZoomIn+PenSize; if (r.Bottom>mif->iMainImage->Bitmap->Height) r.Bottom = mif->iMainImage->Bitmap->Height; */ if (!mif->UndoSave(UK_PATTERN, Rect(0, 0, mif->iMainImage->Bitmap->Width, mif->iMainImage->Bitmap->Height))) goto fail; Lsx = X; Lsy = Y; Lex = Lsx; Ley = Lsy; mif->line_pen(Lsx, Lsy, Lex, Ley, PaletteForm->DIB256Palette->ChoiceIndex); mif->BtnClick = true; } break; case T_GROUP: GroupingForm->iMainImageMouseDown(Button, Shift, X, Y); break; case T_REPEAT: if (Button == mbLeft) { if (DesignMode == D_YARN) { RepeatForm->RepeatMouseDown(X, Y); mif->iMainImage->Cursor = DesignMode==D_YARN ? crPen : crCross; } } break; case T_DRAW: if (Button == mbLeft) DrawForm->DrawMouseDown(Button, Shift, X, Y); break; case T_REPRO: if (Button == mbLeft) { ReproForm->ReproMouseDown(X, Y); } break; case T_FILL: FillForm->FillMouseDown(Button, Shift, X, Y); break; case T_TEXT: TextForm->iMainImageMouseDown(Button, Shift, X, Y); break; case T_UNDO: if (UndoForm->UndoPen->Checked) { mif->BtnClick = true; Lsx = X; Lsy = Y; Lex = Lsx; Ley = Lsy; mif->line_pen(Lsx, Lsy, Lex, Ley, PaletteForm->DIB256Palette->ChoiceIndex); } break; case T_STIPPLE: StippleForm->iMainImageMouseDown(mif->iMainImage, Button, Shift, X, Y); break; case T_SPREAD: SpreadFillForm->iMainImageMouseDown(mif->iMainImage, Button, Shift, X, Y); break; case T_MARKFILL: MarkFillForm->iMainImageMouseDown(mif->iMainImage, Button, Shift, X, Y); break; case T_MARKDRAW: MarkDrawForm->DrawMouseDown(Button, Shift, X, Y); break; case T_PATTERN: if (Button==mbLeft) { if (PatternRepeatForm->Item != T_IMGSPRAY) { if (PatternRepeatForm->Item == T_REGULAR) { if (PatternRepeatForm->SetStartPoint(X, Y)) { return false; } } if (mif->bDrawPen) { if (FullViewForm->iMainImageMouseDown(mif->iMainImage, X, Y)) { /* r.Left = mif->iMainImage->PositionX-PenSize; if (r.Left<0) r.Left = 0; r.Top = mif->iMainImage->PositionY-PenSize; if (r.Top<0) r.Top = 0; r.Right = r.Left+mif->iMainImage->Width*ZoomOut/ZoomIn+PenSize; if (r.Right>mif->iMainImage->Bitmap->Width) r.Right = mif->iMainImage->Bitmap->Width; r.Bottom = r.Top+mif->iMainImage->Height*ZoomOut/ZoomIn+PenSize; if (r.Bottom>mif->iMainImage->Bitmap->Height) r.Bottom = mif->iMainImage->Bitmap->Height; */ PenManagerForm->SpecialMouseDown(Button, Shift, X, Y); mif->BtnClick = true; } } } else { PatternRepeatForm->ImageSprayMouseDown(X, Y); mif->BtnClick = true; } } break; } return false; fail: EXCEPTION_MESSAGE_OK(EC_MEMORY_LACK); return true; } //--------------------------------------------------------------------------- bool __fastcall TMainMenuForm::iMainImageMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { TMainImageForm *mif = (TMainImageForm *)Sender; switch (Item) { case T_NONE: return true; case T_WIN: mif->iMainImage->Cursor = crCross; if (DesignMode == D_YARN) { WindowForm->iMainImageMouseMove(Shift, X, Y); } else { SimpleWindowForm->iMainImageMouseMove(Shift, X, Y); } break; case T_MOVECOPY: mif->iMainImage->Cursor = crHandPoint; if (DesignMode == D_YARN) { MoveCopyForm->MoveCopyMouseMove(X, Y); } else if (DesignMode == D_MARK) { MarkMoveCopyForm->MoveCopyMouseMove(X, Y); } break; case T_COLOR: ColorChangeForm->ColorChangeMouseMove(Shift, X, Y); if (ColorChangeForm->IsPen()) { mif->iMainImage->Cursor = DesignMode==D_YARN ? crPen : crCross; if (mif->BtnClick) { Lex = X; Ley = Y; mif->line_pen(Lsx, Lsy, Lex, Ley, PaletteForm->DIB256Palette->ChoiceIndex); Lsx = Lex; Lsy = Ley; } } else { mif->iMainImage->Cursor = crCross; } break; case T_CLEAR: mif->iMainImage->Cursor = crCross; break; case T_GROUP: mif->iMainImage->Cursor = crCross; GroupingForm->iMainImageMouseMove(Shift, X, Y); break; case T_TEXT: mif->iMainImage->Cursor = crCross; TextForm->iMainImageMouseMove(Shift, X, Y); break; case T_REPEAT: if (DesignMode == D_YARN) { mif->iMainImage->Cursor = crHandPoint; RepeatForm->RepeatMouseMove(X, Y); } break; case T_DRAW: DrawForm->DrawMouseMove(Shift, X, Y); break; case T_REPRO: mif->iMainImage->Cursor = crHandPoint; ReproForm->ReproMouseMove(X, Y); break; case T_FILL: mif->iMainImage->Cursor = crHandPoint; FillForm->FillMouseMove(X, Y); break; case T_UNDO: if (UndoForm->UndoPen->Checked) { if (mif->BtnClick) { Lex = X; Ley = Y; mif->line_pen(Lsx, Lsy, Lex, Ley, PaletteForm->DIB256Palette->ChoiceIndex); Lsx = Lex; Lsy = Ley; } mif->iMainImage->Cursor = DesignMode==D_YARN ? crPen : crCross; } else { mif->iMainImage->Cursor = crCross; } break; case T_MERGE: mif->iMainImage->Cursor = crHandPoint; mif->iSelectImageSize(); mif->IsMerge(mif->iSelectImagePosition(Point(X-mif->Center.x, Y-mif->Center.y))); break; case T_STIPPLE: mif->iMainImage->Cursor = crCross; StippleForm->iMainImageMouseMove(mif->iMainImage, Shift, X, Y); break; case T_SPREAD: mif->iMainImage->Cursor = crCross; SpreadFillForm->iMainImageMouseMove(mif->iMainImage, Shift, X, Y); break; case T_MARKFILL: mif->iMainImage->Cursor = crCross; MarkFillForm->iMainImageMouseMove(mif->iMainImage, Shift, X, Y); break; case T_MARKDRAW: MarkDrawForm->DrawMouseMove(X, Y); break; case T_STRIPE: mif->iMainImage->Cursor = crCross; StripeForm->iMainImageMouseMove(mif->iMainImage, X, Y); break; case T_PATTERN: if (PatternRepeatForm->Item != T_IMGSPRAY) { if (mif->bDrawPen) { if (FullViewForm->iMainImageMouseMove(mif->iMainImage, X, Y)) { if (PenManagerForm->acolor == 1) { PenManagerForm->SpecialMouseMove(Shift, X, Y); mif->iMainImage->Cursor = crCross; } else { if (mif->BtnClick) PenManagerForm->SpecialMouseMove(Shift, X, Y); if (PatternRepeatForm->sbSelectPos->Down) mif->iMainImage->Cursor = crCross; else mif->iMainImage->Cursor = DesignMode==D_YARN ? crPen : crCross; } } else mif->iMainImage->Cursor = crCross; } // } else PatternRepeatForm->ImageSprayMouseMove(X, Y, mif->BtnClick); } else { if (X<0 || X>MainImageForm->iMainImage->Bitmap->Width || Y<0 || Y>MainImageForm->iMainImage->Bitmap->Height) { PatternRepeatForm->ImageSprayMouseMove(X, Y, false); } else { PatternRepeatForm->ImageSprayMouseMove(X, Y, mif->BtnClick); } } break; } return false; } //--------------------------------------------------------------------------- bool __fastcall TMainMenuForm::iMainImageMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { TMainImageForm *mif = (TMainImageForm *)Sender; switch (Item) { case T_NONE: return true; case T_WIN: if (DesignMode == D_YARN) { WindowForm->iMainImageMouseUp(Shift, X, Y); } break; case T_DRAW: if (Button == mbLeft) { DrawForm->DrawMouseUp(X, Y); } break; case T_COLOR: if (ColorChangeForm->IsPen()) mif->BtnClick = false; break; case T_UNDO: if (UndoForm->UndoPen->Checked) mif->BtnClick = false; break; case T_PATTERN: PenManagerForm->SpecialMouseUp(Button, Shift, X, Y); PatternRepeatForm->ImageSprayMouseUp(X, Y); mif->BtnClick = false; break; } return false; } //--------------------------------------------------------------------------- bool __fastcall TMainMenuForm::iMainImagePaint(TObject *Sender) { switch (Item) { case T_NONE: return true; case T_WIN: if (DesignMode == D_YARN) { WindowForm->iMainImagePaint(); } else { SimpleWindowForm->iMainImagePaint(); } break; case T_MOVECOPY: if (DesignMode == D_MARK) { MarkMoveCopyForm->iMainImagePaint(); } break; case T_COLOR: ColorChangeForm->ColorChangePaint(); break; case T_GROUP: GroupingForm->iMainImagePaint(); break; case T_FILL: FillForm->FillPaint(); break; case T_TEXT: TextForm->iMainImagePaint(); break; case T_STIPPLE: StippleForm->iMainImagePaint(); break; case T_SPREAD: SpreadFillForm->iMainImagePaint(); break; case T_MARKDRAW: MarkDrawForm->iMainImagePaint(); break; } return false; } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::iMainImageMouseLeave() { // if (Item == T_PATTERN) { // PatternRepeatForm->ImageSprayMouseLeave(); // } switch (Item) { case T_MOVECOPY: if (DesignMode == D_MARK) { MarkMoveCopyForm->iMainImageMouseLeave(); } break; case T_MARKDRAW: MarkDrawForm->iMainImageMouseLeave(); break; } } //--------------------------------------------------------------------------- bool __fastcall TMainMenuForm::iSelectImageMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { TCursor cursor; TMainImageForm *mif = (TMainImageForm *)Sender; switch (Item) { // case T_NONE: return true; case T_MERGE: cursor = Screen->Cursor; Screen->Cursor = crHourGlass; if (MainImageForm->WorkArea) MainImageForm->WorkArea->PushUndo(); mif->IsMerge(mif->iSelectImagePosition(mif->iSelectImageConvert(X, Y))); if (mif->OpenItem(mif->iSelectImage)) { PaletteForm->DIB256Palette->ChoiceIndex = 2; ExitForm(); } else { ExitForm(); Undo->Read(); } // 7.41 MainImageForm->IsMerge·Î À̵¿ if (DesignMode == D_MARK) MainImageForm->iMainImage->SetMark(); ::RepaintColor(); Screen->Cursor = cursor; break; case T_MOVECOPY: if (Button == mbLeft) { if (DesignMode == D_YARN) { MoveCopyForm->MoveCopyImageMouseDown(X, Y); if (MoveCopyForm->MCState == TMC_COPY) return false; } } break; case T_REPEAT: if (Button == mbLeft) { if (DesignMode == D_YARN) { RepeatForm->RepeatMouseDown(X, Y); } } break; case T_REPRO: if (Button == mbLeft) { ReproForm->ReproImageMouseDown(X, Y); } break; case T_FILL: FillForm->FillImageMouseDown(Button, Shift, X, Y); break; case T_STRIPE: StripeForm->iSelectImageMouseDown(mif->iSelectImage, X, Y); break; } return true; } //--------------------------------------------------------------------------- bool __fastcall TMainMenuForm::iSelectImageMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { TMainImageForm *mif = (TMainImageForm *)Sender; switch (Item) { case T_NONE: return true; case T_MERGE: mif->iSelectImage->Cursor = crHandPoint; mif->IsMerge(mif->iSelectImagePosition(mif->iSelectImageConvert(X, Y))); break; case T_MOVECOPY: mif->iSelectImage->Cursor = crHandPoint; if (DesignMode == D_YARN) { MoveCopyForm->MoveCopyImageMouseMove(X, Y); } break; case T_REPEAT: if (DesignMode == D_YARN) { X = mif->iMainImage->CanvasToBitmapX(mif->iSelectImage->Left+X); Y = mif->iMainImage->CanvasToBitmapY(mif->iSelectImage->Top+Y); mif->iSelectImage->Cursor = crHandPoint; RepeatForm->RepeatMouseMove(X, Y); } break; case T_REPRO: X = mif->iMainImage->CanvasToBitmapX(mif->iSelectImage->Left+X); Y = mif->iMainImage->CanvasToBitmapY(mif->iSelectImage->Top+Y); mif->iSelectImage->Cursor = crHandPoint; ReproForm->ReproImageMouseMove(X, Y); break; case T_FILL: mif->iSelectImage->Cursor = crCross; FillForm->FillImageMouseMove(X, Y); break; case T_STRIPE: StripeForm->iSelectImageMouseMove(mif->iSelectImage, X, Y); break; } return false; } //--------------------------------------------------------------------------- bool __fastcall TMainMenuForm::iMainImageChange(TObject *Sender) { TMainImageForm *mif = (TMainImageForm *)Sender; switch (Item) { case T_NONE: return true; case T_WIN: if (DesignMode == D_YARN) { WindowForm->iMainImageChange(); } else { SimpleWindowForm->iMainImageChange(); } break; case T_MOVECOPY: if (DesignMode == D_YARN) { MoveCopyForm->iMainImageChange(); } else if (DesignMode == D_MARK) { MarkMoveCopyForm->iMainImageChange(); } break; case T_FILL: FillForm->iMainImageChange(); break; case T_REPEAT: if (DesignMode == D_YARN) { RepeatForm->iMainImageChange(); } break; case T_REPRO: ReproForm->iMainImageChange(); break; case T_DRAW: DrawForm->iMainImageChange(); break; case T_MARKDRAW: MarkDrawForm->iMainImageChange(); break; case T_STRIPE: case T_MERGE: mif->iSelectImage->Width = 0; mif->iSelectImage->Height = 0; break; } return false; } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::iMainImageKeyDown(int Key) { if (Item == T_DRAW) { DrawForm->iMainImageKeyDown(Key); } else if (Item == T_MARKDRAW) { } if (Item == T_COLOR)ColorChangeForm->iMainImageKeyDown(Key); //lhskys Ű ¹Þ±â if (Item == T_GROUP)GroupingForm->iMainImageKeyDown(Key); //lhskys Ű ¹Þ±â if (Item == T_REPRO)ReproForm->iMainImageKeyDown(Key); //lhskys Ű ¹Þ±â if (Item == T_MARKFILL)MarkFillForm->iMainImageKeyDown(Key); //lhskys Ű ¹Þ±â if (Item == T_UNDO)UndoForm->iMainImageKeyDown(Key); //lhskys ȯ¿øÀ¸·Î if (Item == T_REPEAT) if (DesignMode == D_MARK) MarkRepeatForm->iMainImageKeyDown(Key); //lhskys Ű ¹Þ±â if (Item ==T_WIN) if (DesignMode == D_YARN) WindowForm->iMainImageKeyDown(Key); //lhskys Ű ¹Þ±â if (sbKnit->Down) if (DesignMode==D_MARK) if (Key == 13) KnittingForm->KnitButtonClick(this); //lhskys ¿£ÅÍŰ·Î ½ÇÇà } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::iMainImageKeyUp(int Key) { if (Item == T_DRAW) { DrawForm->iMainImageKeyUp(Key); } else if (Item == T_MARKDRAW) { } if (Item ==T_WIN)WindowForm->iMainImageKeyUp(Key); //lhskys key up ¹Þ±â UndoHotKeysw = false; } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::SuperChange(TObject *Sender) { switch (Item) { case T_MOVECOPY: if (DesignMode == D_YARN) { MoveCopyForm->SetMoveCopyImage(true); } break; case T_REPEAT: if (DesignMode == D_YARN) { RepeatForm->SetRepeatImage(); } break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::ChoiceColor(int Index) { switch (MainMenuForm->Item) { case T_NONE: PenManagerForm->SelectColor(Index); break; case T_COLOR: ColorChangeForm->FGChange(Index); break; case T_FILL: FillForm->SelectColor(Index); break; case T_DRAW: DrawForm->FGChange(Index); break; case T_STIPPLE: StippleForm->FGChange(Index); break; case T_SPREAD: SpreadFillForm->FGChange(Index); break; case T_STRIPE: StripeForm->FGChange(Index); break; } PenManagerForm->PenShapeChange(Index); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::ColorChange(TObject *Sender) { } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::CursorIndexChange(TObject *Sender) { if (MainMenuForm->Item==T_COLOR) ColorChangeForm->CCChange(PaletteForm->DIB256Palette->CursorIndex); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::UnitChange() { if (Item==T_STRIPE) StripeForm->ChangeUnit(MainImageForm->CurrentUnit); else if (Item == T_PATTERN) PatternRepeatForm->ChangeUnit(MainImageForm->CurrentUnit); else if (Item == T_REPRO) ReproForm->ChangeUnit(MainImageForm->CurrentUnit); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::CopyRegion() { } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::Timer200ms() { switch (MainMenuForm->Item) { case T_TEXT: TextForm->DrawCursor(); break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::sbYarnMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { AnsiString screencam, cam, camdir; TRegistry *Registry; SHELLEXECUTEINFO screeninfo; if (Button == mbRight && Shift.Contains(ssShift)) { Registry = new TRegistry; if (!Registry) return; Registry->RootKey = HKEY_CURRENT_USER; Registry->OpenKey("SOFTWARE\\Youngwoo\\TexPro\\8.01\\Directory",TRUE); screencam = Registry->ReadString("screencam"); delete Registry; memset(&screeninfo,0,sizeof(screeninfo)); screeninfo.cbSize = sizeof(screeninfo); screeninfo.lpVerb = "open"; screeninfo.lpDirectory = screencam.c_str(); screeninfo.lpFile = "scplayer.exe"; switch(dynamic_cast(Sender)->Tag) { case 0 : cam = screencam + "\\knit\\drawing(knit).scm"; break; case 1 : cam = screencam + "\\knit\\markchartform.scm"; break; case 2 : cam = screencam + "\\knit\\knitting.scm"; break; case 3 : cam = screencam + "\\knit\\window(knit).scm"; break; case 4 : cam = screencam + "\\knit\\copymove(knit).scm"; break; case 5 : cam = screencam + "\\textile\\color_change.scm"; break; case 6 : cam = screencam + "\\knit\\clear(knit).scm"; break; case 7 : cam = screencam + "\\textile\\color_group.scm"; break; case 8 : cam = screencam + "\\knit\\repeat(knit).scm"; break; case 9 : cam = screencam + "\\textile\\drawing.scm"; break; case 10 : cam = screencam + "\\textile\\reproportion.scm"; break; case 11 : cam = screencam + "\\textile\\fill.scm"; break; case 12 : cam = screencam + "\\textile\\spread_fill.scm"; break; case 13 : cam = screencam + "\\textile\\stipple.scm"; break; case 14 : cam = screencam + "\\textile\\stripe.scm"; break; case 15 : cam = screencam + "\\textile\\pattern_repeat.scm"; break; case 16 : cam = screencam + "\\textile\\text.scm"; break; case 17 : cam = screencam + "\\knit\\mark_fill.scm"; break; case 18 : cam = screencam + "\\textile\\file.scm"; break; case 19 : cam = screencam + "\\knit\\resize_canvas.scm"; break; case 20 : cam = screencam + "\\knit\\printer(knit).scm"; break; case 21 : cam = screencam + "\\textile\\scanner.scm"; break; case 22 : cam = screencam + "\\textile\\undo.scm"; break; } camdir = "\"" + cam + "\""; screeninfo.lpParameters = camdir.c_str(); screeninfo.fMask = SEE_MASK_NOCLOSEPROCESS; screeninfo.nShow = SW_SHOWDEFAULT; if(!ShellExecuteEx(&screeninfo)) { ShowMessage("can't play screencam movie."); return; } } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::subshape1Click(TObject *Sender) { TSpeedButton *sp = (TSpeedButton *)Sender; if (showWindow == false) InitWindowForm(); WindowForm->ExitItem(); WindowForm->InitItem(WI_SHAPE); switch (sp->Tag) { case 1 : WindowForm->SubItem = WSI_RECTANGLE; WindowForm->sbShapeRectangle->Down = true; break; case 2 : WindowForm->SubItem = WSI_SQUARE; WindowForm->sbShapeSquare->Down = true; break; case 3 : WindowForm->SubItem = WSI_CIRCLE; WindowForm->sbShapeCircle->Down = true; break; case 4 : WindowForm->SubItem = WSI_ELLIPSE; WindowForm->sbShapeEllipse->Down = true; break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::subIrreegular1Click(TObject *Sender) { if (showWindow == false) { InitWindowForm(); WindowForm->ExitItem(); WindowForm->InitItem(WI_IRREGULAR); } else { WindowForm->ExitItem(); WindowForm->InitItem(WI_IRREGULAR); } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::subOutline1Click(TObject *Sender) { TSpeedButton *sp = (TSpeedButton *)Sender; if (showWindow == false) InitWindowForm(); WindowForm->ExitItem(); WindowForm->InitItem(WI_OUTLINE); switch (sp->Tag) { case 1 : WindowForm->sbOutlineSurfaceMultiClick(Sender); WindowForm->sbOutlineSurfaceMulti->Down = true; break; case 2 : WindowForm->sbOutlineSurfaceSingleClick(Sender); WindowForm->sbOutlineSurfaceSingle->Down = true; break; case 3 : WindowForm->sbOutlineBorderClick(Sender); WindowForm->sbOutlineBorder->Down = true; break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::subfull1Click(TObject *Sender) { if (showWindow == false) InitWindowForm(); WindowForm->Full(); showWindow = false; } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::subType1Click(TObject *Sender) { if(showGrouping == false) InitGroupingForm(); GroupingForm->InitItem(0); GroupingForm->SpeedButtonType->Down = true; } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::subUserchoose1Click(TObject *Sender) { if(showGrouping == false) InitGroupingForm(); GroupingForm->InitItem(1); GroupingForm->SpeedButtonUser->Down = true; } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::subFilter1Click(TObject *Sender) { if(showGrouping == false) InitGroupingForm(); GroupingForm->InitItem(2); GroupingForm->SpeedButtonFilter->Down = true; } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::subRearrange1Click(TObject *Sender) { if(showGrouping == false) InitGroupingForm(); GroupingForm->Rearrange(); GroupingForm->SpeedButtonRearrange->Down = true; } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::SubDrawClick(TObject *Sender) { TSpeedButton *sp = (TSpeedButton *)Sender; if (showDraw == false) InitDrawForm(); switch (sp->Tag) { case 1 : DrawForm->FunctionClick(DrawForm->sbLine); DrawForm->sbLine->Down = true; break; case 2 : DrawForm->FunctionClick(DrawForm->sbSquare); DrawForm->sbSquare->Down = true; break; case 3 : DrawForm->FunctionClick(DrawForm->sbCircle); DrawForm->sbCircle->Down = true; break; case 4 : DrawForm->FunctionClick(DrawForm->sbOut); DrawForm->sbOut->Down = true; break; case 5 : DrawForm->FunctionClick(DrawForm->sbCurve); DrawForm->sbCurve->Down = true; break; case 6 : DrawForm->FunctionClick(DrawForm->sbRect); DrawForm->sbRect->Down = true; break; case 7 : DrawForm->FunctionClick(DrawForm->sbEllip); DrawForm->sbEllip->Down = true; break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::SubReproportionClick(TObject *Sender) { TSpeedButton *sp = (TSpeedButton *)Sender; if (showReproportion == false) InitReproForm(); switch (sp->Tag) { case 1 : ReproForm->FunctionClick(ReproForm->sbRect); ReproForm->sbRect->Down = true; break; case 2 : ReproForm->FunctionClick(ReproForm->sbPull); ReproForm->sbPull->Down = true; break; case 3 : ReproForm->FunctionClick(ReproForm->sbX); ReproForm->sbX->Down = true; break; case 4 : ReproForm->FunctionClick(ReproForm->sbY); ReproForm->sbY->Down = true; break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::showfalse() { showWindow = false; showMovecopy = false; showColorChange = false; showGrouping = false; showRepeat = false; showDraw = false; showReproportion = false; showClear = false; showPatternRe = false; showStipple = false; showFill = false; /* showSpreadFill = false; showStyle = false; */ } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::SubCopyClick(TObject *Sender) // playzzang { TSpeedButton *sp = (TSpeedButton *)Sender; if(showMovecopy == false) InitMoveCopyForm(); MoveCopyForm->FunctionClick(MoveCopyForm->sbCopy); switch (sp->Tag){ case 1 : MoveCopyForm->TypeClick(MoveCopyForm->sbNormal); MoveCopyForm->sbNormal->Down = true; break; case 2 : MoveCopyForm->TypeClick(MoveCopyForm->sbUpDown); MoveCopyForm->sbUpDown->Down = true; break; case 3 : MoveCopyForm->TypeClick(MoveCopyForm->sbMirror); MoveCopyForm->sbMirror->Down = true; break; // case 4 : MoveCopyForm->TypeClick(MoveCopyForm->sb); break; case 5 : MoveCopyForm->TypeClick(MoveCopyForm->sbUDMirror); MoveCopyForm->sbUDMirror->Down = true; break; case 6 : MoveCopyForm->TypeClick(MoveCopyForm->sbRotate); MoveCopyForm->sbRotate->Down = true; break; case 7 : MoveCopyForm->TypeClick(MoveCopyForm->sbBend); MoveCopyForm->sbBend->Down = true; break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::SubMoveClick(TObject *Sender) // playzzang { TSpeedButton *sp = (TSpeedButton *)Sender; if(showMovecopy == false) InitMoveCopyForm(); MoveCopyForm->FunctionClick(MoveCopyForm->sbMove); switch (sp->Tag){ case 1 : MoveCopyForm->TypeClick(MoveCopyForm->sbNormal); MoveCopyForm->sbNormal->Down = true; break; case 2 : MoveCopyForm->TypeClick(MoveCopyForm->sbUpDown); MoveCopyForm->sbUpDown->Down = true; break; case 3 : MoveCopyForm->TypeClick(MoveCopyForm->sbMirror); MoveCopyForm->sbMirror->Down = true; break; // case 4 : MoveCopyForm->TypeClick(MoveCopyForm->sb); break; case 5 : MoveCopyForm->TypeClick(MoveCopyForm->sbUDMirror); MoveCopyForm->sbUDMirror->Down = true; break; case 6 : MoveCopyForm->TypeClick(MoveCopyForm->sbRotate); MoveCopyForm->sbRotate->Down = true; break; case 7 : MoveCopyForm->TypeClick(MoveCopyForm->sbBend); MoveCopyForm->sbBend->Down = true; break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::SubByWindowClick(TObject *Sender) // playzzang { TSpeedButton *sp = (TSpeedButton *)Sender; if(showColorChange == false) InitColorChangeForm(); ColorChangeForm->ActivePage(1); ColorChangeForm->PageControlChange(Sender); switch(sp->Tag){ case 1 : ColorChangeForm->sbWSwap->Down = true; ColorChangeForm->SpeedButtonByWindowClick(ColorChangeForm->sbWSwap); break; case 2 : ColorChangeForm->sbWSingle->Down = true; ColorChangeForm->SpeedButtonByWindowClick(ColorChangeForm->sbWSingle); break; case 3 : ColorChangeForm->sbWMulti->Down = true; ColorChangeForm->SpeedButtonByWindowClick(ColorChangeForm->sbWMulti); break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::SubByPenClick(TObject *Sender) { TSpeedButton *sp = (TSpeedButton *)Sender; if(showColorChange == false) InitColorChangeForm(); ColorChangeForm->ActivePage(2); ColorChangeForm->PageControlChange(Sender); switch(sp->Tag){ case 1 : ColorChangeForm->sbWSingle->Down = true; ColorChangeForm->SpeedButtonByPenClick(ColorChangeForm->sbWSingle); break; case 2 : ColorChangeForm->sbPMulti->Down = true; ColorChangeForm->SpeedButtonByPenClick(ColorChangeForm->sbPMulti); break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::HLS1Click(TObject *Sender) { if(showColorChange == false) InitColorChangeForm(); ColorChangeForm->ActivePage(3); ColorChangeForm->PageControlChange(Sender); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::subwholeclear2Click(TObject *Sender) { InitClearForm(); TSpeedButton *sp = (TSpeedButton *)Sender; MClearForm->sbBothClick(Sender); switch(sp->Tag){ case 1 : MClearForm->sbWholeClick(Sender); break; case 2 : MClearForm->sbWinInClick(Sender); break; case 3 : MClearForm->sbWinOutClick(Sender); break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::subwholeclear3Click(TObject *Sender) { InitClearForm(); TSpeedButton *sp = (TSpeedButton *)Sender; MClearForm->sbYarnClick(Sender); switch(sp->Tag){ case 1 : MClearForm->sbWholeClick(Sender); break; case 2 : MClearForm->sbWinInClick(Sender); break; case 3 : MClearForm->sbWinOutClick(Sender); break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::subwholeclear4Click(TObject *Sender) { InitClearForm(); TSpeedButton *sp = (TSpeedButton *)Sender; MClearForm->sbMarkClick(Sender); switch(sp->Tag){ case 1 : MClearForm->sbWholeClick(Sender); break; case 2 : MClearForm->sbWinInClick(Sender); break; case 3 : MClearForm->sbWinOutClick(Sender); break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::subOff1Click(TObject *Sender) { if (showWindow == false) InitWindowForm(); WindowForm->sbOffClick(Sender); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::SubRepeatClick(TObject *Sender) { if (showRepeat == false) InitRepeatForm(); TSpeedButton *sp = (TSpeedButton *)Sender; switch(sp->Tag){ case 1 : RepeatForm->FunctionClick(RepeatForm->sbNormal); break; case 2 : RepeatForm->FunctionClick(RepeatForm->sbHDVer); break; case 3 : RepeatForm->FunctionClick(RepeatForm->sbHDHor); break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::SubMatchClick(TObject *Sender) { if (showRepeat == false) InitRepeatForm(); TSpeedButton *sp = (TSpeedButton *)Sender; switch(sp->Tag){ case 1 : RepeatForm->FunctionMatchClick(RepeatForm->sbMatchNormal); break; case 2 : RepeatForm->FunctionMatchClick(RepeatForm->sbMatchVer); break; case 3 : RepeatForm->FunctionMatchClick(RepeatForm->sbMatchHor); break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::SubPatternRepeatClick(TObject *Sender) { if (showPatternRe == false) InitPatternRepeatForm(); TSpeedButton *sp = (TSpeedButton *)Sender; switch(sp->Tag){ case 1 : PatternRepeatForm->sbRegular->Down = true; PatternRepeatForm->FunctionClick(PatternRepeatForm->sbRegular); break; case 2 : PatternRepeatForm->sbIrregular->Down = true; PatternRepeatForm->FunctionClick(PatternRepeatForm->sbIrregular); break; case 3 : PatternRepeatForm->sbImgSpray->Down = true; PatternRepeatForm->FunctionClick(PatternRepeatForm->sbImgSpray); break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::SubStippleClick(TObject *Sender) { TSpeedButton *sp = (TSpeedButton *)Sender; if(showStipple == false) InitStippleForm(); switch (sp->Tag){ case 0 : StippleForm->TypeComboBox->ItemIndex = 0; break; case 1 : StippleForm->TypeComboBox->ItemIndex = 1; break; case 2 : StippleForm->TypeComboBox->ItemIndex = 2; break; } StippleForm->TypeComboBoxChange(Sender); } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::FillFunctionClick(TObject *Sender) { TSpeedButton *sp = (TSpeedButton *)Sender; // by playzzang if(showFill == false) InitFillForm(); switch (sp->Tag) { case 1 : FillForm->sbTMulti->Enabled = false; FillForm->sbFSingle->Down = true; FillForm->FunctionClick(FillForm->sbFSingle); FillForm->sbTSingle->Down = true; FillForm->FunctionClick(FillForm->sbTSingle); break; case 2 : FillForm->sbTMulti->Enabled = false; FillForm->sbFSingle->Down = true; FillForm->FunctionClick(FillForm->sbFSingle); FillForm->sbTNPattern->Down = true; FillForm->FunctionClick(FillForm->sbTNPattern); break; case 3 : FillForm->sbTMulti->Enabled = false; FillForm->sbFSingle->Down = true; FillForm->FunctionClick(FillForm->sbFSingle); FillForm->sbTRPattern->Down = true; FillForm->FunctionClick(FillForm->sbTRPattern); break; case 4 : case 5 : case 6 : case 7 : FillForm->sbTMulti->Enabled = true; FillForm->sbFMulti->Down = true; FillForm->FunctionClick(FillForm->sbFMulti); break; } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { int i, x, y; Byte *Src; HANDLE hFile; AnsiString str = "C:\\My Documents\\"; DWORD dwWritten; char fn[14]; if (Button == mbRight && Shift.Contains(ssShift) && Shift.Contains(ssCtrl)) { for (i=0; i<2; i++) { switch (i) { case 0 : str = "C:\\My Documents\\TestFront.txt"; break; case 1 : str = "C:\\My Documents\\TestBack.txt"; break; } hFile = CreateFile(str.c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); Smark[i].stitch->StartScanLine(); for (y=0; y<40; y++) { Src = Smark[i].stitch->GetScanLine(y); for (x=0; x<40; x++, Src++) { str = Format("%3d", OPENARRAY(TVarRec, ((int)*Src))); WriteFile(hFile, str.c_str(), strlen(str.c_str()), &dwWritten, NULL); } str = "\n"; WriteFile(hFile, str.c_str(), strlen(str.c_str()), &dwWritten, NULL); } CloseHandle(hFile); } } } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::iMainImageKeyPress(TObject *Sender, char &Key) { switch (Key) { // By GreenFish ´ÜÃàŰ Á¤¸® case 1:// case 97: // Ctrl+A ÀÛ¾÷±¸¿ª Àüü WindowForm->sbFullClick(this); break; case 4: // case 100: // Ctrl+D ÀÛ¾÷±¸¿ª ÇØÁ¦ // if (Item==T_NONE || Item==T_WIN) WindowForm->sbOffClick(this); break; case 26:// case 122: // Ctrl+Z ¾ðµÎ if(sbKnit->Down)return; if(UndoHotKeysw)return; AllExit(); InitUndoForm(); if (UndoForm->BitBtn1->Enabled) UndoForm->BitBtn1Click(this); ExitForm(); showfalse(); UndoHotKeysw = true; break; // case 27: // Esc Key·Î ¸Þ´º ´Ý±â /*===================== GreenFish ÀÛ¾÷Áß TTexpiaBitmap *TempMask; RGBQUAD Btrgb[256]; TempMask = new TTexpiaBitmap; MainImageForm->iMainImage->Bitmap->GetColors(0, 256, Btrgb); TempMask->Create(MainImageForm->WorkArea->Mask->Width, MainImageForm->WorkArea->Mask->Height, MainImageForm->WorkArea->Mask->BitsPerPixel, Btrgb); TempMask->Copy(MainImageForm->WorkArea->Mask, SRCCOPY); MainImageForm->WorkArea->Mask = NULL; if (Item != T_NONE) sbExitClick(this); MainImageForm->WorkArea->Mask = new TTexpiaBitmap; MainImageForm->WorkArea->Mask->Create(TempMask->Width, TempMask->Height, TempMask->BitsPerPixel, Btrgb); MainImageForm->WorkArea->Mask->Copy(TempMask, SRCCOPY); UpdateItem(); */ // if (Item != T_NONE ) sbExitClick(this);break; } } //--------------------------------------------------------------------------- bool __fastcall TMainMenuForm::AllExit() { AnsiString msg, fn, ext; char *s; TGraphicFileFormat gff; int Btn; bool success = true; if (Item!=T_NONE) { Show(); switch (Item) { case T_WIN: if (DesignMode == D_YARN) { WindowForm->ExitForm(); delete WindowForm; WindowForm = NULL; } else { SimpleWindowForm->ExitForm(); delete SimpleWindowForm; SimpleWindowForm = NULL; } sbWindow->Down = false; break; case T_MOVECOPY: if (DesignMode == D_YARN) { MoveCopyForm->ExitForm(); delete MoveCopyForm; MoveCopyForm = NULL; } else if (DesignMode == D_MARK) { MarkMoveCopyForm->ExitForm(); delete MarkMoveCopyForm; MarkMoveCopyForm = NULL; } sbMoveCopy->Down = false; break; case T_COLOR: ColorChangeForm->ExitForm(); delete ColorChangeForm; ColorChangeForm = NULL; sbColorChange->Down = false; break; case T_CLEAR: delete MClearForm; MClearForm = NULL; sbClear->Down = false; break; case T_GROUP: GroupingForm->ExitForm(); delete GroupingForm; GroupingForm = NULL; sbGrouping->Down = false; break; case T_REPEAT: if (DesignMode == D_YARN) { RepeatForm->ExitForm(); delete RepeatForm; RepeatForm = NULL; } else if (DesignMode == D_MARK) { MarkRepeatForm->ExitForm(); delete MarkRepeatForm; MarkRepeatForm = NULL; } sbRepeat->Down = false; break; case T_DRAW: DrawForm->ExitForm(); delete DrawForm; DrawForm = NULL; sbDraw->Down = false; break; case T_REPRO: ReproForm->ExitForm(); delete ReproForm; ReproForm = NULL; sbRepro->Down = false; break; case T_FILL: FillForm->ExitForm(); delete FillForm; FillForm = NULL; sbFill->Down = false; break; case T_TEXT: TextForm->ExitForm(); delete TextForm; TextForm = NULL; sbText->Down = false; break; case T_UNDO: delete UndoForm; UndoForm = NULL; sbUndo->Down = false; break; case T_STIPPLE: StippleForm->ExitForm(); delete StippleForm; StippleForm = NULL; sbStipple->Down = false; break; case T_SPREAD: SpreadFillForm->ExitForm(); delete SpreadFillForm; SpreadFillForm = NULL; sbSpreadFill->Down = false; break; case T_PATTERN: PatternRepeatForm->ExitForm(); delete PatternRepeatForm; PatternRepeatForm = NULL; sbPatternRepeat->Down = false; break; case T_STRIPE: StripeForm->ExitForm(); Item = T_NONE; delete StripeForm; StripeForm = NULL; sbStripe->Down = false; break; case T_MERGE: MainImageForm->ExitMerge(); break; case T_MARKFILL: MarkFillForm->ExitForm(); delete MarkFillForm; MarkFillForm = NULL; sbMarkFill->Down = false; break; case T_MARKDRAW: MarkDrawForm->ExitForm(); delete MarkDrawForm; MarkDrawForm = NULL; sbDraw->Down = false; break; } shWindow->Brush->Color = clBlack; shWindow->Pen->Color = clBlack; shMoveCopy->Brush->Color = clBlack; shMoveCopy->Pen->Color = clBlack; shColorChange->Brush->Color = clBlack; shColorChange->Pen->Color = clBlack; shClear->Brush->Color = clBlack; shClear->Pen->Color = clBlack; shGrouping->Brush->Color = clBlack; shGrouping->Pen->Color = clBlack; shRepeat->Brush->Color = clBlack; shRepeat->Pen->Color = clBlack; shDraw->Brush->Color = clBlack; shDraw->Pen->Color = clBlack; shRepro->Brush->Color = clBlack; shRepro->Pen->Color = clBlack; shFill->Brush->Color = clBlack; shFill->Pen->Color = clBlack; shSpreadFill->Brush->Color = clBlack; shSpreadFill->Pen->Color = clBlack; shStipple->Brush->Color = clBlack; shStipple->Pen->Color = clBlack; shPattern->Brush->Color = clBlack; shPattern->Pen->Color = clBlack; shStripe->Brush->Color = clBlack; shStripe->Pen->Color = clBlack; shText->Brush->Color = clBlack; shText->Pen->Color = clBlack; shUndo->Brush->Color = clBlack; shUndo->Pen->Color = clBlack; shMarkFill->Brush->Color = clBlack; shMarkFill->Pen->Color = clBlack; shPData->Brush->Color = clBlack; shPData->Pen->Color = clBlack; ClientWidth = FWidth; ClientHeight = FHeight; Item = T_NONE; MainImageForm->PenChange(); } if (MainImageForm) { if (MainImageForm->iMainImage) { if (DesignMode==D_MARK) { FullViewForm->InitForm(MainImageForm->iMainImage, MainImageForm->iMainImage->ArrayBitmap); } else { FullViewForm->InitForm(MainImageForm->iMainImage); } } } return success; } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::Undo1Click(TObject *Sender) { InitUndoForm(); if (UndoForm->UndoAll->Checked && UndoForm->BitBtn1->Enabled) UndoForm->BitBtn1Click(Sender); Undo1->Enabled = UndoForm->UndoAll->Checked && UndoForm->UndoCount; } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::CloseMainMenuItem() // MainMenu ´ÝÇôµµ Filemanager´Â »ç¿ë °¡´ÉÇÏ°Ô { sbYarn->Enabled = false; sbMark->Enabled = false; sbKnit->Enabled = false; sbWindow->Enabled = false; sbMoveCopy->Enabled = false; sbColorChange->Enabled = false; sbClear->Enabled = false; sbGrouping->Enabled = false; sbRepeat->Enabled = false; sbDraw->Enabled = false; sbRepro->Enabled = false; sbFill->Enabled = false; sbSpreadFill->Enabled = false; sbStipple->Enabled = false; sbStripe->Enabled = false; sbPatternRepeat->Enabled = false; sbText->Enabled = false; sbMarkFill->Enabled = false; sbResize->Enabled = false; sbPrint->Enabled = false; sbScan->Enabled = false; sbPData->Enabled = false; sbUndo->Enabled = false; sbFile->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TMainMenuForm::NewForm() { sbYarn->Enabled = true; sbMark->Enabled = true; sbKnit->Enabled = true; sbWindow->Enabled = true; sbMoveCopy->Enabled = true; sbColorChange->Enabled = true; sbClear->Enabled = true; sbGrouping->Enabled = true; sbRepeat->Enabled = true; sbDraw->Enabled = true; sbRepro->Enabled = true; sbFill->Enabled = true; sbSpreadFill->Enabled = true; sbStipple->Enabled = true; sbStripe->Enabled = true; sbPatternRepeat->Enabled = true; sbText->Enabled = true; sbMarkFill->Enabled = true; sbResize->Enabled = true; sbPrint->Enabled = true; sbScan->Enabled = true; sbPData->Enabled = true; sbUndo->Enabled = true; sbFile->Enabled = true; MainForm->FScanningItem->Enabled = true; MainForm->FScanningItem->Enabled = true; } //---------------------------------------------------------------------------