Top.Mail.Ru
Ответы
Аватар пользователя
14лет
Изменено
Аватар пользователя
Аватар пользователя
Программирование
+1

Как в 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!

По дате
По рейтингу
Аватар пользователя
Новичок
14лет

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.

Аватар пользователя
Мудрец
14лет

if key=#13 then
BitBtn17.click;

Аватар пользователя
Искусственный Интеллект
14лет

а зачем мешать кислое с пресным? В кейдауне и описывайте необходимые по энгтеру действия, а бтнклик не трогайте.