bat
Сложно перейти с продуктов от Borland на Microsoft. Только здесь сложность большая.. + синтаксис языка новый
0
Программирование на Delphi
Автор
Гость_Stalker_*
, 12 Feb 2005 00:53
Сообщений в теме: 46
#31 Гость_vav_*
Отправлено 05 January 2006 - 00:42
#32 Гость_rza_*
Отправлено 09 February 2006 - 01:25
Доброго времени суток уважаемые. Подскажите пожалуйста как сделать чтобы в компонент TEdit при нажатии на TButton1 выводилась например цифра 1 а принажатии на другой TButton выводилась к примеру цифра 2. В смысле чтобы при нажати на новую кнопку значение TEdit не обнулялось. Надо чтобы как в калькуляторе при вводе цифр писались они в один ряд.
#33 Гость_Avi_*
Отправлено 09 February 2006 - 16:57
rza
Все просто Edit1.Text:=Edit1.Text+'1' вот так вставляй этот код в каждый обработчик ) разумееться токо циферьки меняй =) будут проблемы обращайся
Все просто Edit1.Text:=Edit1.Text+'1' вот так вставляй этот код в каждый обработчик ) разумееться токо циферьки меняй =) будут проблемы обращайся
#34 Гость_Blackcode_*
Отправлено 10 February 2006 - 01:47
rza
Можешь, если цифры у тебя в Caption'е TButton есть, сделать так:
Выделяй все кнопы (от 0 до 9), затем щёлкни на одной из них, чтобы обработчик появился. Но он будет прописан для всех кноп, которые ты выбрал.
Приведу пример (!!!), как должен выглядеть обработчик:
Procedure TMainForm.TButton1Click(Sender: TObject);
Begin
Edit.Text:= EditText + (Sender as TButton).Caption;
End;
И при нажатии каждой кнопы, цифры, написанные на ней, будут добавлятся в строку...
Можешь, если цифры у тебя в Caption'е TButton есть, сделать так:
Выделяй все кнопы (от 0 до 9), затем щёлкни на одной из них, чтобы обработчик появился. Но он будет прописан для всех кноп, которые ты выбрал.
Приведу пример (!!!), как должен выглядеть обработчик:
Procedure TMainForm.TButton1Click(Sender: TObject);
Begin
Edit.Text:= EditText + (Sender as TButton).Caption;
End;
И при нажатии каждой кнопы, цифры, написанные на ней, будут добавлятся в строку...
Сообщение отредактировал Blackcode: 10 February 2006 - 01:55
#35 Гость_Avi_*
Отправлено 10 February 2006 - 13:42
.Blackcode ага тоже интересное решение проблемы
Ну а вот собственно и сам калькулятор мож кому надо =)
var
Form1: TForm1;
a: Real;
b: integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:='0';
end;
procedure TForm1.SpeedButton19Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'0'
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'9'
else
Edit1.Text:='9';
end;
procedure TForm1.SpeedButton13Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'1'
else
Edit1.Text:='1';
end;
procedure TForm1.SpeedButton14Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'2'
else
Edit1.Text:='2';
end;
procedure TForm1.SpeedButton15Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'3'
else
Edit1.Text:='3';
end;
procedure TForm1.SpeedButton7Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'4'
else
Edit1.Text:='4';
end;
procedure TForm1.SpeedButton8Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'5'
else
Edit1.Text:='5';
end;
procedure TForm1.SpeedButton9Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'6'
else
Edit1.Text:='6';
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'7'
else
Edit1.Text:='7';
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'8'
else
Edit1.Text:='8';
end;
procedure TForm1.SpeedButton22Click(Sender: TObject);
begin
a:=StrToFloat(Edit1.Text);
Edit1.Text:='0';
b:=1;
end;
procedure TForm1.SpeedButton23Click(Sender: TObject);
begin
if b=1 then
Edit1.Text:=FloatToStr(StrToInt(Edit1.Text)+a)
else if b=2 then
Edit1.Text:=FloatToStr(a-StrToInt(Edit1.Text))
else if b=3 then
Edit1.Text:=FloatToStr(StrToInt(Edit1.Text)*a)
else if b=4 then
Edit1.Text:=Floattostr(a/StrToInt(Edit1.Text))
end;
procedure TForm1.SpeedButton16Click(Sender: TObject);
begin
a:=StrToFloat(Edit1.Text);
Edit1.Text:='0';
b:=2;
end;
procedure TForm1.SpeedButton10Click(Sender: TObject);
begin
a:=StrToFloat(Edit1.Text);
Edit1.Text:='0';
b:=3;
end;
procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
a:=StrToFloat(Edit1.Text);
Edit1.Text:='0';
b:=4;
end;
procedure TForm1.SpeedButton5Click(Sender: TObject);
begin
edit1.text := Floattostr(sqrt(strtoint(edit1.text)));
end;
end.
Ну а вот собственно и сам калькулятор мож кому надо =)
var
Form1: TForm1;
a: Real;
b: integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:='0';
end;
procedure TForm1.SpeedButton19Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'0'
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'9'
else
Edit1.Text:='9';
end;
procedure TForm1.SpeedButton13Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'1'
else
Edit1.Text:='1';
end;
procedure TForm1.SpeedButton14Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'2'
else
Edit1.Text:='2';
end;
procedure TForm1.SpeedButton15Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'3'
else
Edit1.Text:='3';
end;
procedure TForm1.SpeedButton7Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'4'
else
Edit1.Text:='4';
end;
procedure TForm1.SpeedButton8Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'5'
else
Edit1.Text:='5';
end;
procedure TForm1.SpeedButton9Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'6'
else
Edit1.Text:='6';
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'7'
else
Edit1.Text:='7';
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
if Edit1.Text<>'0' then
Edit1.Text:=Edit1.Text+'8'
else
Edit1.Text:='8';
end;
procedure TForm1.SpeedButton22Click(Sender: TObject);
begin
a:=StrToFloat(Edit1.Text);
Edit1.Text:='0';
b:=1;
end;
procedure TForm1.SpeedButton23Click(Sender: TObject);
begin
if b=1 then
Edit1.Text:=FloatToStr(StrToInt(Edit1.Text)+a)
else if b=2 then
Edit1.Text:=FloatToStr(a-StrToInt(Edit1.Text))
else if b=3 then
Edit1.Text:=FloatToStr(StrToInt(Edit1.Text)*a)
else if b=4 then
Edit1.Text:=Floattostr(a/StrToInt(Edit1.Text))
end;
procedure TForm1.SpeedButton16Click(Sender: TObject);
begin
a:=StrToFloat(Edit1.Text);
Edit1.Text:='0';
b:=2;
end;
procedure TForm1.SpeedButton10Click(Sender: TObject);
begin
a:=StrToFloat(Edit1.Text);
Edit1.Text:='0';
b:=3;
end;
procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
a:=StrToFloat(Edit1.Text);
Edit1.Text:='0';
b:=4;
end;
procedure TForm1.SpeedButton5Click(Sender: TObject);
begin
edit1.text := Floattostr(sqrt(strtoint(edit1.text)));
end;
end.
#36 Гость_Blackcode_*
Отправлено 11 February 2006 - 01:23
Avi
А ты вместо:
procedure TForm1.SpeedButton23Click(Sender: TObject);
begin
if b=1 then
Edit1.Text:=FloatToStr(StrToInt(Edit1.Text)+a)
else if b=2 then
Edit1.Text:=FloatToStr(a-StrToInt(Edit1.Text))
else if b=3 then
Edit1.Text:=FloatToStr(StrToInt(Edit1.Text)*a)
else if b=4 then
Edit1.Text:=Floattostr(a/StrToInt(Edit1.Text))
end;
Используй:
procedure TForm1.SpeedButton23Click(Sender: TObject);
begin
Case b Of
1: Edit1.Text:=FloatToStr(StrToInt(Edit1.Text)+a);
2: Edit1.Text:=FloatToStr(a-StrToInt(Edit1.Text));
3: Edit1.Text:=FloatToStr(StrToInt(Edit1.Text)*a);
4: Edit1.Text:=Floattostr(a/StrToInt(Edit1.Text));
End;
end;
А ты вместо:
procedure TForm1.SpeedButton23Click(Sender: TObject);
begin
if b=1 then
Edit1.Text:=FloatToStr(StrToInt(Edit1.Text)+a)
else if b=2 then
Edit1.Text:=FloatToStr(a-StrToInt(Edit1.Text))
else if b=3 then
Edit1.Text:=FloatToStr(StrToInt(Edit1.Text)*a)
else if b=4 then
Edit1.Text:=Floattostr(a/StrToInt(Edit1.Text))
end;
Используй:
procedure TForm1.SpeedButton23Click(Sender: TObject);
begin
Case b Of
1: Edit1.Text:=FloatToStr(StrToInt(Edit1.Text)+a);
2: Edit1.Text:=FloatToStr(a-StrToInt(Edit1.Text));
3: Edit1.Text:=FloatToStr(StrToInt(Edit1.Text)*a);
4: Edit1.Text:=Floattostr(a/StrToInt(Edit1.Text));
End;
end;
#37 Гость_rza_*
Отправлено 11 February 2006 - 23:17
Спасибо что откликнулись, всё разобрался. У меня есть ещё один вопросик. Я сделал одну програмку и мне захотелась сделать так чтобы в ней фон можно было менять. Я сделал спомощью TMainMenu меню там входиш в настройки выбираеш сменить фон и там появляется диалог типа какой файл открыть (OpenPictureDialog) дальше выбираю картинку, всё пока вроде нормально , но как только её выбереш сразу появляется сообщение об ошибке и приложение отказывается дальше работать, выбраная картинка должна заменить картинку по умолчанию в TImage. Пробовал выбирать картинки разных форматов но результат одинаковый (*.bmp,*. jpg и т.д.) и с размерами картинок тоже эксперементировал. Может быть что-нибудь подскажете.
#38 Гость_Avi_*
Отправлено 12 February 2006 - 01:02
rza
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then form1.image1.Stretch := true
else form1.Image1.Stretch := false;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Form1.image1.Picture.LoadFromFile(OpenDialog1.FileName);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end; Незнаю в свое время я делал так попробуй мож у тебя получиться покрайней мере ошибку у меня невыдавало
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then form1.image1.Stretch := true
else form1.Image1.Stretch := false;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Form1.image1.Picture.LoadFromFile(OpenDialog1.FileName);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end; Незнаю в свое время я делал так попробуй мож у тебя получиться покрайней мере ошибку у меня невыдавало
#39 Гость_Slofie_*
Отправлено 25 April 2006 - 02:11
Народ, помогите пожалста!
Необходимо, написать программку, состоящую из трех переключателей (умножение далее введенного значения на 4, 9 и 23), поля ввода значения, кнопки ОК и поле вывода результата.
Помогите пожалуйста написать процедуру ButtonClick.
Знаю, что она простая, но че-то как-то.. Помогите, а..?
Необходимо, написать программку, состоящую из трех переключателей (умножение далее введенного значения на 4, 9 и 23), поля ввода значения, кнопки ОК и поле вывода результата.
Помогите пожалуйста написать процедуру ButtonClick.
Знаю, что она простая, но че-то как-то.. Помогите, а..?
#40 Гость_Avi_*
Отправлено 25 April 2006 - 05:05
Тогда не только процедуру но и саму программу придется писать
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных