//--------------------------------------------------------------------- #include #pragma hdrstop #include "NewCanvas.h" #include "Exception.h" //--------------------------------------------------------------------- #pragma link "TPSpin" #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] //--------------------------------------------------------------------- __fastcall TNewCanvasForm::TNewCanvasForm(TComponent* AOwner) : TForm(AOwner) { } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::FormCreate(TObject *Sender) { //============================================================ 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; //============================================================ 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(DirectoryItem+"\\Environment.ini"); if (IniFile) { CanvasInfor.DotsPerInch = IniFile->ReadInteger("CanvasInfor", "DPI", 160); CanvasInfor.SetSize(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(); } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::cbSizeTypeChange(TObject *Sender) { 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->Text.Length() > 0) { switch (FUnit) { case uInch: hor = StrToFloat(edWidth->Text)*CanvasInfor.DotsPerInch; break; case uCm: hor = StrToFloat(edWidth->Text)*CanvasInfor.DotsPerInch/2.54; break; default: hor = StrToInt(edWidth->Text); } if (CanvasInfor.Orientation==coPortrait) CanvasInfor.Width = hor; else CanvasInfor.Height = hor; } } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::edWidthEnter(TObject *Sender) { if (edWidth->Text.Length()==0) { MessageDlg(IDS_MESSAGE_INPUTNUMBER, mtError, TMsgDlgButtons() << mbOK, 0); edWidth->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::edHeightChange(TObject *Sender) { long ver; if (edHeight->Text.Length() > 0) { switch (FUnit) { case uInch: ver = StrToFloat(edHeight->Text)*CanvasInfor.DotsPerInch; break; case uCm: ver = StrToFloat(edHeight->Text)*CanvasInfor.DotsPerInch/2.54; break; default: ver = StrToInt(edHeight->Text); } if (CanvasInfor.Orientation==coPortrait) CanvasInfor.Height = ver; else CanvasInfor.Width = ver; } } //--------------------------------------------------------------------------- void __fastcall TNewCanvasForm::edHeightEnter(TObject *Sender) { if (edHeight->Text.Length()==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(); } //--------------------------------------------------------------------------- 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->Text = (double)hor / CanvasInfor.DotsPerInch; edHeight->Text = (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->Text = 2.54 * hor / CanvasInfor.DotsPerInch; edHeight->Text = 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->Text = hor; edHeight->Text = 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->Text = (double)hor / CanvasInfor.DotsPerInch; edHeight->Text = (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->Text = 2.54 * hor / CanvasInfor.DotsPerInch; edHeight->Text = 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->Text = hor; edHeight->Text = ver; Label3->Caption = "Dot"; Label5->Caption = "Dot"; break; } if(index>5)cbSizeType->ItemIndex = index-1; else cbSizeType->ItemIndex = index; } //---------------------------------------------------------------------------