Q&A

  • 계산기를 한번 만들고 픈데 답변좀......
지금 델파이를 배우기 시잔한 왕초짭니다..

근데 우연한 계기로 계산기를 만들어보게 되었는데 잘 되지가 않아서요

우선 폼상에 배열은 위에 에디트박스 2개에 아래에 에디트박스 한개

그리고 아래에는 실행버튼으로 16개를 만들어서 0부터 9까지 그리고

네개의 버튼은 가감승제 하나는 초기화실행버튼 하나는 확인버튼으루 하고요..

실행을 시켜서 에디트박스에 커서가 있으면 버튼숫자키들을 누르면 에디트박스에

그 숫자가 들어가고 또 두번째 에디트박스로 커서를 옮겨서 또 숫자버튼들을 누르면

거기에 계속해서 수가 들어가게 한다음 확인키를 누르면 세번째 에디트 박스에

결과값이 나오게 하는 식이거든요..거기다가 연산자버튼을 중간에 누른다음 확인키

눌러서 값이 나오게...

아시는 분은 꼭 답좀 주세요...아님 멜이라두......

도대체 넘 궁금해서 잠도 안오네여...

많은분들을 도움을 주셨으면........



1  COMMENTS
  • Profile
    류종택 2001.04.02 09:08
    인터페이스가 제대로 이해가 안갑니다.

    (너무 졸려서 인가?)

    인터페이스를 바꿔보려다가 그냥 제가 이해한 그대로를 만들어 봤습니다.





    From 류..



    ---------



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls, Buttons;



    type

    TForm1 = class(TForm)

    SpeedButton1: TSpeedButton;

    SpeedButton2: TSpeedButton;

    SpeedButton3: TSpeedButton;

    SpeedButton4: TSpeedButton;

    SpeedButton5: TSpeedButton;

    SpeedButton6: TSpeedButton;

    SpeedButton7: TSpeedButton;

    SpeedButton8: TSpeedButton;

    SpeedButton9: TSpeedButton;

    SpeedButton10: TSpeedButton;

    SpeedButton11: TSpeedButton;

    SpeedButton12: TSpeedButton;

    SpeedButton13: TSpeedButton;

    Edit1: TEdit;

    Edit2: TEdit;

    SpeedButton14: TSpeedButton;

    SpeedButton15: TSpeedButton;

    Button1: TButton;

    procedure FormCreate(Sender: TObject);

    procedure SpeedButton1Click(Sender: TObject);

    procedure SpeedButton4Click(Sender: TObject);

    procedure Edit1KeyDown(Sender: TObject; var Key: Word;

    Shift: TShiftState);

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    CurEdit : TEdit;

    stOperator : String;

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}



    procedure TForm1.FormCreate(Sender: TObject);

    begin

    CurEdit:= Edit1;

    stOperator:= 'X';

    end;



    procedure TForm1.SpeedButton1Click(Sender: TObject);

    begin

    CurEdit.Text:= CurEdit.Text+TSpeedButton(Sender).Caption;

    end;



    procedure TForm1.SpeedButton4Click(Sender: TObject);

    begin

    stOperator:= TSpeedButton(Sender).Caption;

    end;



    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;

    Shift: TShiftState);

    begin

    If Key in [VK_Up, VK_Down] then

    Case TSpeedButton(Sender).Tag of

    1 : Begin

    CurEdit:= Edit2;

    Edit2.SetFocus;

    End;

    2 : Begin

    CurEdit:= Edit1;

    Edit1.SetFocus;

    End;

    End;

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    Var

    Result : Real;

    begin

    Case stOperator[1] of

    '+' : Result:= StrToFloat(Edit1.Text) + StrToFloat(Edit2.Text);

    '-' : Result:= StrToFloat(Edit1.Text) - StrToFloat(Edit2.Text);

    '*' : Result:= StrToFloat(Edit1.Text) * StrToFloat(Edit2.Text);

    '/' : Result:= StrToFloat(Edit1.Text) / StrToFloat(Edit2.Text);

    End;

    ShowMessage('결과값은'#13+Format(' %10.2f', [Result]))

    end;



    end.





    object Form1: TForm1

    Left = 238

    Top = 107

    Width = 696

    Height = 480

    Caption = 'Form1'

    Color = clBtnFace

    Font.Charset = DEFAULT_CHARSET

    Font.Color = clWindowText

    Font.Height = -11

    Font.Name = 'MS Sans Serif'

    Font.Style = []

    OldCreateOrder = False

    OnCreate = FormCreate

    PixelsPerInch = 96

    TextHeight = 13

    object SpeedButton1: TSpeedButton

    Left = 132

    Top = 4

    Width = 23

    Height = 22

    Caption = '1'

    OnClick = SpeedButton1Click

    end

    object SpeedButton2: TSpeedButton

    Left = 156

    Top = 4

    Width = 23

    Height = 22

    Caption = '2'

    OnClick = SpeedButton1Click

    end

    object SpeedButton3: TSpeedButton

    Left = 180

    Top = 4

    Width = 23

    Height = 22

    Caption = '3'

    OnClick = SpeedButton1Click

    end

    object SpeedButton4: TSpeedButton

    Left = 216

    Top = 4

    Width = 23

    Height = 22

    Caption = '+'

    OnClick = SpeedButton4Click

    end

    object SpeedButton5: TSpeedButton

    Left = 132

    Top = 28

    Width = 23

    Height = 22

    Caption = '4'

    OnClick = SpeedButton1Click

    end

    object SpeedButton6: TSpeedButton

    Left = 156

    Top = 28

    Width = 23

    Height = 22

    Caption = '5'

    OnClick = SpeedButton1Click

    end

    object SpeedButton7: TSpeedButton

    Left = 180

    Top = 28

    Width = 23

    Height = 22

    Caption = '6'

    OnClick = SpeedButton1Click

    end

    object SpeedButton8: TSpeedButton

    Left = 216

    Top = 28

    Width = 23

    Height = 22

    Caption = '-'

    OnClick = SpeedButton4Click

    end

    object SpeedButton9: TSpeedButton

    Left = 132

    Top = 52

    Width = 23

    Height = 22

    Caption = '7'

    OnClick = SpeedButton1Click

    end

    object SpeedButton10: TSpeedButton

    Left = 156

    Top = 52

    Width = 23

    Height = 22

    Caption = '8'

    OnClick = SpeedButton1Click

    end

    object SpeedButton11: TSpeedButton

    Left = 180

    Top = 52

    Width = 23

    Height = 22

    Caption = '9'

    OnClick = SpeedButton1Click

    end

    object SpeedButton12: TSpeedButton

    Left = 216

    Top = 52

    Width = 23

    Height = 22

    Caption = '*'

    OnClick = SpeedButton4Click

    end

    object SpeedButton13: TSpeedButton

    Left = 216

    Top = 76

    Width = 23

    Height = 22

    Caption = '/'

    OnClick = SpeedButton4Click

    end

    object SpeedButton14: TSpeedButton

    Left = 132

    Top = 76

    Width = 45

    Height = 22

    Caption = '0'

    OnClick = SpeedButton1Click

    end

    object SpeedButton15: TSpeedButton

    Left = 180

    Top = 76

    Width = 23

    Height = 22

    Caption = '.'

    OnClick = SpeedButton1Click

    end

    object Edit1: TEdit

    Tag = 1

    Left = 4

    Top = 4

    Width = 121

    Height = 21

    BiDiMode = bdLeftToRight

    ImeName = '한국어(한글)'

    ParentBiDiMode = False

    TabOrder = 0

    OnKeyDown = Edit1KeyDown

    end

    object Edit2: TEdit

    Tag = 2

    Left = 4

    Top = 32

    Width = 121

    Height = 21

    BiDiMode = bdLeftToRight

    ImeName = '한국어(한글)'

    ParentBiDiMode = False

    TabOrder = 1

    OnKeyDown = Edit1KeyDown

    end

    object Button1: TButton

    Left = 252

    Top = 4

    Width = 75

    Height = 25

    Caption = 'Ok'

    TabOrder = 2

    OnClick = Button1Click

    end

    end



    호기심소년 wrote:

    > 지금 델파이를 배우기 시잔한 왕초짭니다..

    > 근데 우연한 계기로 계산기를 만들어보게 되었는데 잘 되지가 않아서요

    > 우선 폼상에 배열은 위에 에디트박스 2개에 아래에 에디트박스 한개

    > 그리고 아래에는 실행버튼으로 16개를 만들어서 0부터 9까지 그리고

    > 네개의 버튼은 가감승제 하나는 초기화실행버튼 하나는 확인버튼으루 하고요..

    > 실행을 시켜서 에디트박스에 커서가 있으면 버튼숫자키들을 누르면 에디트박스에

    > 그 숫자가 들어가고 또 두번째 에디트박스로 커서를 옮겨서 또 숫자버튼들을 누르면

    > 거기에 계속해서 수가 들어가게 한다음 확인키를 누르면 세번째 에디트 박스에

    > 결과값이 나오게 하는 식이거든요..거기다가 연산자버튼을 중간에 누른다음 확인키

    > 눌러서 값이 나오게...

    > 아시는 분은 꼭 답좀 주세요...아님 멜이라두......

    > 도대체 넘 궁금해서 잠도 안오네여...

    > 많은분들을 도움을 주셨으면........

    >