|
|||
Лабораторная работа№22.ГрадусникЛабораторная работа№22.Градусник Цель работы - создать программу, которая переводит значение температуры по Цельсию в значения температуры по Фаренгейту. Введите графический объект изображения значения температуры.
1. Поместите на форму два поля ввода Edit и четыре кнопки. Рис. 22.1. 2. Ввести число в левое поле. По нажатию на кнопку "по Фаренгейту" в правом поле выводится преобразованное число. По нажатию кнопки "Очистить" очищаются поля ввода. 3. Ограничьте вводимые температуры диапазоном от 0°C до 100°C (если введено значение, превышающее 100°C или 212°F, то при нажатии кнопки в полях ввода должно отобразиться 100 и 212 соответственно). 4. Отобразить столбик термометра графически. Добавьте компоненты Image. 5. Сделать видимой только ту кнопку, которая необходима для преобразования. Рис. 22.2
Листинг программы unit Unitl; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForml = class(TForm) Editl: TEdit; Edit2: TEdit; Buttonl: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Imagel: TImage; Image2: TImage; Labell: TLabel; Label2: TLabel; procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ButtonlClick(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Forml: TForml; implementation {$R *.dfm} procedure TForml.FormCreate(Sender: TObject); begin Editl.Text := ''; Edit2.Text := ''; Imagel.Canvas.Pen.Color := clRed; Imagel.Canvas.Brush.Color := clWhite; Imagel.Canvas.Rectangle(l0,l,23,360); Image2.Canvas.Pen.Color := clBlue; Image2.Canvas.Brush.Color := clWhite; Image2.Canvas.Rectangle(l0,l,23,360); end; procedure TForml.Button2Click(Sender: TObject); var a, b, c : real; begin a := StrToFloat(Editl.Text); if (a > 0) or (a < l00) then b := l.8 * a + 32; if a > l00 then b := 2l2; if a < 0 then b := 32; Edit2.Text := FloatToStr(b); Image1.Canvas.Pen.Color := clRed; Image1.Canvas.Brush.Color := clWhite; Image1.Canvas.Rectangle(10,1,23,360); Image1.Canvas.Pen.Color := clRed; Image1.Canvas.Brush.Color := clRed; Image1.Canvas.Rectangle(10,round(360-a),23,360); Image2.Canvas.Pen.Color := clBlue; Image2.Canvas.Brush.Color := clWhite; Image2.Canvas.Rectangle(10,1,23,360); Image2.Canvas.Pen.Color := clBlue; Image2.Canvas.Brush.Color := clBlue; Image2.Canvas.Rectangle(10,round(360-b),23,360); end; procedure TForm1.Button1Click(Sender: TObject); var a, c, d : real; begin c := StrToFloat(Edit2.Text); if (c > 32) or (c < 212) then d := ( c - 32)/1.8; if c < 32 then d := 0; if c > 212 then d := 100; Edit1.Text := FloatToStr(d); Image2.Canvas.Pen.Color := clBlue; Image2.Canvas.Brush.Color := clWhite; Image2.Canvas.Rectangle(10,1,23,360); Image2.Canvas.Pen.Color := clBlue; Image2.Canvas.Brush.Color := clBlue; Image2.Canvas.Rectangle(10,round(360-c),23,360); Image1.Canvas.Pen.Color := clRed; Image1.Canvas.Brush.Color := clWhite; Image1.Canvas.Rectangle(10,1,23,360); Image1.Canvas.Pen.Color := clRed; Image1.Canvas.Brush.Color := clRed; Image1.Canvas.Rectangle(10,round(360-d),23,360); end; procedure TForm1.Button3Click(Sender: TObject); begin Edit1.Text := ''; Edit2.Text := ''; Image1.Canvas.Pen.Color := clRed; Image1.Canvas.Brush.Color := clWhite; Image1.Canvas.Rectangle(10,1,23,360); Image2.Canvas.Pen.Color := clBlue; Image2.Canvas.Brush.Color := clWhite; Image2.Canvas.Rectangle(10,1,23,360); end; procedure TForm1.Button4Click(Sender: TObject); begin Close; end; procedure TForm1.Edit1Enter(Sender: TObject); begin Button2.Visible := true; Button1.Visible := False; end; procedure TForm1.Edit2Enter(Sender: TObject); begin Button1.Visible := True; Button2.Visible := False; end; end.
|
|||
|