2011-12-26 6 views
-2

델파이 폼에 숫자를 더하고 빼기를 원합니다. 두 개의 버튼이 있습니다. 하나는 "+"로 표시하고 다른 하나는 "-"로 표시합니다.델파이 : 더하기 및 빼기

"+"버튼을 클릭하면 분명히 편집 상자에 표시된 기존 값에 숫자를 추가해야합니다. "+"를 클릭 할 때마다 입력란의 숫자가 1 씩 증가해야합니다. "-"를 클릭하면 편집 상자의 값에서 1을 뺍니다. 이 값은 기존 값인 35보다 낮을 수 없습니다.

제 질문은 델파이의 코딩이 어떻게 보이는지, 변수를 어떻게 선언할까요? 당신의 "+"버튼에 다음 코드

+2

추가 오크? – menjaraz

+0

아니요. 필자가 시각적 인 파스칼을 좋아하기 때문에 델파이를 가르치고 있습니다. – Jake

+2

'+'와'-' 버튼을 사용하는 이유는 무엇입니까? 대신에'TSpinEdit'을 사용하고,'MinValue' 속성을 35로 설정하십시오. 이것은 사용자가 Windows가 정수 값을 사용하기를 기대하는 방식입니다; 또한 버튼 클릭뿐만 아니라 키보드 입력도 처리합니다. –

답변

0

쓰기, "-"정말로 다른되지 않습니다 : 당신에

Edit1.Caption := IntToStr(StrToInt(Edit1.Caption)+1); 
2

"-"button.click 이벤트 코드

procedure TForm1.Button1Click(Sender: TObject); 
var 
    //declare all your variables here 
    result : integer; 
begin 
    result:=StrToInt(Edit1.text); 
    if result=35 then 
    exit 
    else 
    Edit1.text:=IntToStr(result-1); 

end; 

에 추가 당신의 "+"buttonclick이가 homew가이

procedure TForm1.Button2Click(Sender: TObject); 
begin 
    Edit1.text:=IntToStr(StrToInt(Edit1.Caption)+1); 

end; 
+1

내가 너라면, 대신에'TryStrToInt()'를 쓸거야. – Pateman

+0

많은 분들께 감사드립니다! – Jake

0
procedure TForm1.btnIncrementClick(Sender: TObject); 
var 
    j: integer; 
begin 
    j := StrToInt(edit1.Text); 
    inc(j); 
    edit1.Text := IntToStr(j); 
end; 

procedure TForm1.btnDecrementClick(Sender: TObject); 
var 
    j: integer; 
begin 
    j := StrToInt(edit1.text); 
    if J > 35 then 
    begin 
    dec(j); 
    Edit1.Text := IntToStr(j); 
    end; 
end; 
+0

'btnDecrementClick'코드가 잘못되었습니다. 이 값이 35 미만으로 떨어지는 것을 막지는 못합니다. 대신 넘어 가면 감소합니다. (값이 36이면 35로 줄입니다. 코드에서 묻는 질문이 아닙니다.) –

+0

응? 변수가 35보다 크지 않으면 DEC가 호출되지 않습니다.이 테스트를 거쳤습니다. –

+0

내가 다시 쓴 것을 읽으십시오. OP는 ** 35 ** 아래로 가지 않을 가치를 물었다. 당신은 ** ** 위의 경우 ** 그것을 감소시키고, **는 아래 **를 체크하지 않습니다. (이것은 편집 컨트롤에'33'을 입력 할 수 있고 감소 버튼을 눌러서'32'가되고 코드가 감소하지 못하도록 방지 함을 의미합니다 .j <35 then j : = 35; Edit1.Text : = IntToStr (j);'또는 유사한 것 –