//--------------------------------------------------------------------- #include #pragma hdrstop #include "NewCanvas.h" #include "Exception.h" //--------------------------------------------------------------------- #pragma link "RzEdit" #pragma link "RzSpnEdt" #pragma link "TNumEdit" #pragma link "RzButton" #pragma link "RzPanel" #pragma link "RzRadChk" #pragma link "RzRadGrp" #pragma link "RzCmboBx" #pragma resource "*.dfm" //--------------------------------------------------------------------- #define IDS_NEWCANVAS StringTable[0] #define IDS_PAPERSIZE StringTable[1] #define IDS_SIZETYPE StringTable[2] #define IDS_RESOLUTION StringTable[3] #define IDS_RANGE StringTable[4] #define IDS_PAPERORIENTATION StringTable[5] #define IDS_PORTRAIT StringTable[6] #define IDS_LANDSCAPE StringTable[7] #define IDS_UNIT StringTable[8] #define IDS_DEFAULT StringTable[9] #define IDS_OK StringTable[10] #define IDS_CANCEL StringTable[11] #define IDS_CANNOT_OPEN_BIG_CANVAS StringTable[12] //--------------------------------------------------------------------- __fastcall TNewCanvasForm::TNewCanvasForm(TComponent* AOwner) : TForm(AOwner) { //============================================================ StringTable.Create(DirectoryBin, Language, "NewCanvas"); SetSmallFont(Font); Caption = IDS_NEWCANVAS; GroupBox1->Caption = IDS_PAPERSIZE; Label1->Caption = IDS_SIZETYPE; Label2->Caption = IDS_COMMON_WIDTH; Label4->Caption = IDS_COMMON_HEIGHT; Label6->Caption = IDS_RESOLUTION; Label7->Caption = IDS_RANGE; GroupBox2->Caption = IDS_PAPERORIENTATION; rbPort->Caption = IDS_PORTRAIT; rbLand->Caption = IDS_LANDSCAPE; rgUnit->Caption = IDS_UNIT; BtnDefault->Caption = IDS_DEFAULT; BtnOK->Caption = IDS_OK; BtnCancel->Caption = IDS_CANCEL; //============================================================ } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::FormCreate(TObject *Sender) { cbSizeType->ItemIndex = 0; //2001.4.2 by lhskys ȯ°æ¼³Á¤ -> Á¾ÀÌ Size ¶§¹®¿¡ ¸·À½ CanvasInfor.Orientation = coPortrait; // CanvasInfor.SetSize(cstA4); //2001.4.2 by lhskys ȯ°æ¼³Á¤ -> Á¾ÀÌ Size ‹š¹®¿¡ ¸·À½ FUnit = uCm; TIniFile *IniFile = new TIniFile(AppDataItem+"\\status.ini"); if (IniFile) { CanvasInfor.DotsPerInch = IniFile->ReadInteger("CanvasInfor", "DPI", 160); CanvasInfor.SetSize((TPCanvasSizeType)IniFile->ReadInteger("MainImage", "Size", 0)); //2001.4.2 by lhskys ȯ°æ¼³Á¤ -> Á¾ÀÌ Size cbSizeType->ItemIndex = IniFile->ReadInteger("MainImage", "Size", 0); //2001.4.2 by lhskys ȯ°æ¼³Á¤ -> Á¾ÀÌ Size seDPI->Value = CanvasInfor.DotsPerInch; delete IniFile; } Review1(); #ifdef TRIAL cbSizeType->ItemIndex = 0; seDPI->Value = 160; seDPI->Enabled = false; #endif } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::cbSizeTypeChange(TObject *Sender) { #ifdef TRIAL if(cbSizeType->ItemIndex != 0) { cbSizeType->ItemIndex = 0; ShowMessage(IDS_CANNOT_OPEN_BIG_CANVAS); return; } #endif if (cbSizeType->ItemIndex == 8) { //k3dogs letter if (cbSizeType->ItemIndex == 5) { CanvasInfor.SizeType = cstFree; Label2->Enabled = true; edWidth->Enabled = true; Label4->Enabled = true; edHeight->Enabled = true; GroupBox2->Enabled = false; edWidth->SetFocus(); } else { switch (cbSizeType->ItemIndex) { case 0: CanvasInfor.SetSize(cstA4); break; case 1: CanvasInfor.SetSize(cstA3); break; case 2: CanvasInfor.SetSize(cstA2); break; case 3: CanvasInfor.SetSize(cstA1); break; case 4: CanvasInfor.SetSize(cstA0); break; case 5: CanvasInfor.SetSize(cstLetter); break; //k3dogs letter case 6: CanvasInfor.SetSize(cstLegal); break; case 7: CanvasInfor.SetSize(cstTabloid); break; } Label2->Enabled = false; edWidth->Enabled = false; Label4->Enabled = false; edHeight->Enabled = false; GroupBox2->Enabled = true; cbSizeType->SetFocus(); } Review(); } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::edWidthChange(TObject *Sender) { long hor; if (edWidth->Value > 0) { switch (FUnit) { case uInch: hor = edWidth->Value*CanvasInfor.DotsPerInch; break; case uCm: hor = edWidth->Value*CanvasInfor.DotsPerInch/2.54; break; default: hor = edWidth->IntValue; } if (CanvasInfor.Orientation==coPortrait) CanvasInfor.Width = hor; else CanvasInfor.Height = hor; } } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::edWidthEnter(TObject *Sender) { if (edWidth->Value <= 0) { MessageDlg(IDS_MESSAGE_INPUTNUMBER, mtError, TMsgDlgButtons() << mbOK, 0); edWidth->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::edHeightChange(TObject *Sender) { long ver; if (edHeight->Value > 0) { switch (FUnit) { case uInch: ver = edHeight->Value*CanvasInfor.DotsPerInch; break; case uCm: ver = edHeight->Value*CanvasInfor.DotsPerInch/2.54; break; default: ver = edHeight->IntValue; } if (CanvasInfor.Orientation==coPortrait) CanvasInfor.Height = ver; else CanvasInfor.Width = ver; } } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::edHeightEnter(TObject *Sender) { if (edHeight->Value <= 0) { MessageDlg(IDS_MESSAGE_INPUTNUMBER, mtError, TMsgDlgButtons() << mbOK, 0); edHeight->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::seDPIChange(TObject *Sender) { long w, h; if (seDPI->Text.Length() > 0) { CanvasInfor.DotsPerInch = seDPI->Value; if (cbSizeType->ItemIndex < 8) { //k3dogs letter if (cbSizeType->ItemIndex<4) { switch (cbSizeType->ItemIndex) { case 0: w = 7.8*CanvasInfor.DotsPerInch; h = 11*CanvasInfor.DotsPerInch; break; case 1: w = 11*CanvasInfor.DotsPerInch; h = 15.6*CanvasInfor.DotsPerInch; break; case 2: w = 15.6*CanvasInfor.DotsPerInch; h = 22*CanvasInfor.DotsPerInch; break; case 3: w = 22*CanvasInfor.DotsPerInch; h = 31.2*CanvasInfor.DotsPerInch; break; case 4: w = 31.2*CanvasInfor.DotsPerInch; h = 44*CanvasInfor.DotsPerInch; break; case 5: //k3dogs w = 8.0*CanvasInfor.DotsPerInch; //letter h = 10.3*CanvasInfor.DotsPerInch; // break; case 6: //k3dogs w = 8.0*CanvasInfor.DotsPerInch; //letter h = 13.2*CanvasInfor.DotsPerInch; // break; case 7: w = 10.3*CanvasInfor.DotsPerInch; //letter h = 16.0*CanvasInfor.DotsPerInch; // break; } if (CanvasInfor.Orientation==coPortrait) { CanvasInfor.Width = w; CanvasInfor.Height = h; } else { CanvasInfor.Width = h; CanvasInfor.Height = w; } } Review(); } } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::seDPIExit(TObject *Sender) { int index; CanvasInfor.DotsPerInch = seDPI->Value; index = cbSizeType->ItemIndex; cbSizeType->Clear(); cbSizeType->Items->Add(Format("A4 Size ( %d Dot * %d Dot)", OPENARRAY(TVarRec, (int(CanvasInfor.DotsPerInch * 7.8), int(CanvasInfor.DotsPerInch * 11))))); cbSizeType->Items->Add(Format("A3 Size ( %d Dot * %d Dot)", OPENARRAY(TVarRec, (int(CanvasInfor.DotsPerInch * 11), int(CanvasInfor.DotsPerInch * 15.6))))); cbSizeType->Items->Add(Format("A2 Size (%d Dot * %d Dot)", OPENARRAY(TVarRec, (int(CanvasInfor.DotsPerInch * 15.6), int(CanvasInfor.DotsPerInch * 22))))); cbSizeType->Items->Add(Format("A1 Size (%d Dot * %d Dot)", OPENARRAY(TVarRec, (int(CanvasInfor.DotsPerInch * 22), int(CanvasInfor.DotsPerInch * 31.2))))); cbSizeType->Items->Add(Format("A0 Size (%d Dot * %d Dot)", OPENARRAY(TVarRec, (int(CanvasInfor.DotsPerInch * 31.2), int(CanvasInfor.DotsPerInch * 44))))); cbSizeType->Items->Add(Format("Letter Size (%d Dot * %d Dot)", //k3dogs OPENARRAY(TVarRec, (int(CanvasInfor.DotsPerInch * 8.0), int(CanvasInfor.DotsPerInch * 10.3))))); //letter cbSizeType->Items->Add(Format("Legal Size (%d Dot * %d Dot)", //k3dogs OPENARRAY(TVarRec, (int(CanvasInfor.DotsPerInch * 8.0), int(CanvasInfor.DotsPerInch * 13.2))))); //legal cbSizeType->Items->Add(Format("Tabloid Size (%d Dot * %d Dot)", //k3dogs OPENARRAY(TVarRec, (int(CanvasInfor.DotsPerInch * 10.3), int(CanvasInfor.DotsPerInch * 16.0))))); //legal cbSizeType->Items->Add("User Defines"); cbSizeType->ItemIndex = index; } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::rbPortClick(TObject *Sender) { CanvasInfor.Orientation = coPortrait; Review(); } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::rbLandClick(TObject *Sender) { CanvasInfor.Orientation = coLandscape; Review(); } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::rgUnitClick(TObject *Sender) { switch (rgUnit->ItemIndex) { case 0: FUnit = uCm; break; case 1: FUnit = uInch; break; case 2: FUnit = uDot; break; } Review(); if (FUnit == uDot){ edWidth->IntegerOnly = true; edHeight->IntegerOnly = true; } else { edWidth->IntegerOnly = false; edHeight->IntegerOnly = false; } } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::BtnDefaultClick(TObject *Sender) { CanvasInfor.Orientation = coPortrait; CanvasInfor.DotsPerInch = 160; CanvasInfor.SetSize(cstA4); FUnit = uInch; } //--------------------------------------------------------------------- // Private Methods //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::Review() { short dpi; long hor, ver; int index; if (CanvasInfor.Orientation==coPortrait) { hor = CanvasInfor.Width; ver = CanvasInfor.Height; } else { hor = CanvasInfor.Height; ver = CanvasInfor.Width; } index = cbSizeType->ItemIndex; cbSizeType->Clear(); switch (FUnit) { case uInch: cbSizeType->Items->Add("A4 Size (7.8 Inch * 11.0 Inch)"); cbSizeType->Items->Add("A3 Size (11.0 Inch * 15.6 Inch)"); cbSizeType->Items->Add("A2 Size (15.6 Inch * 22.0 Inch)"); cbSizeType->Items->Add("A1 Size (22.0 Inch * 31.2 Inch)"); cbSizeType->Items->Add("A0 Size (31.2 Inch * 44.0 Inch)"); cbSizeType->Items->Add("Letter Size (8.0 Inch * 10.3 Inch)"); //k3dogs letter cbSizeType->Items->Add("Legal Size (8.0 Inch * 13.2 Inch)"); cbSizeType->Items->Add("Tabloid Size (10.3 Inch * 16.0 Inch)"); cbSizeType->Items->Add("User Defines"); edWidth->Value = (double)hor / CanvasInfor.DotsPerInch; edHeight->Value = (double)ver / CanvasInfor.DotsPerInch; Label3->Caption = "Inch"; Label5->Caption = "Inch"; break; case uCm: cbSizeType->Items->Add("A4 Size (19.812 Cm * 27.94 Cm)"); cbSizeType->Items->Add("A3 Size (27.94 Cm * 39.624 Cm)"); cbSizeType->Items->Add("A2 Size (39.624 Cm * 55.88 Cm)"); cbSizeType->Items->Add("A1 Size (55.88 Cm * 79.248 Cm)"); cbSizeType->Items->Add("A0 Size (79.248 Cm * 111.76 Cm)"); cbSizeType->Items->Add("Letter Size (20.32 Cm * 26.162 Cm)"); //k3dogs letter cbSizeType->Items->Add("Legal Size (20.32 Cm * 33.528 Cm)"); cbSizeType->Items->Add("Tabloid Size (26.162 Cm * 40.64 Cm)"); cbSizeType->Items->Add("User Defines"); edWidth->Value = 2.54 * hor / CanvasInfor.DotsPerInch; edHeight->Value = 2.54 * ver / CanvasInfor.DotsPerInch; Label3->Caption = "Cm"; Label5->Caption = "Cm"; break; default: dpi = seDPI->Value; cbSizeType->Items->Add(Format("A4 Size (%d Dot * %d Dot)", OPENARRAY(TVarRec, (int(dpi * 7.8), int(dpi * 11))))); cbSizeType->Items->Add(Format("A3 Size (%d Dot * %d Dot)", OPENARRAY(TVarRec, (int(dpi * 11), int(dpi * 15.6))))); cbSizeType->Items->Add(Format("A2 Size (%d Dot * %d Dot)", OPENARRAY(TVarRec, (int(dpi * 15.6), int(dpi * 22))))); cbSizeType->Items->Add(Format("A1 Size (%d Dot * %d Dot)", OPENARRAY(TVarRec, (int(dpi * 22), int(dpi * 31.2))))); cbSizeType->Items->Add(Format("A0 Size (%d Dot * %d Dot)", OPENARRAY(TVarRec, (int(dpi * 31.2), int(dpi * 44))))); cbSizeType->Items->Add(Format("Letter Size (%d Dot * %d Dot)", //k3dogs letter OPENARRAY(TVarRec, (int(dpi * 8.0), int(dpi * 10.3))))); // cbSizeType->Items->Add(Format("Legal Size (%d Dot * %d Dot)", //k3dogs letter OPENARRAY(TVarRec, (int(dpi * 8.0), int(dpi * 13.2))))); // cbSizeType->Items->Add(Format("Tabloid Size (%d Dot * %d Dot)", //k3dogs letter OPENARRAY(TVarRec, (int(dpi * 10.3), int(dpi * 16.0))))); // cbSizeType->Items->Add("User Defines"); edWidth->Value = hor; edHeight->Value = ver; Label3->Caption = "Dot"; Label5->Caption = "Dot"; break; } cbSizeType->ItemIndex = index; } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::Review1() { short dpi; long hor, ver; int index; if (CanvasInfor.Orientation==coPortrait) { hor = CanvasInfor.Width; ver = CanvasInfor.Height; } else { hor = CanvasInfor.Height; ver = CanvasInfor.Width; } index = cbSizeType->ItemIndex; cbSizeType->Clear(); switch (FUnit) { case uInch: cbSizeType->Items->Add("A4 Size (7.8 Inch * 11.0 Inch)"); cbSizeType->Items->Add("A3 Size (11.0 Inch * 15.6 Inch)"); cbSizeType->Items->Add("A2 Size (15.6 Inch * 22.0 Inch)"); cbSizeType->Items->Add("A1 Size (22.0 Inch * 31.2 Inch)"); cbSizeType->Items->Add("A0 Size (31.2 Inch * 44.0 Inch)"); cbSizeType->Items->Add("Letter Size (8.0 Inch * 10.3 Inch)"); //k3dogs letter cbSizeType->Items->Add("Legal Size (8.0 Inch * 13.2 Inch)"); cbSizeType->Items->Add("Tabloid Size (10.3 Inch * 16.0 Inch)"); cbSizeType->Items->Add("User Defines"); edWidth->Value = (double)hor / CanvasInfor.DotsPerInch; edHeight->Value = (double)ver / CanvasInfor.DotsPerInch; Label3->Caption = "Inch"; Label5->Caption = "Inch"; break; case uCm: cbSizeType->Items->Add("A4 Size (19.812 Cm * 27.94 Cm)"); cbSizeType->Items->Add("A3 Size (27.94 Cm * 39.624 Cm)"); cbSizeType->Items->Add("A2 Size (39.624 Cm * 55.88 Cm)"); cbSizeType->Items->Add("A1 Size (55.88 Cm * 79.248 Cm)"); cbSizeType->Items->Add("A0 Size (79.248 Cm * 111.76 Cm)"); cbSizeType->Items->Add("Letter Size (20.32 Cm * 26.162 Cm)"); //k3dogs letter cbSizeType->Items->Add("Legal Size (20.32 Cm * 33.528 Cm)"); cbSizeType->Items->Add("Tabloid Size (26.162 Cm * 40.64 Cm)"); cbSizeType->Items->Add("User Defines"); edWidth->Value = 2.54 * hor / CanvasInfor.DotsPerInch; edHeight->Value = 2.54 * ver / CanvasInfor.DotsPerInch; Label3->Caption = "Cm"; Label5->Caption = "Cm"; break; default: dpi = seDPI->Value; cbSizeType->Items->Add(Format("A4 Size (%d Dot * %d Dot)", OPENARRAY(TVarRec, (int(dpi * 7.8), int(dpi * 11))))); cbSizeType->Items->Add(Format("A3 Size (%d Dot * %d Dot)", OPENARRAY(TVarRec, (int(dpi * 11), int(dpi * 15.6))))); cbSizeType->Items->Add(Format("A2 Size (%d Dot * %d Dot)", OPENARRAY(TVarRec, (int(dpi * 15.6), int(dpi * 22))))); cbSizeType->Items->Add(Format("A1 Size (%d Dot * %d Dot)", OPENARRAY(TVarRec, (int(dpi * 22), int(dpi * 31.2))))); cbSizeType->Items->Add(Format("A0 Size (%d Dot * %d Dot)", OPENARRAY(TVarRec, (int(dpi * 31.2), int(dpi * 44))))); cbSizeType->Items->Add(Format("Letter Size (%d Dot * %d Dot)", //k3dogs letter OPENARRAY(TVarRec, (int(dpi * 8.0), int(dpi * 10.3))))); // cbSizeType->Items->Add(Format("Legal Size (%d Dot * %d Dot)", //k3dogs letter OPENARRAY(TVarRec, (int(dpi * 8.0), int(dpi * 13.2))))); // cbSizeType->Items->Add(Format("Tabloid Size (%d Dot * %d Dot)", //k3dogs letter OPENARRAY(TVarRec, (int(dpi * 10.3), int(dpi * 16.0))))); // cbSizeType->Items->Add("User Defines"); edWidth->Value = hor; edHeight->Value = ver; Label3->Caption = "Dot"; Label5->Caption = "Dot"; break; } if(index>5)cbSizeType->ItemIndex = index-1; else cbSizeType->ItemIndex = index; } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::EditorSelectAll(TObject *Sender) { SetFocusAndSelectAll(Sender); } //--------------------------------------------------------------------------- #ifdef SK_SMART ///SKÀÇ ¿äûÀ¸·Î Parameter·Î ¹ÞÀº »çÀÌÁî·Î Canvas°¡ OpneµÇ°Ô ó¸®ÇÏ´Â ÇÔ¼ö 07.3.30 //param[2]: mailslotÀÇ À̸§ //param[3]: width, [4]: height, [5]:dpi void __fastcall TNewCanvasForm::SetCanvasForSK(String *param) { cbSizeType->ItemIndex = 8; CanvasInfor.SizeType = cstFree; double temp = StrToFloat(param[5].c_str()); seDPI->Value = temp; edWidth->Text = param[3]; edHeight->Text = param[4]; edWidth->Enabled = true; edHeight->Enabled = true; } #endif //---------------------------------------------------------------------------