IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Компонент-Калькулятор
Zigfried
сообщение 24.12.2011 21:23
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


При создании калькулятора возникла проблема: в задаче есть 2 Edit'а в них вводятся значения a и b над которыми производятся определённые операции,поставив курсор в Edit1 и вводя значения при помощи кнопок калькулятора вводится нормально а когда поставить курсор на Edit2 и начав вводить значения при помощи кнопок курсор перескакивает на Edit1 и начинает вводить значения туда,помогите пожалуйста это исправить.
Проблему можно увидеть в процедурах Button2Click-Button11Click и в Button25Click. Там видно что коряво это написал но по другому не знаю как(



unit Unit1;

interface

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

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit3: TEdit;
Edit1: TEdit;
Edit2: TEdit;
Image1: TImage;
Image2: TImage;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button13: TButton;
Button14: TButton;
Button15: TButton;
Button17: TButton;
Button18: TButton;
Button19: TButton;
Button20: TButton;
Button21: TButton;
Button22: TButton;
Button23: TButton;
Button25: TButton;
CheckBox1: TCheckBox;
Button1: TButton;
CheckBox2: TCheckBox;

procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Image1Click(Sender: TObject);
procedure Image2Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Button20Click(Sender: TObject);
procedure Button21Click(Sender: TObject);
procedure Button23Click(Sender: TObject);

procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button22Click(Sender: TObject);
procedure Button25Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

s1,s2: string;
a,b,c: real;
operacia, i, k: integer;
vibrano, injener: boolean;

implementation

{$R *.dfm}

procedure ravno;
begin
if ((form1.Edit1.Text='') or (form1.Edit2.Text='')) and
(injener=false) then begin
showmessage('не задан операнд');
exit;
end;

a:=strtofloat(form1.Edit1.Text);
if injener <> true then b:=strtofloat(form1.Edit2.Text);


if (b=0) and(form1.Edit2.Text<>'')then begin
showmessage('На ноль делить нельзя');
form1.Edit2.Text:='';
exit;
end;

case operacia of
1: c:=a+b;
2: c:=a-b;
3: c:=a*b;
4: c:=a/b;
5: begin
if form1.checkbox2.checked=true then c:=sin(a*Pi/180) else
c:=sin(a);
end;
6: begin
if form1.checkbox2.checked=true then c:=cos(a*Pi/180) else
c:=cos(a);
end;
7: begin
if form1.checkbox2.checked=true then c:=sin(a*Pi/180)/cos(a*Pi/180) else
c:=sin(a)/cos(a);
end;
8: begin
if form1.checkbox2.checked=true then c:=cos(a*Pi/180)/sin(a*Pi/180) else
c:=cos(a)/sin(a);
end;
9: c:=sqrt(a);
10: c:=a*a;
11:
begin
c:=1;
k:= strtoint(form1.edit2.text);
for i:=1 to k do c:=a*c;
end;

end; //case
form1.Edit3.text:=floattostrf(c,ffGeneral,18,4);

end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
Edit3.text:='';
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
Edit3.text:='';
vibrano:=true;
end;




procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9','+','-',#8]) then key :=#0;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);
var i: integer;
begin
if not (key in ['0'..'9','+','-',#8]) then key :=#0;

end;

procedure TForm1.Image1Click(Sender: TObject);
begin
showmessage('Кротов Роман. ТПМ-301. 2009 год.');
end;

procedure TForm1.Image2Click(Sender: TObject);
begin
form1.Close;
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
button17.Visible:=true;
button18.Visible:=true;
button19.Visible:=true;
button20.Visible:=true;
button21.Visible:=true;
button23.Visible:=true;
checkbox2.Visible:=false;
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
operacia:=1; injener:=false;
ravno;
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
operacia:=2; injener:=false;
ravno;
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
operacia:=3; injener:=false;
ravno;
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
operacia:=4; injener:=false;
ravno;
end;

procedure TForm1.Button17Click(Sender: TObject);
begin
operacia:=5;
injener:=true;
ravno;
end;

procedure TForm1.Button18Click(Sender: TObject);
begin
operacia:=6;

injener:=true;
ravno;
end;

procedure TForm1.Button19Click(Sender: TObject);
begin
operacia:=7;
injener:=true; ravno;
end;

procedure TForm1.Button20Click(Sender: TObject);
begin
operacia:=8; injener:=true; ravno;
end;

procedure TForm1.Button21Click(Sender: TObject);
begin
operacia:=9; injener:=true; ravno;
end;

procedure TForm1.Button23Click(Sender: TObject);
begin
operacia:=10; injener:=true;ravno;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
s1:=edit1.Text;
s1:=s1+'0';
edit1.Text:=s1;

end;

procedure TForm1.Button3Click(Sender: TObject);
begin
s1:=edit1.Text;
s1:=s1+'1';
edit1.Text:=s1;


end;

procedure TForm1.Button4Click(Sender: TObject);
begin
s1:=edit1.Text;
s1:=s1+'2';
edit1.Text:=s1;


end;

procedure TForm1.Button5Click(Sender: TObject);
begin
s1:=edit1.Text;
s1:=s1+'3';
edit1.Text:=s1;


end;

procedure TForm1.Button6Click(Sender: TObject);
begin
s1:=edit1.Text;
s1:=s1+'4';
edit1.Text:=s1;


end;

procedure TForm1.Button7Click(Sender: TObject);
begin
s1:=edit1.Text;
s1:=s1+'5';
edit1.Text:=s1;


end;

procedure TForm1.Button8Click(Sender: TObject);
begin
s1:=edit1.Text;
s1:=s1+'6';
edit1.Text:=s1;


end;

procedure TForm1.Button9Click(Sender: TObject);
begin
s1:=edit1.Text;
s1:=s1+'7';
edit1.Text:=s1;

end;

procedure TForm1.Button10Click(Sender: TObject);
begin
s1:=edit1.Text;
s1:=s1+'8';
edit1.Text:=s1;


end;

procedure TForm1.Button11Click(Sender: TObject);
begin
s1:=edit1.Text;
s1:=s1+'9';
edit1.Text:=s1;


end;

procedure TForm1.Button22Click(Sender: TObject);
begin
s1:=edit1.Text;
s1:='';
edit1.Text:=s1;
s2:=edit2.Text;
s2:='';
edit2.Text:=s2;

end;

procedure TForm1.Button25Click(Sender: TObject);
begin
s1:=edit1.Text;
s1:=s1+',';
edit1.Text:=s1;

end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked=true then
begin
button17.Visible:=true;
button18.Visible:=true;
button19.Visible:=true;
button20.Visible:=true;
button21.Visible:=true;
checkbox2.Visible:=true;
button1.Visible:=true;
button23.Visible:=true

end
else
begin
button17.Visible:=false;
button18.Visible:=false;
button19.Visible:=false;
button20.Visible:=false;
button21.Visible:=false;
checkbox2.Visible:=false;
button23.Visible:=false;
button1.Visible:=false;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
operacia:=11;
injener:=false;
ravno;
end;

end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 14:58
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"