Este é o lugar onde estou até agora e quando eu digito um número na caixa de edição e pressiono o botão que trava, eu sou um novato para Delphi por favor me ajude! Obrigado Matt
var
Form3: TForm3;
Count: integer;
RunningTotal: Real;
implementation
{$R *.dfm}
procedure TForm3.btnEnterClick(Sender: TObject);
begin
repeat
RunningTotal:= RunningTotal + STRTOINT (edtNum.Text);
until STRTOINT(edtNum.Text)=0;
lblAns.Caption:= FLOATTOSTR (RunningTotal);
end;
procedure TForm3.edtNumChange(Sender: TObject);
begin
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
Count:=0;
RunningTotal:=0;
end;
end.
Respostas:
1 para resposta № 1Você está dando um loop para sempre quando o usuário fornece seu primeiro valor. Tudo o que você precisa fazer no manipulador de eventos é pegar um único valor e processá-lo.
procedure TForm3.btnEnterClick(Sender: TObject);
begin
if STRTOINT(edtNum.Text)=0 then
lblAns.Caption:= FLOATTOSTR (RunningTotal)
else
RunningTotal:= RunningTotal + STRTOINT (edtNum.Text);
end;
Desta forma, o usuário pode enviar mais números, até que ele lhe forneça um 0
.
1 para resposta № 2
Se você digitar um caractere em vez de um número, isso resultará em uma exceção. Você pode tratar a exceção ou impedir que o usuário insira caracteres como este.
var
Form1: TForm1;
myvalue : Real = 0;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
var
number : Real;
begin
number := StrToFloat(Edit1.Text);
if number = 0 then ShowMessageFmt("The result is %f",[myvalue])
else
myvalue := myvalue + number;
Edit1.Text := "";
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ["0".."9","."]) then Key := #0;
end;