Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2017, 00:21   #1
Vyacheslav.
Форумчанин
 
Регистрация: 22.10.2017
Сообщений: 113
Сообщение CheckBox в формулах Delphi

Помогите доделать проект.
Условие такое:
После ввода данных в поля "Количество" и "Цена" пользователь должен указать, какие из товаров выбраны. Выбор товара будет влиять на итоговую стоимость. Формула для расчета итоговой стоимости имеет приблизительно такой вид:
Итого = Стоимость 1*Индикатор Выбора+Стоимость 2*Индикатор Выбора+Стоимость 3*Индикатор выбора.
Индикатор выбора - checkbox. Не понимаю.. Как это написать?
Код:
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;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    RadioGroup1: TRadioGroup;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Label10: TLabel;
    Button1: TButton;
    Button2: TButton;
    Label11: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var k,z,s,s1,s2,n,i:real;
begin
if checkbox1.Checked=true then
begin
k:=StrToFloat(Edit1.Text);
z:=StrToFloat(Edit4.Text);
n:=1.05;
if radiogroup1.ItemIndex=1 then
begin
n:=1.1;
end;
if radiogroup1.ItemIndex=2 then
begin
n:=1.15;
end;
s:=k*z*n;
Edit7.Text:=FloatToStr(s);
end;
if checkbox2.Checked=true then
begin
k:=StrToFloat(Edit2.Text);
z:=StrToFloat(Edit5.Text);
n:=1.05;
if radiogroup1.ItemIndex=1 then
begin
n:=1.1;
end;
if radiogroup1.ItemIndex=2 then
begin
n:=1.15;
end;
s1:=k*z*n;
Edit8.Text:=FloatToStr(s1);
end;
if checkbox3.Checked=true then
begin
k:=StrToFloat(Edit3.Text);
z:=StrToFloat(Edit6.Text);
n:=1.05;
if radiogroup1.ItemIndex=1 then
begin
n:=1.1;
end;
if radiogroup1.ItemIndex=2 then
begin
n:=1.15;
end;
s2:=k*z*n;
Edit9.Text:=FloatToStr(s2);
i:=s+s1+s2;
Edit10.Text:=FloatToStr(i);
end;
end;

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

end.
Изображения
Тип файла: png gas.png (15.4 Кб, 137 просмотров)
Вложения
Тип файла: rar Zad4.rar (171.1 Кб, 12 просмотров)
Vyacheslav. вне форума Ответить с цитированием
Старый 12.11.2017, 06:00   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var k,z,s,n,i:real;
begin
i:=0;
if checkbox1.Checked=true then
begin
k:=StrToFloat(Edit1.Text);
z:=StrToFloat(Edit4.Text);
n:=1.05;
if radiogroup1.ItemIndex=1 then
begin
n:=1.1;
end;
if radiogroup1.ItemIndex=2 then
begin
n:=1.15;
end;
s:=k*z*n;
Edit7.Text:=FloatToStr(s);
i:=s;
end;
if checkbox2.Checked=true then
begin
k:=StrToFloat(Edit2.Text);
z:=StrToFloat(Edit5.Text);
n:=1.05;
if radiogroup1.ItemIndex=1 then
begin
n:=1.1;
end;
if radiogroup1.ItemIndex=2 then
begin
n:=1.15;
end;
s:=k*z*n;
Edit8.Text:=FloatToStr(s);
i:=i+s;
end;
if checkbox3.Checked=true then
begin
k:=StrToFloat(Edit3.Text);
z:=StrToFloat(Edit6.Text);
n:=1.05;
if radiogroup1.ItemIndex=1 then
begin
n:=1.1;
end;
if radiogroup1.ItemIndex=2 then
begin
n:=1.15;
end;
s:=k*z*n;
Edit9.Text:=FloatToStr(s);
i:=i+s;
end;
Edit10.Text:=FloatToStr(i);
end;
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 12.11.2017, 15:17   #3
Vyacheslav.
Форумчанин
 
Регистрация: 22.10.2017
Сообщений: 113
Радость

Да, спасибо.
А не могли бы вы объяснить что вы сделали?
Vyacheslav. вне форума Ответить с цитированием
Старый 12.11.2017, 15:30   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию



Сократил количество переменных.
Подкорректировал в 3-х местах
Код:
s:=k*z*n;
Edit8.Text:=FloatToStr(s);
i:=i+s;
Переменная i являлась итоговой суммой
Код:
Edit10.Text:=FloatToStr(i);
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CheckBox'ы и Delphi Sergeevich Помощь студентам 2 16.06.2013 19:25
Как выполнить функцию в случае нажатия на CheckBox, если данный CheckBox был добавлен через код? PAMAC Microsoft Office Excel 7 21.02.2013 15:33
checkBox Delphi Access Vася БД в Delphi 1 11.04.2011 18:35
проблемы с checkbox в delphi sofiya Помощь студентам 2 20.02.2011 21:25
CheckBox на Delphi yaxx Помощь студентам 2 10.10.2010 23:08