Вопрос № 178002: уважаемые эксперт!! помогите с задачей на delphi. Необходимо создать приложение Windows с графическим интерфейсом, выполняющее определенную последовательность действий . Создать меню с командами Input, Work. При выборе команды Input открывать окно...
Вопрос № 178002:
уважаемые эксперт!! помогите с задачей на delphi. Необходимо создать приложение Windows с графическим интерфейсом, выполняющее определенную последовательность действий . Создать меню с командами Input, Work. При выборе команды Input открывать окно диалога, содержащее: - три поля ввода типа TEdit с метками Radius, Height, Density; - группу из двух флажков (Volume, Mass) типа TCheckBox; - кнопку типа TButton. Обеспечить возможность: - ввода радиуса, высоты и плотности конуса; - выбора режима
с помощью флажков, обеспечивающих подсчет объема и/или массы конуса. При выборе команды Work открывать окно сообщений с результатами. Заголовок окна должен содержать ФИО и номер варианта. Внизу окна приложения должна отображаться текущая дата, день недели и время. Обязательными пунктами в меню программы должны быть: Help, при выборе которого открывается окно с поясняющими инструкциями; About, при выборе которого открывается окно с информацией о разработчике;
Exit, при выборе которого завершается работа приложения.
Отвечает Евгений/Genia007/, Бакалавр :
Здравствуйте, Невалёный Виталий Владимирович. Вот то что у меня получилось. В программу вводятся радиус и высота в см, а вывод результатов по объёму - см куб, по массе - гр.:
procedure TForm1.About1Click(Sender: TObject); begin AboutBox.ShowModal; // Показ формы в модальном режиме end;
procedure
TForm1.Exit1Click(Sender: TObject); begin Close; // Закрыли программу end;
procedure TForm1.Help1Click(Sender: TObject); begin HelpForm.ShowModal; // Показ формы помощи в модальном режиме end;
procedure TForm1.Input1Click(Sender: TObject); begin InputForm.ShowModal; // Показ формы ввода в модальном режиме end;
procedure TForm1.Timer1Timer(Sender: TObject); begin StatusBar1.Panels[0].Text:= DateToStr
(Now); // Вывод на панель состояния рекущей даты StatusBar1.Panels[1].Text:= FormatDateTime('dddd',date); // Вывод на панель состояния текущего дня StatusBar1.Panels[2].Text:= TimeToStr(Now); // Вывод на панель состояния текущего времени end;
procedure TForm1.Work1Click(Sender: TObject); begin OutputForm.Label1.Caption:= 'Volume = ' + FloatToStr(Ob) + ' см куб'; // Вывод результата расчёта объёма конуса OutputForm.Label2.Caption:= 'Mass =
' + FloatToStr(Ms) + ' гр'; // Вывод результата расчёта массы конуса OutputForm.ShowModal; // Показ формы вывода результатов в модальном режиме end;
type TInputForm = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; la
bel1: TLabel; Label2: TLabel; Label3: TLabel; GroupBox1: TGroupBox; CheckBox1: TCheckBox; CheckBox2: TCheckBox; Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); private { Private declarations } public { Public declarations } end;
var InputForm: TInputForm; Rd, Hg, Dn, Ob, Ms: single;
implementation
{$R
*.dfm}
procedure TInputForm.Button1Click(Sender: TObject); begin Close; // Закрыли форму ввода Try // Пробуем выполнить Rd:= StrToFloat(Edit1.Text); // Присваиваем переменной радиус конуса Except // Не получилось, ошибка преобразования строки в число ShowMessage('Ошибка ввода числа!'); // Сообщение об ошибке Edit1.Text:= '1'; Rd:= 1; End; Try // Пробуем выполнить
Hg:= StrToFloat(Edit2.Text); // Присваиваем переменной высоту конуса Except // Не получилось, ошибка преобразования строк
и в число ShowMessage('Ошибка ввода числа!'); // Сообщение об ошибке Edit2.Text:= '1'; Hg:= 1; End; Try // Пробуем выполнить Dn:= StrToFloat(Edit3.Text); // Присваиваем переменной плотность конуса Except // Не получилось, ошибка преобразования строки в число ShowMessage('Ошибка ввода числа!'); // Сообщение об ошибке Edit3.Text:= '1'; Dn:= 1; End; if CheckBox1.Checked then // Если выбрали расчёт
объёма конуса Ob:= (Pi * sqr(Rd) * Hg) / 3; // Рассчитываем объём конуса if CheckBox2.Checked then // Если выбрали расчёт массы конуса Ms:= (Dn * (Pi * Hg * sqr(Rd))) / 3; // Рассчитываем массу конуса end;
procedure TInputForm.Edit1KeyPress(Sender: TObject; var Key: Char); begin Case key of // Вводим только числа и запятую '0'..'9': ; ',': ; #8: ; else key:= Chr(0); //
Символ не отображать End; end;
procedure TInputForm.FormCreate(Sender: TObject); begin Ob:= 0; Ms:= 0; end;
end.
Весь проект можно взять здесь.
----- Помогли тебе, помоги и ты.
Ответ отправил: Евгений/Genia007/, Бакалавр
Ответ отправлен: 24.04.2010, 22:54
Номер ответа: 260999
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 260999
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.