Тәжірибелік жұмыстар Жұмыстың мақсаты - Цельсий температурасының мәнін Фаренгейт температурасының мәндеріне аударатын бағдарлама құру. Температура мәні кескінінің графикалық нысанын енгізіңіз.
1. Поместите на форму два поля ввода Edit и четыре кнопки.
Рис. 59.
2. Ввести число в левое поле. По нажатию на кнопку "по Фаренгейту" в правом поле выводится преобразованное число. По нажатию кнопки "Очистить" очищаются поля ввода.
3. Ограничьте вводимые температуры диапазоном от 0°C до 100°C (если введено значение, превышающее 100°C или 212°F, то при нажатии кнопки в полях ввода должно отобразиться 100 и 212 соответственно).
4. Отобразить столбик термометра графически. Добавьте компоненты Image.
5. Сделать видимой только ту кнопку, которая необходима для преобразования.
Рис. 60.
Листинг программы
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.