diff --git a/20_Task/M1/20_Function/FunctionForm.pas b/20_Task/M1/20_Function/FunctionForm.pas index f9f7a4d..cf210d4 100644 --- a/20_Task/M1/20_Function/FunctionForm.pas +++ b/20_Task/M1/20_Function/FunctionForm.pas @@ -32,6 +32,8 @@ TForm2 = class(TForm) ¹Ýȯ°ª: ¹®ÀÚ¿­(¸Þ½ÃÁö) (2-2) ÇÔ¼ö ¼±¾ð ÈÄ Ctrl + Shift + C¸¦ ´­·¯ ±¸ÇöºÎ »ý¼º } + function GetUserInfoMsg(AName: string; AAge: Integer; Sex: Boolean): string; // GetUserInfoMsg ÇÔ¼ö ¼±¾ð + public // ´Ù¸¥ À¯´Ö¿¡¼­ ÂüÁ¶ÇÒ ¼ö ÀÖ´Â º¯¼ö¿Í ÇÔ¼ö ¼±¾ð end; @@ -53,6 +55,12 @@ function TForm2.GetNameMsg(AName: string): string; Result := Msg; end; +function TForm2.GetUserInfoMsg(AName: string; AAge: Integer; + Sex: Boolean): string; +begin + +end; + function TForm2.GetAgeMsg(AName: string; AAge: Integer): string; var Msg, Adult: string; @@ -66,7 +74,7 @@ function TForm2.GetAgeMsg(AName: string; AAge: Integer): string; ¹®ÀÚ¿­°ú º¯¼ö¸¦ Á¶ÇÕ(´õÇϱâ) Çϼ¼¿ä. Á¤¼ö´Â ¹®ÀÚ·Î º¯È¯(IntToStr)Çϼ¼¿ä. } - +// Msg := (AName)´ÔÀº (AAge)¼¼·Î (¼ºÀÎ/¹Ì¼º³â)ÀÔ´Ï´Ù. Result := Msg; end; diff --git a/20_Task/M1/shinsunghoon/10_Variable/VariableForm.dfm b/20_Task/M1/shinsunghoon/10_Variable/VariableForm.dfm new file mode 100644 index 0000000..7008051 --- /dev/null +++ b/20_Task/M1/shinsunghoon/10_Variable/VariableForm.dfm @@ -0,0 +1,53 @@ +object Form1: TForm1 + Left = 0 + Top = 0 + Caption = #48320#49688#49324#50857' '#49892#49845' '#50696#51228 + ClientHeight = 144 + ClientWidth = 267 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 24 + Top = 24 + Width = 47 + Height = 13 + Caption = #49707#51088' '#51077#47141 + end + object Label2: TLabel + Left = 24 + Top = 77 + Width = 58 + Height = 13 + Caption = #49707#51088#46308#51032' '#54633 + end + object edtNum: TEdit + Left = 24 + Top = 43 + Width = 121 + Height = 21 + TabOrder = 0 + end + object Button1: TButton + Left = 143 + Top = 41 + Width = 75 + Height = 25 + Caption = #51077#47141'(*)' + TabOrder = 1 + OnClick = Button1Click + end + object edtSum: TEdit + Left = 24 + Top = 96 + Width = 121 + Height = 21 + TabOrder = 2 + end +end diff --git a/20_Task/M1/10_Variable/VariableForm.pas b/20_Task/M1/shinsunghoon/10_Variable/VariableForm.pas similarity index 76% rename from 20_Task/M1/10_Variable/VariableForm.pas rename to 20_Task/M1/shinsunghoon/10_Variable/VariableForm.pas index ce9d2fe..a1631d3 100644 --- a/20_Task/M1/10_Variable/VariableForm.pas +++ b/20_Task/M1/shinsunghoon/10_Variable/VariableForm.pas @@ -2,6 +2,8 @@ interface +// ±êÇã±× Å×½ºÆ® + uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; @@ -18,6 +20,7 @@ TForm1 = class(TForm) // ÀÌ Æû(À¯´Ö)¿¡¼­¸¸ »ç¿ëÇÏ´Â º¯¼ö¿Í ÇÔ¼ö¸¦ ¼±¾ð { TODO : (1) Á¤¼ö Çü FSum º¯¼ö¸¦ ¼±¾ðÇϼ¼¿ä. } + FSum : Integer; //Á¤¼öÇü º¯¼ö ¼±¾ð function AddNum(ANum: Integer): Integer; public @@ -36,7 +39,9 @@ function TForm1.AddNum(ANum: Integer): Integer; { TODO : (2) FSum º¯¼ö¿¡ ÆÄ¶ó¸ÞÅÍ ANum °ªÀ» ´õÇÕ´Ï´Ù. FSum º¯¼ö ¹Ýȯ } - Result := 0; + FSum := FSum + ANum; //FSum º¯¼ö¿¡ ½×±â + + Result := FSum; //¹Ýȯ°ª end; procedure TForm1.Button1Click(Sender: TObject); diff --git a/20_Task/M1/10_Variable/VariableSample.dpr b/20_Task/M1/shinsunghoon/10_Variable/VariableSample.dpr similarity index 100% rename from 20_Task/M1/10_Variable/VariableSample.dpr rename to 20_Task/M1/shinsunghoon/10_Variable/VariableSample.dpr diff --git a/20_Task/M1/10_Variable/VariableSample.dproj b/20_Task/M1/shinsunghoon/10_Variable/VariableSample.dproj similarity index 100% rename from 20_Task/M1/10_Variable/VariableSample.dproj rename to 20_Task/M1/shinsunghoon/10_Variable/VariableSample.dproj diff --git a/20_Task/M1/shinsunghoon/10_Variable/VariableSample.res b/20_Task/M1/shinsunghoon/10_Variable/VariableSample.res new file mode 100644 index 0000000..fba455b Binary files /dev/null and b/20_Task/M1/shinsunghoon/10_Variable/VariableSample.res differ diff --git a/20_Task/M1/shinsunghoon/20_Function/FunctionForm.dfm b/20_Task/M1/shinsunghoon/20_Function/FunctionForm.dfm new file mode 100644 index 0000000..f12ec91 --- /dev/null +++ b/20_Task/M1/shinsunghoon/20_Function/FunctionForm.dfm @@ -0,0 +1,96 @@ +object Form2: TForm2 + Left = 0 + Top = 0 + Caption = #54632#49688#49324#50857' '#49892#49845' '#50696#51228 + ClientHeight = 196 + ClientWidth = 285 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 24 + Top = 24 + Width = 22 + Height = 13 + Caption = #51060#47492 + end + object Label2: TLabel + Left = 24 + Top = 77 + Width = 22 + Height = 13 + Caption = #45208#51060 + end + object Label3: TLabel + Left = 24 + Top = 133 + Width = 22 + Height = 13 + Caption = #49457#48324 + end + object edtName: TEdit + Left = 24 + Top = 43 + Width = 121 + Height = 21 + TabOrder = 0 + end + object Button1: TButton + Left = 151 + Top = 41 + Width = 75 + Height = 25 + Caption = #51064#49324#47568' '#54364#49884 + TabOrder = 1 + OnClick = Button1Click + end + object edtAge: TEdit + Left = 24 + Top = 96 + Width = 121 + Height = 21 + TabOrder = 2 + end + object Button2: TButton + Left = 151 + Top = 94 + Width = 90 + Height = 25 + Caption = #49457#51064#50668#48512' '#54869#51064 + TabOrder = 3 + OnClick = Button2Click + end + object Button3: TButton + Left = 151 + Top = 148 + Width = 90 + Height = 25 + Caption = #49457#48324' '#54869#51064 + TabOrder = 4 + OnClick = Button3Click + end + object rdoMan: TRadioButton + Left = 24 + Top = 152 + Width = 49 + Height = 17 + Caption = #45224#51088 + Checked = True + TabOrder = 5 + TabStop = True + end + object rdoWoman: TRadioButton + Left = 79 + Top = 152 + Width = 49 + Height = 17 + Caption = #50668#51088 + TabOrder = 6 + end +end diff --git a/20_Task/M1/shinsunghoon/20_Function/FunctionForm.pas b/20_Task/M1/shinsunghoon/20_Function/FunctionForm.pas new file mode 100644 index 0000000..0ca2a93 --- /dev/null +++ b/20_Task/M1/shinsunghoon/20_Function/FunctionForm.pas @@ -0,0 +1,170 @@ +unit FunctionForm; +/////////////////////////////////// ³ªÀÌ ÀԷ¾ÈÇҽà ¿¡·¯ ///////////////////////////// +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; + +type + TForm2 = class(TForm) + Label1: TLabel; + edtName: TEdit; + Button1: TButton; + edtAge: TEdit; + Label2: TLabel; + Button2: TButton; + Label3: TLabel; + Button3: TButton; + rdoMan: TRadioButton; + rdoWoman: TRadioButton; + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + private + // ÀÌ Æû(À¯´Ö)¿¡¼­ »ç¿ëÇÏ´Â º¯¼ö¿Í ÇÔ¼ö¸¦ ¼±¾ð + function GetNameMsg(AName: string): string; + + function GetAgeMsg(AName: string; AAge: Integer): string; + { TODO : + (2-1) GetUserInfoMsg ÇÔ¼ö¸¦ ¼±¾ð + ÆÄ¶ó¸ÞÅÍ: À̸§(¹®ÀÚ), ³ªÀÌ(¼ýÀÚ), ³²ÀÚ¿©ºÎ(Boolean) + ¹Ýȯ°ª: ¹®ÀÚ¿­(¸Þ½ÃÁö) + (2-2) ÇÔ¼ö ¼±¾ð ÈÄ Ctrl + Shift + C¸¦ ´­·¯ ±¸ÇöºÎ »ý¼º + } + function GetUserInfoMsg(AName: string; AAge: Integer; AIsMan: Boolean): string; //¼ºº°±¸ºÐ ÇÔ¼ö ¼±¾ð + + public + // ´Ù¸¥ À¯´Ö¿¡¼­ ÂüÁ¶ÇÒ ¼ö ÀÖ´Â º¯¼ö¿Í ÇÔ¼ö ¼±¾ð + end; + +var + Form2: TForm2; + +implementation + +{$R *.dfm} + +function TForm2.GetNameMsg(AName: string): string; //À̸§ ÇÔ¼ö ±¸ÇöºÎ +var + Msg: string; //¸Þ½ÃÁö º¯¼ö ¼±¾ð +begin + Msg := '¹Ý°©½À´Ï´Ù. '; //Àλ縻 ¸Þ½ÃÁö + Msg := Msg + AName + '´Ô'; // + + Result := Msg; //¹Ýȯ°ª +end; + +function TForm2.GetUserInfoMsg(AName: string; AAge: Integer; //¼ºº°È®ÀÎ ÇÔ¼ö ±¸ÇöºÎ + AIsMan: Boolean): string; +var + Msg, Gender: string; //¸Þ½ÃÁö, ¼ºº° º¯¼ö ¼±¾ð +begin +{ TODO : + (2-2) GetUserInfoMsg ÇÔ¼öÀÇ ±¸ÇöºÎ¿¡´Â + Àλ縻 + ¼ºÀο©ºÎ È®ÀÎ + ¼ºº°È®ÀÎ ¸Þ½ÃÁö¸¦ ¹ÝȯÇϵµ·Ï ÀÛ¼ºÇϼ¼¿ä. + ÀÌ¹Ì ±¸ÇöµÈ GetNameMsg, GetAgeMsg µîÀ» Àç»ç¿ëÇϼ¼¿ä. +} + Msg := GetAgeMsg(AName,AAge); //ÇÔ¼ö È£Ãâ + Msg := Msg + #13#10; //ÁÙ¹Ù²Þ + + if AIsMan then //¼ºº°È®ÀÎ Á¶°Ç¹® + Gender := '³²ÀÚ' // + else // + Gender := '¿©ÀÚ'; // + + Msg := Msg + AName + '´ÔÀº ' + Gender + 'ÀÔ´Ï´Ù.'; //¼ºº°È®ÀÎ ¸Þ½ÃÁö + + Result := Msg; //¹Ýȯ°ª +end; + +function TForm2.GetAgeMsg(AName: string; AAge: Integer): string; +var + Msg, Adult: string; +begin + Msg := GetNameMsg(AName); // Àλ縻 Ç¥½Ã´Â Àç»ç¿ë + Msg := Msg + #13#10; // ÇÑÁÙ ³»·Á¾²±â(Àϸí ij¸®Áö¸®ÅÏ) + +{ TODO : + (1) Msg º¯¼ö¿¡ '(AName)´ÔÀº (AAge)¼¼·Î (¼ºÀÎ/¹Ì¼º³â)ÀÔ´Ï´Ù.' ¸Þ½ÃÁö Ãß°¡ + if ¹®À» ÀÌ¿ëÇØ 20¼¼ ÀÌ»ó(>=)ÀÎ °æ¿ì ¼ºÀÎÀ¸·Î ÆÇ´Ü + ¹®ÀÚ¿­°ú º¯¼ö¸¦ Á¶ÇÕ(´õÇϱâ) Çϼ¼¿ä. + Á¤¼ö´Â ¹®ÀÚ·Î º¯È¯(IntToStr)Çϼ¼¿ä. + } + if AAge >= 20 then //¼ºÀο©ºÎ Á¶°Ç¹® + Adult := '¼ºÀÎ' // + else // + Adult := '¹Ì¼º³â'; // + + Msg := Msg + AName + '´ÔÀº ' + IntToStr(AAge) + '¼¼·Î ' + Adult + 'ÀÔ´Ï´Ù.'; //¼ºÀο©ºÎ È®ÀÎ ¸Þ½ÃÁö + + Result := Msg; //¹Ýȯ°ª +end; + +procedure TForm2.Button1Click(Sender: TObject); +var + Name, Msg: string; +begin + Name := edtName.Text; + + Msg := GetNameMsg(Name); + + ShowMessage(Msg); +end; + +procedure TForm2.Button2Click(Sender: TObject); +var + Name, Msg: string; + Age: Integer; +begin + Name := edtName.Text; + + if edtAge.Text = '' then //³ªÀÌÈ®ÀÎ Á¶°Ç¹® + begin //³ªÀ̾ÈÀûÀ»½Ã ¿¡·¯Ã³¸® + showmessage('³ªÀ̸¦ ÀÔ·ÂÇϼ¼¿ä.'); + exit ; + end + else + begin + Age := StrToInt(edtAge.Text); + + Msg := GetAgeMsg(Name, Age); + + ShowMessage(Msg); + end; +end; + +procedure TForm2.Button3Click(Sender: TObject); +var + Name, Msg: string; + Age: Integer; + IsMan: Boolean; +begin + Name := edtName.Text; + //³ªÀÌÈ®ÀÎ Á¶°Ç¹® + if edtAge.Text = '' then //³ªÀ̾ÈÀûÀ»½Ã ¿¡·¯Ã³¸® + begin + showmessage('³ªÀ̸¦ ÀÔ·ÂÇϼ¼¿ä.'); + exit ; + end + else + begin + Age := StrToInt(edtAge.Text); //³ªÀÌ ¾øÀ»½Ã ¿¡·¯ + IsMan := rdoMan.Checked; + { TODO : + (2) Àλ縻 + ¼ºÀο©ºÎ È®ÀÎ + ¼ºº°È®ÀÎ ¸Þ½ÃÁö¸¦ + ¹ÝȯÇÏ´Â ÇÔ¼ö(GetUserInfoMsg)¸¦ ÀÛ¼ºÇϼ¼¿ä + Msg := GetUserInfoMsg(Name, Age, IsMan); + } + + Msg := GetUserInfoMsg(Name, Age, IsMan); //º¯¼ö¿¡ ÇÔ¼ö¸¦ È£ÃâÇØ »ðÀÔ. + + ShowMessage(Msg); + + + end; + +end; + + +end. diff --git a/20_Task/M1/20_Function/FunctionSample.dpr b/20_Task/M1/shinsunghoon/20_Function/FunctionSample.dpr similarity index 100% rename from 20_Task/M1/20_Function/FunctionSample.dpr rename to 20_Task/M1/shinsunghoon/20_Function/FunctionSample.dpr diff --git a/20_Task/M1/20_Function/FunctionSample.dproj b/20_Task/M1/shinsunghoon/20_Function/FunctionSample.dproj similarity index 100% rename from 20_Task/M1/20_Function/FunctionSample.dproj rename to 20_Task/M1/shinsunghoon/20_Function/FunctionSample.dproj diff --git a/20_Task/M1/20_Function/FunctionSample.res b/20_Task/M1/shinsunghoon/20_Function/FunctionSample.res similarity index 100% rename from 20_Task/M1/20_Function/FunctionSample.res rename to 20_Task/M1/shinsunghoon/20_Function/FunctionSample.res diff --git a/20_Task/M1/30_Array/ArrayForm.dfm b/20_Task/M1/shinsunghoon/30_Array/ArrayForm.dfm similarity index 100% rename from 20_Task/M1/30_Array/ArrayForm.dfm rename to 20_Task/M1/shinsunghoon/30_Array/ArrayForm.dfm diff --git a/20_Task/M1/30_Array/ArrayForm.pas b/20_Task/M1/shinsunghoon/30_Array/ArrayForm.pas similarity index 56% rename from 20_Task/M1/30_Array/ArrayForm.pas rename to 20_Task/M1/shinsunghoon/30_Array/ArrayForm.pas index c495570..0eeeda0 100644 --- a/20_Task/M1/30_Array/ArrayForm.pas +++ b/20_Task/M1/shinsunghoon/30_Array/ArrayForm.pas @@ -15,7 +15,7 @@ TForm3 = class(TForm) procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); private - FNumArr: array[0..9] of Integer; + FNumArr: array[0..9] of Integer; //[1,2,3,4,5,6,7,8,9,10] ÃÑ 10°³ÀÇ ¹è¿­ »ý¼º procedure InitArray; function GetArraySum: Integer; @@ -42,8 +42,8 @@ procedure TForm3.InitArray; I: Integer; begin // ¹è¿­(FNumArr)ÀÇ ±æÀ̸¸Å­ ¹Ýº¹Çϸç ÀÓÀÇÀÇ °ª(1~100)À» ¼³Á¤ - for I := 0 to Length(FNumArr) - 1 do - FNumArr[I] := Random(100); + for I := 0 to Length(FNumArr) - 1 do //º¯¼ö := (ÃʱⰪ) to ¹è¿­ - 1 + FNumArr[I] := Random(100); //For¹®À» ÅëÇØ ¹è¿­¿¡ 0~100Áß 1°³¾¿ »ðÀÔ end; procedure TForm3.Button1Click(Sender: TObject); @@ -64,6 +64,8 @@ procedure TForm3.Button1Click(Sender: TObject); (1) for ¹®À» ÀÌ¿ëÇØ ¹è¿­ÀÇ ³»¿ëÀ» Ãâ·ÂÇϼ¼¿ä. ¹è¿­ÀÇ Å©±â º¯°æµÇµµ µ¿ÀÛÇϵµ·Ï ¹Ýº¹ÀÇ ³¡Àº Length(FNumArr) - 1·Î ¼³Á¤ ¿¹> for I := 0 to Length(FNumArr) - 1 do } + for I := 0 to Length(FNumArr) - 1 do // + Memo1.Lines.Add('- ' + IntToStr(FNumArr[I])); //For¹®À» ÅëÇØ ¹è¿­À» ¸Þ¸ð¿¡ 1°³¾¿ Ãâ·Â Memo1.Lines.Add('¹è¿­ÀÇ ÇÕÀº ' + IntToStr(Sum) + ' ÀÔ´Ï´Ù.'); Memo1.Lines.Add('¹è¿­ÀÇ ÃÖ´ë°ªÀº ' + IntToStr(MaxNum) + ' ÀÔ´Ï´Ù.'); @@ -75,8 +77,10 @@ function TForm3.GetArraySum: Integer; begin Sum := 0; { TODO : (2) for ¹®À» ÀÌ¿ëÇØ ¹è¿­ÀÇ °ªÀ» ¸ðµÎ ´õÇØ ¹ÝȯÇϵµ·Ï ±¸Çö } + for I := 0 to Length(FNumArr) -1 do // + Sum := Sum + (FNumArr[I]); //For¹®À» ÅëÇØ Sumº¯¼ö¿¡ ¹è¿­À» ´õÇÏ¸ç ½×±â - Result := Sum; + Result := Sum; //¹Ýȯ°ª end; function TForm3.GetArrayMaxNum: Integer; @@ -87,14 +91,16 @@ function TForm3.GetArrayMaxNum: Integer; { TODO : (3) for ¹®À» ÀÌ¿ëÇØ ¹è¿­ÀÇ °ª Áß °¡Àå Å« °ªÀ» ¹ÝȯÇϵµ·Ï ±¸Çö if ¹®À» ÀÌ¿ëÇØ ¼ýÀÚ¸¦ ºñ±³ } + for I := 0 to Length(FNumArr) -1 do //¹è¿­¾ÈÀÇ ¼ýÀÚ¸¦ Çϳª¾¿ ºñ±³ + if MaxNum <= FNumArr[I] then //ÃÖ´ë°ª Á¶°Ç¹® + MaxNum := FNumArr[I]; // Result := MaxNum; end; procedure TForm3.Button2Click(Sender: TObject); var - I, - CountOver, CountUnder: Integer; + I, CountOver, CountUnder: Integer; begin CountOver := 0; CountUnder := 0; @@ -103,9 +109,13 @@ procedure TForm3.Button2Click(Sender: TObject); 50 ÀÌ»ó(>=)ÀÎ °æ¿ì CountOver 1 Áõ°¡ 50 ¹Ì¸¸(<)ÀÎ °æ¿ì CountUnder 1 Áõ°¡ Çϵµ·Ï ±¸Çö } - + for I := 0 to Length(FNumArr) -1 do // + if FNumArr[I] >= 50 then //50ÀÌ»ó ¹Ì¸¸ Á¶°Ç¹® + Inc(CountOver) //Inc(º¯¼ö) = 1¾¿ Áõ°¡ÇÑ´Ù. + else // + Inc(CountUnder); // + Memo1.Lines.Add('50 ÀÌ»óÀÎ ¼öÀÇ °¹¼ö: ' + IntToStr(CountOver)); Memo1.Lines.Add('50 ¹Ì¸¸ÀÎ ¼öÀÇ °¹¼ö: ' + IntToStr(CountUnder)); end; - end. diff --git a/20_Task/M1/30_Array/ArraySample.dpr b/20_Task/M1/shinsunghoon/30_Array/ArraySample.dpr similarity index 100% rename from 20_Task/M1/30_Array/ArraySample.dpr rename to 20_Task/M1/shinsunghoon/30_Array/ArraySample.dpr diff --git a/20_Task/M1/30_Array/ArraySample.dproj b/20_Task/M1/shinsunghoon/30_Array/ArraySample.dproj similarity index 100% rename from 20_Task/M1/30_Array/ArraySample.dproj rename to 20_Task/M1/shinsunghoon/30_Array/ArraySample.dproj diff --git a/20_Task/M1/30_Array/ArraySample.res b/20_Task/M1/shinsunghoon/30_Array/ArraySample.res similarity index 100% rename from 20_Task/M1/30_Array/ArraySample.res rename to 20_Task/M1/shinsunghoon/30_Array/ArraySample.res diff --git a/20_Task/M1/DelphiStudyGroup.groupproj b/20_Task/M1/shinsunghoon/DelphiStudyGroup.groupproj similarity index 100% rename from 20_Task/M1/DelphiStudyGroup.groupproj rename to 20_Task/M1/shinsunghoon/DelphiStudyGroup.groupproj diff --git a/20_Task/M2/Calculator.dpr b/20_Task/M2/Calculator.dpr new file mode 100644 index 0000000..d5a8f48 --- /dev/null +++ b/20_Task/M2/Calculator.dpr @@ -0,0 +1,17 @@ +program Calculator; + +uses + Vcl.Forms, + UCalculator in 'UCalculator.pas' {Form1}, + Vcl.Themes, + Vcl.Styles; + +{$R *.res} + +begin + Application.Initialize; + Application.MainFormOnTaskbar := True; + TStyleManager.TrySetStyle('Auric'); + Application.CreateForm(TForm1, Form1); + Application.Run; +end. diff --git a/20_Task/M2/Calculator.dproj b/20_Task/M2/Calculator.dproj new file mode 100644 index 0000000..35841ba --- /dev/null +++ b/20_Task/M2/Calculator.dproj @@ -0,0 +1,621 @@ + + + {3E7FF7F4-93EB-4625-911F-43C8A056852D} + 18.6 + VCL + Calculator.dpr + True + Release + Win32 + 1 + Application + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + .\$(Platform)\$(Config) + .\$(Platform)\$(Config) + false + false + false + false + false + System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) + $(BDS)\bin\delphi_PROJECTICON.ico + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + Calculator + Amakrits|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Amakrits.vsf;"Amethyst Kamri|VCLSTYLE|$(BDSCOMMONDIR)\Styles\AmethystKamri.vsf";"Aqua Graphite|VCLSTYLE|$(BDSCOMMONDIR)\Styles\AquaGraphite.vsf";"Aqua Light Slate|VCLSTYLE|$(BDSCOMMONDIR)\Styles\AquaLightSlate.vsf";Auric|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Auric.vsf;Carbon|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Carbon.vsf;"Charcoal Dark Slate|VCLSTYLE|$(BDSCOMMONDIR)\Styles\CharcoalDarkSlate.vsf";"Cobalt XEMedia|VCLSTYLE|$(BDSCOMMONDIR)\Styles\CobaltXEMedia.vsf";"Cyan Dusk|VCLSTYLE|$(BDSCOMMONDIR)\Styles\CyanDusk.vsf";"Cyan Night|VCLSTYLE|$(BDSCOMMONDIR)\Styles\CyanNight.vsf";"Emerald Light Slate|VCLSTYLE|$(BDSCOMMONDIR)\Styles\EmeraldLightSlate.vsf";Glossy|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Glossy.vsf;Glow|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Glow.vsf;"Golden Graphite|VCLSTYLE|$(BDSCOMMONDIR)\Styles\GoldenGraphite.vsf";"Iceberg Classico|VCLSTYLE|$(BDSCOMMONDIR)\Styles\IcebergClassico.vsf";"Lavender Classico|VCLSTYLE|$(BDSCOMMONDIR)\Styles\LavenderClassico.vsf";Light|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Light.vsf;Luna|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Luna.vsf;"Metropolis UI Black|VCLSTYLE|$(BDSCOMMONDIR)\Styles\MetropolisUIBlack.vsf";"Metropolis UI Blue|VCLSTYLE|$(BDSCOMMONDIR)\Styles\MetropolisUIBlue.vsf";"Metropolis UI Dark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\MetropolisUIDark.vsf";"Metropolis UI Green|VCLSTYLE|$(BDSCOMMONDIR)\Styles\MetropolisUIGreen.vsf";Obsidian|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Obsidian.vsf;"Onyx Blue|VCLSTYLE|$(BDSCOMMONDIR)\Styles\OnyxBlue.vsf";"Ruby Graphite|VCLSTYLE|$(BDSCOMMONDIR)\Styles\RubyGraphite.vsf";"Sapphire Kamri|VCLSTYLE|$(BDSCOMMONDIR)\Styles\SapphireKamri.vsf";Silver|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Silver.vsf;Sky|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Sky.vsf;"Slate Classico|VCLSTYLE|$(BDSCOMMONDIR)\Styles\SlateClassico.vsf";"Smokey Quartz Kamri|VCLSTYLE|$(BDSCOMMONDIR)\Styles\SmokeyQuartzKamri.vsf";"Tablet Light|VCLSTYLE|$(BDSCOMMONDIR)\Styles\TabletLight.vsf";TabletDark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\TabletDark.vsf;"Turquoise Gray|VCLSTYLE|$(BDSCOMMONDIR)\Styles\TurquoiseGray.vsf";Windows10|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10.vsf;"Windows10 Blue|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10Blue.vsf";"Windows10 Dark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10Dark.vsf";"Windows10 Green|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10Green.vsf";"Windows10 Purple|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10Purple.vsf";"Windows10 SlateGray|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10SlateGray.vsf" + + + DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;svnui;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;vclib;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;ibxpress;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;ibxbindings;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + + + DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;vclib;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;ibxpress;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;ibxbindings;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage) + + + DEBUG;$(DCC_Define) + true + false + true + true + true + + + false + true + PerMonitorV2 + true + 1033 + + + false + RELEASE;$(DCC_Define) + 0 + 0 + + + true + PerMonitorV2 + + + + MainSource + + +
Form1
+ dfm +
+ + Cfg_2 + Base + + + Base + + + Cfg_1 + Base + +
+ + Delphi.Personality.12 + Application + + + + Calculator.dpr + + + Embarcadero C++Builder Office 2000 Servers Package + Embarcadero C++Builder Office XP Servers Package + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components + + + + + + Calculator.exe + true + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + classes + 1 + + + + + res\xml + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\armeabi + 1 + + + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + + + res\values + 1 + + + + + res\values-v21 + 1 + + + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + Contents\MacOS + 1 + .framework + + + Contents\MacOS + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + Contents\Resources\StartUp\ + 0 + + + Contents\Resources\StartUp\ + 0 + + + 0 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + 1 + + + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + + + Contents + 1 + + + Contents + 1 + + + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + Contents\MacOS + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + + + + + + + + + + True + False + + + 12 + + + + +
diff --git a/20_Task/M2/Calculator.dproj.local b/20_Task/M2/Calculator.dproj.local new file mode 100644 index 0000000..5df0110 --- /dev/null +++ b/20_Task/M2/Calculator.dproj.local @@ -0,0 +1,13 @@ + + + + 1899-12-30 00:00:00.000.545,C:\Users\sinwn\OneDrive\바탕 화면\계산기\UCalculator.dfm=C:\Users\sinwn\OneDrive\문서\Embarcadero\Studio\Projects\Unit1.dfm + 1899-12-30 00:00:00.000.873,=C:\Users\sinwn\OneDrive\문서\Embarcadero\Studio\Projects\Unit1.pas + 1899-12-30 00:00:00.000.689,=C:\Users\sinwn\OneDrive\문서\Embarcadero\Studio\Projects\Unit1.pas + 1899-12-30 00:00:00.000.545,C:\Users\sinwn\OneDrive\바탕 화면\계산기\UCalculator.pas=C:\Users\sinwn\OneDrive\문서\Embarcadero\Studio\Projects\Unit1.pas + 1899-12-30 00:00:00.000.197,C:\Users\sinwn\OneDrive\바탕 화면\계산기\Calculator.dproj=C:\Users\sinwn\OneDrive\문서\Embarcadero\Studio\Projects\Project1.dproj + + + + + diff --git a/20_Task/M2/Calculator.identcache b/20_Task/M2/Calculator.identcache new file mode 100644 index 0000000..54c7889 Binary files /dev/null and b/20_Task/M2/Calculator.identcache differ diff --git a/20_Task/M2/Calculator.res b/20_Task/M2/Calculator.res new file mode 100644 index 0000000..8d40fec Binary files /dev/null and b/20_Task/M2/Calculator.res differ diff --git a/20_Task/M2/Calculator.stat b/20_Task/M2/Calculator.stat new file mode 100644 index 0000000..511d204 --- /dev/null +++ b/20_Task/M2/Calculator.stat @@ -0,0 +1,10 @@ +[Stats] +EditorSecs=38257 +DesignerSecs=1470 +InspectorSecs=680 +CompileSecs=275333 +OtherSecs=861 +StartTime=2019-07-02 ¿ÀÈÄ 10:37:54 +RealKeys=0 +EffectiveKeys=0 +DebugSecs=17265 diff --git a/20_Task/M2/UCalculator.dfm b/20_Task/M2/UCalculator.dfm new file mode 100644 index 0000000..3903268 --- /dev/null +++ b/20_Task/M2/UCalculator.dfm @@ -0,0 +1,334 @@ +object Form1: TForm1 + Left = 0 + Top = 0 + BorderStyle = bsSingle + Caption = #44228#49328#44592 + ClientHeight = 444 + ClientWidth = 260 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + PixelsPerInch = 96 + TextHeight = 13 + object Panel: TPanel + Left = 0 + Top = 0 + Width = 260 + Height = 444 + Align = alClient + Color = clWhite + ParentBackground = False + TabOrder = 0 + object Btn_Num1: TButton + Tag = 1 + Left = 3 + Top = 153 + Width = 60 + Height = 70 + Caption = '1' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + OnClick = Btn_Num1Click + end + object Edit1: TEdit + Left = 3 + Top = 5 + Width = 246 + Height = 70 + BiDiMode = bdLeftToRight + BorderStyle = bsNone + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -27 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 10 + NumbersOnly = True + ParentBiDiMode = False + ParentFont = False + TabOrder = 1 + OnKeyDown = Edit1KeyDown + end + object Btn_Num2: TButton + Tag = 2 + Left = 65 + Top = 153 + Width = 60 + Height = 70 + Caption = '2' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 2 + OnClick = Btn_Num1Click + end + object Btn_Num3: TButton + Tag = 3 + Left = 126 + Top = 153 + Width = 60 + Height = 70 + Caption = '3' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + OnClick = Btn_Num1Click + end + object Btn_Num4: TButton + Tag = 4 + Left = 3 + Top = 225 + Width = 60 + Height = 70 + Caption = '4' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + OnClick = Btn_Num1Click + end + object Btn_Num5: TButton + Tag = 5 + Left = 65 + Top = 225 + Width = 60 + Height = 70 + Caption = '5' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 5 + OnClick = Btn_Num1Click + end + object Btn_Num6: TButton + Tag = 6 + Left = 127 + Top = 225 + Width = 60 + Height = 70 + Caption = '6' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 6 + OnClick = Btn_Num1Click + end + object Btn_Num7: TButton + Tag = 7 + Left = 3 + Top = 297 + Width = 60 + Height = 70 + Caption = '7' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 7 + OnClick = Btn_Num1Click + end + object Btn_Num8: TButton + Tag = 8 + Left = 65 + Top = 297 + Width = 60 + Height = 70 + Caption = '8' + Font.Charset = DEFAULT_CHARSET + Font.Color = clAqua + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 8 + OnClick = Btn_Num1Click + end + object Btn_Num9: TButton + Tag = 9 + Left = 127 + Top = 297 + Width = 60 + Height = 70 + Caption = '9' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 9 + OnClick = Btn_Num1Click + end + object Btn_Num0: TButton + Tag = 10 + Left = 3 + Top = 369 + Width = 60 + Height = 70 + Caption = '0' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 10 + OnClick = Btn_Num1Click + end + object Btn_Dot: TButton + Left = 65 + Top = 369 + Width = 60 + Height = 70 + Caption = '.' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 11 + OnClick = Btn_DotClick + end + object Btn_Result: TButton + Left = 127 + Top = 369 + Width = 60 + Height = 70 + Caption = '=' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 12 + OnClick = Btn_ResultClick + end + object Btn_Sum: TButton + Tag = 11 + Left = 189 + Top = 153 + Width = 60 + Height = 70 + Caption = '+' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 13 + OnClick = Btn_SumClick + end + object Btn_Sub: TButton + Tag = 12 + Left = 189 + Top = 225 + Width = 60 + Height = 70 + Caption = '-' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 14 + OnClick = Btn_SubClick + end + object Btn_Mul: TButton + Tag = 13 + Left = 189 + Top = 297 + Width = 60 + Height = 70 + Caption = '*' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 15 + OnClick = Btn_SumClick + end + object Btn_Div: TButton + Tag = 14 + Left = 189 + Top = 369 + Width = 60 + Height = 70 + Caption = '/' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 16 + OnClick = Btn_SumClick + end + object Btn_CE: TButton + Left = 189 + Top = 81 + Width = 60 + Height = 70 + Caption = 'CE' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 17 + OnClick = Btn_CEClick + end + object Btn_BackSpace: TButton + Left = 127 + Top = 81 + Width = 60 + Height = 70 + BiDiMode = bdLeftToRight + Caption = 'C' + DoubleBuffered = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -20 + Font.Name = 'Tahoma' + Font.Style = [] + ParentBiDiMode = False + ParentDoubleBuffered = False + ParentFont = False + TabOrder = 18 + end + end +end diff --git a/20_Task/M2/UCalculator.pas b/20_Task/M2/UCalculator.pas new file mode 100644 index 0000000..5291c56 --- /dev/null +++ b/20_Task/M2/UCalculator.pas @@ -0,0 +1,249 @@ +unit UCalculator; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls; + +type + TForm1 = class(TForm) + Btn_Num1: TButton; + Btn_Num2: TButton; + Btn_Num3: TButton; + Btn_Num4: TButton; + Btn_Num5: TButton; + Btn_Num6: TButton; + Btn_Num7: TButton; + Btn_Num8: TButton; + Btn_Num9: TButton; + Btn_Num0: TButton; + Btn_Dot: TButton; + Btn_Result: TButton; + Btn_Sum: TButton; + Btn_Sub: TButton; + Btn_Mul: TButton; + Btn_Div: TButton; + Btn_CE: TButton; + Btn_BackSpace: TButton; + Edit1: TEdit; + Panel: TPanel; + procedure Btn_Num1Click(Sender: TObject); + procedure Btn_SumClick(Sender: TObject); + procedure Btn_ResultClick(Sender: TObject); + procedure Btn_CEClick(Sender: TObject); + procedure Btn_DotClick(Sender: TObject); + procedure Btn_SubClick(Sender: TObject); + function Add( Num1 , Num2 : Real) : Extended; Overload; + procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); //°è»ê½Ä + + private + { Private declarations } + public + { Public declarations } + end; + +var + Form1: TForm1; + Num1, Num2 : Real; + Str : Integer; + //Str(¿¬»êÀÚ) + Dot_Check, Sub_Check, Oper_Check, Cal_Check: Boolean; + //Dot_Check(.ÀÌÁßŬ¸¯ È®ÀÎ), Oper_Check(¿¬»êÀÚ ÀÌÁßŬ¸¯), Sub_Check(À½¼ö È®ÀÎ) + Max : String; + //Edit1.MaxLength + +implementation + +{$R *.dfm} +procedure TForm1.Btn_CEClick(Sender: TObject); //¸ðµÎ ¸®¼Â +begin + Edit1.Text := ''; + Num1 := 0; + Num2 := 0; + Str := 0; + Dot_Check := False; + Sub_Check := False; + Max := ''; +end; + +procedure TForm1.Btn_DotClick(Sender: TObject); +begin + if (Edit1.Text = '') Or (Edit1.Text = '-') then //(Erroró¸®) ¼ýÀÚ ¾øÀÌ "." Ŭ¸¯ + begin + ShowMessage('¼ýÀÚ¸¦ ¸ÕÀú ÀÔ·ÂÇϼ¼¿ä.'); + Exit; + end; + if Dot_Check = False then //(Erroró¸®) "." ÀÌÁßŬ¸¯ + begin + Edit1.Text := Edit1.Text + (Sender as TButton).Caption; + Dot_Check := True; + end + else + Showmessage('. ´Â 1¹ø¸¸ ÀÔ·ÂÇϼ¼¿ä.'); +end; + +procedure TForm1.Btn_Num1Click(Sender: TObject); +begin + if Max = '1111111111' then //Edit1.MaxLength + begin + ShowMessage('ÀԷ¹üÀ§¸¦ ÃʰúÇÏ¿´½À´Ï´Ù.'); + Exit; + end; + + if Cal_Check then // " = " ÀÌÈÄ ¼ýÀÚ ÀÔ·Â + begin + Edit1.Text := ''; + Cal_Check := False; + end; + Edit1.Text := Edit1.Text + (Sender as TButton).Caption; //¼ýÀÚ ÀÔ·Â + Oper_Check := False; //(Erroró¸®)¿¬»êÀÚ 2¹øÅ¬¸¯½Ã + + Max := Max + '1'; //Edit1.MaxLength + Edit1.SetFocus; +end; + +procedure TForm1.Btn_ResultClick(Sender: TObject); //°á°ú +begin + try + Num1 := StrToFloat(Edit1.Text); //ù¼ýÀÚ ÀúÀå + if Str <> 0 then + begin + Num2 := (Add(Num1, Num2)); //°è»ê ÇÔ¼ö È£Ãâ + Edit1.Text := FloatToStr(Num2); + Num1 := 0; + Str := 0; + Cal_Check := True; + end; + + Dot_Check := False; //¼Ò¼öÁ¡ È®ÀÎ + Sub_Check := False; //À½¼ö È®ÀÎ + Max := ''; //Edit1.MaxLength + except + if (Edit1.Text = '') And (Num1 = 0) And (Num2 = 0) then //(Erroró¸®) ¼ýÀÚ ¾øÀÌ = ÀԷ½à + begin + Showmessage('¼ýÀÚ¸¦ ÀÔ·ÂÇϼ¼¿ä.'); + Exit; + end; + + if (Num1 = 0) And (Str = 99) then //(Erroró¸®) 12 / 0 = + begin + ShowMessage('0Àº ³ª´­¼ö ¾ø½À´Ï´Ù.'); + Btn_CEClick(Sender); + Exit; + end; + + end; + +end; + +procedure TForm1.Btn_SubClick(Sender: TObject); +begin + if Edit1.Text = '-' then //"-" ¿¬¼Ó 2¹ø ÀԷ½à + begin + ShowMessage('¼ýÀÚ¸¦ ÀÔ·ÂÇϼ¼¿ä'); + Exit; + end; + + if (Edit1.Text <> '')then //»©±â ÀÔ·Â + begin + Btn_SumClick(Sender); + Exit; + end; + + if Sub_Check = False then //À½¼ö ÀÔ·Â + begin + Edit1.Text := Edit1.Text + (Sender as TButton).Caption; + Sub_Check := True; + end + else + begin + Showmessage('- ´Â 1¹ø¸¸ ÀÔ·ÂÇϼ¼¿ä.'); //(Erroró¸®) "-" ÀÌÁßŬ¸¯ + Exit; + end +end; + +procedure TForm1.Btn_SumClick(Sender: TObject); //¿¬»êÀÚ Å¬¸¯ +begin + try + if Oper_Check then //(Erroró¸®) ¿¬»êÀÚ ÀÌÁßŬ¸¯ + begin + ShowMessage('¿¬»êÀÚ´Â Çѹø¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù.'); + Num2 := 0; + Exit; + end; + + if Num1 = 0 then + begin + Btn_ResultClick(Sender); //Btn_Result.Click <> Btn_ResultClick(Sender) ´Ù¸§!!! + case (Sender as TButton).tag of //¿¬»êÀÚ ±âÈ£ÁöÁ¤ //////////////////////////////////////// + 11 : Str := 96; + 12 : Str := 97; + 13 : Str := 98; + 14 : Str := 99; + end; + + end; + Num1 := StrToFloat(Edit1.Text); + Num2 := Num1; //óÀ½ º¯¼ö°ªÀ» µÎ¹øÂ° º¯¼ö·Î À̵¿ + Num1 := 0; //óÀ½ º¯¼ö°ª ¸®¼Â + Edit1.Text := ''; //´ÙÀ½ ¼ýÀÚ ÀÔ·Â À§ÇØ + + Dot_Check := False; //¼Ò¼öÁ¡ + Sub_Check := False; //À½¼ö + Oper_Check := True; //¿¬»êÀÚ 2¹øÅ¬¸¯ + Max := ''; //Edit1.MaxLength + except + On E : Exception Do //¾Ë¼ö ¾ø´Â ¿¡·¯¸¦ À§ÇØ + ShowMessage(E.Message+'°ü¸®ÀÚ¿¡°Ô ¹®ÀÇÇϼ¼¿ä.'); + end; + +end; + +procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin +// if (Key < #96) or (Key > #111) or (Key = #8) +// or (Key = #13) then //¼ýÀÚ¸¸ ÀÔ·Â °¡´É +// begin + case Key of +// vk_Back : Btn_CE.OnClick( Sender as TWincontrol); + vk_Return : Btn_Result.OnClick( Sender as TWincontrol); +// vk_32 : Btn_Num0.OnClick( Sender as TWincontrol); +// vk_1 : Btn_Num1.OnClick( Sender as TWincontrol); +// vk_32 : Btn_Num2.OnClick( Sender as TWincontrol); +// 33 : Btn_Num3.OnClick( Sender as TWincontrol); +// 34 : Btn_Num4.OnClick( Sender as TWincontrol); +// 35 : Btn_Num5.OnClick( Sender as TWincontrol); +// 36 : Btn_Num6.OnClick( Sender as TWincontrol); +// 37 : Btn_Num7.OnClick( Sender as TWincontrol); +// 38 : Btn_Num8.OnClick( Sender as TWincontrol); +// 39 : Btn_Num9.OnClick( Sender as TWincontrol); +// VK_ADD : Btn_Sum.OnClick( Sender as TWincontrol); +// VK_SUBTRACT : Btn_Sub.OnClick( Sender as TWincontrol); +// VK_MULTIPLY : Btn_Mul.OnClick( Sender as TWincontrol); +// VK_DECIMAL : Btn_Dot.OnClick( Sender as TWincontrol); +// VK_DIVIDE : Btn_Div.OnClick( Sender as TWincontrol); + end; +end; + +function TForm1.Add(Num1, Num2: Real ) : Extended; //°è»ê ÇÔ¼ö +begin +Try + case Str of + 96 : result := Num2 + Num1; //Á¤¼öÇü ´õÇϱâ + 97 : result := Num2 - Num1; //Á¤¼öÇü »©±â±â + 98 : result := Num2 * Num1; //Á¤¼öÇü °öÇϱâ + 99 : result := Num2 / Num1; //½Ç¼öÇü ³ª´©±â + end; +Except + On E : Exception do + begin + ShowMessage (E.Message+'°ü¸®ÀÚ¿¡°Ô ¹®ÀÇÇϼ¼¿ä.'); //¾Ë¼ö ¾ø´Â ¿¡·¯¸¦ À§ÇØ + Btn_CE.Click; + end; +End; + +end; + +end. diff --git "a/40_ \355\224\204\353\241\234\354\240\235\355\212\270/shinsunghoon" "b/40_ \355\224\204\353\241\234\354\240\235\355\212\270/shinsunghoon" new file mode 100644 index 0000000..8b13789 --- /dev/null +++ "b/40_ \355\224\204\353\241\234\354\240\235\355\212\270/shinsunghoon" @@ -0,0 +1 @@ + diff --git a/40_Project/ProjectGroup1.groupproj b/40_Project/ProjectGroup1.groupproj new file mode 100644 index 0000000..17188cb --- /dev/null +++ b/40_Project/ProjectGroup1.groupproj @@ -0,0 +1,72 @@ + + + {0E30C847-3B29-48BE-B826-8E3C19B96F05} + + + + + + + + + + + + + + + + + Default.Personality.12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/40_Project/ProjectGroup1.groupproj.local b/40_Project/ProjectGroup1.groupproj.local new file mode 100644 index 0000000..1d1950b --- /dev/null +++ b/40_Project/ProjectGroup1.groupproj.local @@ -0,0 +1,7 @@ + + + + + + + diff --git a/40_Project/ProjectGroup1_prjgroup.tvsconfig b/40_Project/ProjectGroup1_prjgroup.tvsconfig new file mode 100644 index 0000000..c8f2834 --- /dev/null +++ b/40_Project/ProjectGroup1_prjgroup.tvsconfig @@ -0,0 +1,2 @@ + + \ No newline at end of file