//--------------------------------------------------------------------- #include #pragma hdrstop #include "ResizeCanvas.h" //--------------------------------------------------------------------- #pragma link "TNumEdit" #pragma link "RzButton" #pragma link "RzLabel" #pragma link "RzPanel" #pragma link "RzRadChk" #pragma link "RzRadGrp" #pragma resource "*.dfm" //--------------------------------------------------------------------- #define IDS_CURRENTSIZE StringTable[0] #define IDS_RESOLUTION StringTable[1] #define IDS_NEWSIZE StringTable[2] #define IDS_OK StringTable[3] #define IDS_CANCEL StringTable[4] #define IDS_UNIT StringTable[5] #define IDS_CM StringTable[6] #define IDS_INCH StringTable[7] #define IDS_DOT StringTable[8] #define IDS_DOTSINCH StringTable[9] #define IDS_RESIZECANVAS StringTable[10] #define IDS_PROPORTIONS StringTable[11] #define IDS_CANNOT_OPEN_BIG_CANVAS StringTable[12] //--------------------------------------------------------------------- TResizeCanvasForm *ResizeCanvasForm; //--------------------------------------------------------------------- __fastcall TResizeCanvasForm::TResizeCanvasForm(TComponent* AOwner) : TForm(AOwner) { //================================================================= StringTable.Create(DirectoryBin, Language, "ResizeCanvas"); SetSmallFont(Font); Caption = IDS_RESIZECANVAS; GroupBox1->Caption = IDS_CURRENTSIZE; gbNewSize->Caption = IDS_NEWSIZE; lbCSWidth->Caption = IDS_COMMON_WIDTH; lbCSHeight->Caption = IDS_COMMON_HEIGHT; lbCSResolution->Caption = IDS_RESOLUTION; Label1->Caption = IDS_COMMON_WIDTH; Label2->Caption = IDS_COMMON_HEIGHT; Label3->Caption = IDS_RESOLUTION; lbNSWidthUnit->Caption = IDS_CM; lbNSHeightUnit->Caption = IDS_CM; lbNSResolutionUnit->Caption = IDS_DOTSINCH; OKBtn->Caption = IDS_OK; CancelBtn->Caption = IDS_CANCEL; rgUnit->Caption = IDS_UNIT; rgUnit->Items->Strings[0] = IDS_CM; rgUnit->Items->Strings[1] = IDS_INCH; rgUnit->Items->Strings[2] = IDS_DOT; proportion->Caption = IDS_PROPORTIONS; //================================================================= ChangeSW = false; } //--------------------------------------------------------------------- void __fastcall TResizeCanvasForm::FormActivate(TObject *Sender) { NewSize.cx = CanvasInfor.Width; NewSize.cy = CanvasInfor.Height; CP.cx = CanvasInfor.Width; CP.cy = CanvasInfor.Height; NewDPI = CanvasInfor.DotsPerInch; FUnit = uCm; View(); #ifdef TRIAL edNSResolution->Enabled = false; #endif } //--------------------------------------------------------------------------- void __fastcall TResizeCanvasForm::edNSClick(TObject *Sender) { TEdit *ed = (TEdit *)Sender; ed->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TResizeCanvasForm::edNSDblClick(TObject *Sender) { TEdit *ed = (TEdit *)Sender; ed->SetFocus(); ed->SelectAll(); } //--------------------------------------------------------------------------- void __fastcall TResizeCanvasForm::edNSWidthChange(TObject *Sender) { /* // added by maxleo21c (05.05.01) - ¼ýÀÚ, "." = 190 ÀÌ¿ÜÀÇ ±ÛÀÚ°¡ µé¾î¿À¸é ¿¡·¯°¡ ¹ß»ýÇϱâ // ¶§¹®¿¡ Ãß°¡Âg´Ù. if (tempKey == VK_BACK || tempKey == VK_DELETE); else if (tempKey >= 48 && tempKey <= 57); // 0 ~ 9 else if (tempKey >= 96 && tempKey <= 105); // VK_NUMPAD0 ~ VK_NUMPAD9 else if (tempString.Length() && (tempKey == 190 || tempKey == VK_DECIMAL) && edNSWidth->Text.Length()) { int count=0; for (int i=0; iText.Length(); i++) { if (edNSWidth->Text.c_str()[i] == '.') count++; } if (count>1) { edNSWidth->Text = tempString; return; } } else if (tempString.Length() && tempKey!=0) { edNSWidth->Text = tempString; return; } //------------------------------------------------------------------------- */ if (edNSWidth->Value > 0) { if(proportion->Checked && ChangeSW){ ChangeSW = false; edNSHeight->Value = (double)(CP.cy * edNSWidth->Value)/CP.cx; //Format("%f", OPENARRAY(TVarRec, ((double)(CP.cy * StrToFloat(edNSWidth->Text))/CP.cx))); } switch (FUnit) { case uCm: NewSize.cx = edNSWidth->Value*NewDPI/2.54+0.5; break; case uInch: NewSize.cx = edNSWidth->Value*NewDPI+0.5; break; default: NewSize.cx = edNSWidth->IntValue; break; } } } //--------------------------------------------------------------------------- void __fastcall TResizeCanvasForm::edNSHeightChange(TObject *Sender) { if (edNSHeight->Value > 0) { if(proportion->Checked && ChangeSW){ ChangeSW = false; edNSWidth->Value = (double)(CP.cx * edNSHeight->Value)/CP.cy; //Format("%f", OPENARRAY(TVarRec, ((double)(CP.cx * StrToFloat(edNSHeight->Text))/CP.cy))); } switch (FUnit) { case uCm: NewSize.cy = edNSHeight->Value*NewDPI/2.54+0.5; break; case uInch: NewSize.cy = edNSHeight->Value*NewDPI+0.5; break; default: NewSize.cy = edNSHeight->IntValue; break; } } } //--------------------------------------------------------------------------- void __fastcall TResizeCanvasForm::edNSResolutionExit(TObject *Sender) { Word DPI; DPI = edNSResolution->IntValue; NewSize.cx = DPI*NewSize.cx/NewDPI+0.5; NewSize.cy = DPI*NewSize.cy/NewDPI+0.5; NewDPI = DPI; } //--------------------------------------------------------------------------- void __fastcall TResizeCanvasForm::rgUnitClick(TObject *Sender) { switch (rgUnit->ItemIndex) { case 0: FUnit = uCm; lbNSWidthUnit->Caption = "Cm"; lbNSHeightUnit->Caption = "Cm"; edNSWidth->IntegerOnly = false; edNSHeight->IntegerOnly = false; break; case 1: FUnit = uInch; lbNSWidthUnit->Caption = "Inch"; lbNSHeightUnit->Caption = "Inch"; edNSWidth->IntegerOnly = false; edNSHeight->IntegerOnly = false; break; case 2: FUnit = uDot; lbNSWidthUnit->Caption = "Dots"; lbNSHeightUnit->Caption = "Dots"; edNSWidth->IntegerOnly = true; edNSHeight->IntegerOnly = true; break; } View(); } //--------------------------------------------------------------------------- void __fastcall TResizeCanvasForm::View() { switch (FUnit) { case uCm: lbCSWidth->Caption = String(IDS_COMMON_WIDTH) + Format(" : %f", OPENARRAY(TVarRec, (2.54*CanvasInfor.Width/CanvasInfor.DotsPerInch))); lbCSHeight->Caption = String(IDS_COMMON_HEIGHT) + Format(" : %f", OPENARRAY(TVarRec, (2.54*CanvasInfor.Height/CanvasInfor.DotsPerInch))); edNSWidth->Value = 2.54*NewSize.cx/NewDPI; //Format("%f", OPENARRAY(TVarRec, (2.54*NewSize.cx/NewDPI))); edNSHeight->Value = 2.54*NewSize.cy/NewDPI; //Format("%f", OPENARRAY(TVarRec, (2.54*NewSize.cy/NewDPI))); break; case uInch: lbCSWidth->Caption = String(IDS_COMMON_WIDTH) + Format(" : %f", OPENARRAY(TVarRec, ((double)CanvasInfor.Width/CanvasInfor.DotsPerInch))); lbCSHeight->Caption = String(IDS_COMMON_HEIGHT) + Format(" : %f", OPENARRAY(TVarRec, ((double)CanvasInfor.Height/CanvasInfor.DotsPerInch))); edNSWidth->Value = (double)NewSize.cx/NewDPI; //Format("%f", OPENARRAY(TVarRec, ((double)NewSize.cx/NewDPI))); edNSHeight->Value = (double)NewSize.cy/NewDPI; //Format("%f", OPENARRAY(TVarRec, ((double)NewSize.cy/NewDPI))); break; case uDot: lbCSWidth->Caption = String(IDS_COMMON_WIDTH) + Format(" : %d", OPENARRAY(TVarRec, (CanvasInfor.Width))); lbCSHeight->Caption = String(IDS_COMMON_HEIGHT) + Format(" : %d", OPENARRAY(TVarRec, (CanvasInfor.Height))); edNSWidth->Value = (int)NewSize.cx; //Format("%d", OPENARRAY(TVarRec, ((int)NewSize.cx))); edNSHeight->Value = (int)NewSize.cy; //Format("%d", OPENARRAY(TVarRec, ((int)NewSize.cy))); break; } lbCSResolution->Caption =String(IDS_RESOLUTION) + Format(" : %d Dots/Inch", OPENARRAY(TVarRec, (CanvasInfor.DotsPerInch))); edNSResolution->Value = NewDPI; //Format("%d", OPENARRAY(TVarRec, (NewDPI))); } //--------------------------------------------------------------------------- void __fastcall TResizeCanvasForm::edNSWHRKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { tempKey = Key; tempString = FloatToStr(edNSWidth->Value); if(Key == VK_RETURN) SelectNext((TWinControl *)Sender, true, true); ChangeSW = true; } //--------------------------------------------------------------------------- void __fastcall TResizeCanvasForm::OKBtnClick(TObject *Sender) { A4SizeCheck(); } //--------------------------------------------------------------------------- void __fastcall TResizeCanvasForm::A4SizeCheck() { #ifdef TRIAL float pWidth = edNSWidth->Value; float pHeight = edNSHeight->Value; float A4Width, A4Height; switch (rgUnit->ItemIndex) { case 0: A4Width = 19.81; A4Height = 27.94; break; case 1: A4Width = 7.8; A4Height = 11; break; case 2: A4Width = 1248; A4Height = 1760; break; } if((pWidth > A4Height || pHeight > A4Height)) { ShowMessage(IDS_CANNOT_OPEN_BIG_CANVAS); ModalResult = mrCancel; } else if(!(pWidth <= A4Width || pHeight <= A4Width)) { ShowMessage(IDS_CANNOT_OPEN_BIG_CANVAS); ModalResult = mrCancel; } #endif } //---------------------------------------------------------------------------