Хелпикс

Главная

Контакты

Случайная статья





Лабораторная работа№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.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.