Другие языки программирования и технологии

Как в delphi привязать в клавише enter (#13) значение "результат"

procedure TForm1.BitBtn17KeyPress(Sender: TObject; var Key: Char); begin if key=#13 then Что дальше писать если: procedure TForm1.BitBtn17Click(Sender: TObject); begin if edit1.Text<>'' then b:=strtofloat(edit1.text); case d of '+': c:=a+b; '-': c:=a-b; '*': c:=a*b; '/': c:=a/b; end ; edit1.Text:=floattostr(c) end; Мне нужно чтобы при нажатии на ентер выводил результат действия (сложение вычитание и т.д) а то я ввожу например 5+5 нажимаю ентер он выводит 55 а не 10!
Сергей Садков
Сергей Садков
1 093
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
function Calc(S:string):string;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

function TForm1.Calc(S: string): string;
var
ind,i:integer;
sval1,sval2:string;
val1,val2,val:real;
begin
result:= 'Хрен его знает, какае-то ОШИБКА';
s:= trim(s);
if s <> '' then begin
ind:= 0;
for i := 0 to Length(S) do
if s in ['-','+','/','*',':'] then begin
ind:= i;
break;
end;
if ind > 0 then begin
sval1:= trim (copy(s,0,ind-1) );
sval2:= trim (copy(s,ind+1,length(s)));
if (sval1 <> '') and (sval2 <> '') then begin
try
val1:= StrToFloat(sval1);
val2:= StrToFloat(sval2);
case s[ind] of
'-': val:= val1 - val2 ;
'+': val:= val1 + val2;
'/',':': val:= val1 / val2;
'*': val:= val1 * val2;
else
val:= 0;
end;
result:= floattostr(val)
except
end;
end;
end;
end
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var ed:TEdit;
begin
ed := (sender as TEdit);
if key = vk_return then
ed.Text:= Calc(ed.Text);
end;

end.
Виталя Алексеев
Виталя Алексеев
3 080
Лучший ответ
а зачем мешать кислое с пресным? В кейдауне и описывайте необходимые по энгтеру действия, а бтнклик не трогайте.
if key=#13 then
BitBtn17.click;
ИК
Иван Краснов
10 078