Sida 1 av 3
TempConverter
unit Unit1;
{$mode objfpc}{$H+}
interface uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, TempUtils;
type
{ TForm1 }
TForm1 = class(TForm) Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Panel1: TPanel;
Panel2: TPanel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: char);
procedure Edit2KeyPress(Sender: TObject; var Key: char);
procedure FormCreate(Sender: TObject);
private
// Se längst ned i Unit1
function Edit1IsText: Boolean; //Deklarerar underfunktioner function Edit2IsText: Boolean; //Se nedan…
public
{ public declarations } end;
Denna ”unit” har jag skapat själv.
Se längre ned i detta dokument.
Filnamn:
temputils.pasSida 2 av 3
var
Form1: TForm1;
implementation { TForm1 }
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);
begin
if not (Key in [#8, '0'..'9']) then Key := #0;
end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: char);
begin
if not (Key in [#8, '0'..'9']) then Key := #0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if Edit1IsText then begin
Panel1.Caption := TempUtils.CelsToFahr(Edit1.Text); //Unit TempUtils end else ShowMessage('Värde saknas!');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if Edit2IsText then begin
Panel2.Caption := TempUtils.FahrToCels(Edit2.Text); //Unit TempUtils end else ShowMessage('Värde saknas!');
end;
//Rensar inmatningsrutor samt sätter "Caption" på knapparna procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Caption := '-->';
Button2.Caption := '-->';
Edit1.Text := Sysutils.EmptyStr;
Edit2.Text := Sysutils.EmptyStr;
Panel1.Caption := Sysutils.EmptyStr;
Panel2.Caption := Sysutils.EmptyStr;
end;
//--- // 2 funktioner som testar om inmatningsrutona innehåller tecken //--- function TForm1.Edit1IsText: Boolean;
begin
result := Length(Edit1.Text) > 0;
end;
function TForm1.Edit2IsText: Boolean;
begin
result := Length(Edit2.Text) > 0;
end;
initialization {$I unit1.lrs}
end.
Sida 3 av 3
//--- // Denna kod finns i filen temputils.pas
// Se under uses i Unit1
//--- unit TempUtils;
{$mode objfpc}{$H+}
interface uses
Classes, SysUtils;
function CelsToFahr(cels: string): string;
function FahrToCels(fahr: string): string;
implementation
function CelsToFahr(cels: string): string;
var
c,f: Extended;
begin
c := StrToFloat(cels);
f := 1.8 * c + 32;
result := FloatToStrF(f,ffFixed,5,1);
end;
function FahrToCels(fahr: string): string;
var
c,f: Extended;
begin
f := StrToFloat(fahr);
c := (f - 32)/1.8;
result := FloatToStrF(c,ffFixed,5,1);
end;
end.