지금 델파이를 배우기 시잔한 왕초짭니다..
근데 우연한 계기로 계산기를 만들어보게 되었는데 잘 되지가 않아서요
우선 폼상에 배열은 위에 에디트박스 2개에 아래에 에디트박스 한개
그리고 아래에는 실행버튼으로 16개를 만들어서 0부터 9까지 그리고
네개의 버튼은 가감승제 하나는 초기화실행버튼 하나는 확인버튼으루 하고요..
실행을 시켜서 에디트박스에 커서가 있으면 버튼숫자키들을 누르면 에디트박스에
그 숫자가 들어가고 또 두번째 에디트박스로 커서를 옮겨서 또 숫자버튼들을 누르면
거기에 계속해서 수가 들어가게 한다음 확인키를 누르면 세번째 에디트 박스에
결과값이 나오게 하는 식이거든요..거기다가 연산자버튼을 중간에 누른다음 확인키
눌러서 값이 나오게...
아시는 분은 꼭 답좀 주세요...아님 멜이라두......
도대체 넘 궁금해서 잠도 안오네여...
많은분들을 도움을 주셨으면........
(너무 졸려서 인가?)
인터페이스를 바꿔보려다가 그냥 제가 이해한 그대로를 만들어 봤습니다.
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까지 그리고
> 네개의 버튼은 가감승제 하나는 초기화실행버튼 하나는 확인버튼으루 하고요..
> 실행을 시켜서 에디트박스에 커서가 있으면 버튼숫자키들을 누르면 에디트박스에
> 그 숫자가 들어가고 또 두번째 에디트박스로 커서를 옮겨서 또 숫자버튼들을 누르면
> 거기에 계속해서 수가 들어가게 한다음 확인키를 누르면 세번째 에디트 박스에
> 결과값이 나오게 하는 식이거든요..거기다가 연산자버튼을 중간에 누른다음 확인키
> 눌러서 값이 나오게...
> 아시는 분은 꼭 답좀 주세요...아님 멜이라두......
> 도대체 넘 궁금해서 잠도 안오네여...
> 많은분들을 도움을 주셨으면........
>