http://community.borland.com/article/0,1410,28972,00.html有指引program ConvertIt;uses
System.Drawing,
Borland.Delphi.SysUtils, Borland.Delphi.Conversions, Borland.Vcl.Controls;type
TForm1 = class(TForm)
private
DoitButton: TButton;
CelsiusEdit: TSpinEdit;
ResultList: TListBox;
MainMenu: TMainMenu;
FileItem: TMenuItem;
ExitItem: TMenuItem;
HelpItem: TMenuItem;
AboutItem: TMenuItem;
procedure DoitButtonClick(Sender: TObject; Args: TEventArgs);
procedure ExitItemClick(Sender: TObject; Args: TEventArgs);
procedure AboutItemClick(Sender: TObject; Args: TEventArgs);
protected
function DecimalToFloat(const AValue: Decimal): Double;
function FloatToDecimal(const AValue: Double): Decimal;
procedure ReadState;
public
constructor Create; procedure Convert;
end;var
Form1: TForm1;function TForm1.DecimalToFloat(const AValue: Decimal): Double;
begin
Result := System.Convert.ToDouble(AValue);
end;function TForm1.FloatToDecimal(const AValue: Double): Decimal;
begin
Result := System.Convert.ToDecimal(AValue);
end;procedure TForm1.Convert;
var
LCelsius: Double; function NthDegree(const Scale: string; const Temperature: double): string;
begin
Result := Format('%s = %8.2f', [Scale, Temperature]);
end;begin
LCelsius := DecimalToFloat(CelsiusEdit.Value);
with ResultList.Items do
begin
Clear;
Add(NthDegree('Celsius', LCelsius));
Add(NthDegree('Fahrenheit', CelsiusToFahrenheit(LCelsius)));
Add(NthDegree('Kelvin', CelsiusToKelvin(LCelsius)));
Add(NthDegree('Rankine', CelsiusToRankine(LCelsius)));
Add(NthDegree('Reaumur', CelsiusToReaumur(LCelsius)));
end;
end;procedure TForm1.DoitButtonClick(Sender: TObject; Args: TEventArgs);
begin
Convert;
end;procedure TForm1.ExitItemClick(Sender: TObject; Args: TEventArgs);
begin
Close;
end;procedure TForm1.AboutItemClick(Sender: TObject; Args: TEventArgs);
begin
TMessageBox.Show(Text + ' whatever');
end;constructor TForm1.Create;
begin
inherited Create; ReadState;
end;procedure TForm1.ReadState;
begin
MainMenu := TMainMenu.Create;
FileItem := TMenuItem.Create;
ExitItem := TMenuItem.Create;
HelpItem := TMenuItem.Create;
AboutItem := TMenuItem.Create; MainMenu.MenuItems.Add(FileItem);
MainMenu.MenuItems.Add(HelpItem); FileItem.MenuItems.Add(ExitItem);
FileItem.Text := 'File'; ExitItem.Text := 'Exit';
ExitItem.add_Click(ExitItemClick); HelpItem.MenuItems.Add(AboutItem);
HelpItem.Text := 'Help'; AboutItem.Text := 'About...';
AboutItem.add_Click(AboutItemClick); DoitButton := TButton.Create;
with DoitButton do
begin
Left := 8;
Top := 8;
Width := 33;
Height := 25;
Text := 'Go';
add_Click(DoitButtonClick);
end; CelsiusEdit := TSpinEdit.Create;
with CelsiusEdit do
begin
Left := 48;
Top := 8;
Width := 177;
Value := FloatToDecimal(100);
Maximum := FloatToDecimal(10000);
Minimum := FloatToDecimal(-1000);
add_ValueChanged(DoitButtonClick);
end; ResultList := TListBox.Create;
with ResultList do
begin
Left := 8;
Top := 40;
Width := 217;
Height := 217;
end; ClientSize := System.Drawing.Size.Create(240, 270);
Menu := MainMenu;
Controls.Add(DoitButton);
Controls.Add(CelsiusEdit);
Controls.Add(ResultList);
Text := 'ConvertIt!';
ControlBox := True;
MinimizeBox := True; Convert;
end;begin
Form1 := TForm1.Create;
TApplication.Run(Form1);
end.
System.Drawing,
Borland.Delphi.SysUtils, Borland.Delphi.Conversions, Borland.Vcl.Controls;type
TForm1 = class(TForm)
private
DoitButton: TButton;
CelsiusEdit: TSpinEdit;
ResultList: TListBox;
MainMenu: TMainMenu;
FileItem: TMenuItem;
ExitItem: TMenuItem;
HelpItem: TMenuItem;
AboutItem: TMenuItem;
procedure DoitButtonClick(Sender: TObject; Args: TEventArgs);
procedure ExitItemClick(Sender: TObject; Args: TEventArgs);
procedure AboutItemClick(Sender: TObject; Args: TEventArgs);
protected
function DecimalToFloat(const AValue: Decimal): Double;
function FloatToDecimal(const AValue: Double): Decimal;
procedure ReadState;
public
constructor Create; procedure Convert;
end;var
Form1: TForm1;function TForm1.DecimalToFloat(const AValue: Decimal): Double;
begin
Result := System.Convert.ToDouble(AValue);
end;function TForm1.FloatToDecimal(const AValue: Double): Decimal;
begin
Result := System.Convert.ToDecimal(AValue);
end;procedure TForm1.Convert;
var
LCelsius: Double; function NthDegree(const Scale: string; const Temperature: double): string;
begin
Result := Format('%s = %8.2f', [Scale, Temperature]);
end;begin
LCelsius := DecimalToFloat(CelsiusEdit.Value);
with ResultList.Items do
begin
Clear;
Add(NthDegree('Celsius', LCelsius));
Add(NthDegree('Fahrenheit', CelsiusToFahrenheit(LCelsius)));
Add(NthDegree('Kelvin', CelsiusToKelvin(LCelsius)));
Add(NthDegree('Rankine', CelsiusToRankine(LCelsius)));
Add(NthDegree('Reaumur', CelsiusToReaumur(LCelsius)));
end;
end;procedure TForm1.DoitButtonClick(Sender: TObject; Args: TEventArgs);
begin
Convert;
end;procedure TForm1.ExitItemClick(Sender: TObject; Args: TEventArgs);
begin
Close;
end;procedure TForm1.AboutItemClick(Sender: TObject; Args: TEventArgs);
begin
TMessageBox.Show(Text + ' whatever');
end;constructor TForm1.Create;
begin
inherited Create; ReadState;
end;procedure TForm1.ReadState;
begin
MainMenu := TMainMenu.Create;
FileItem := TMenuItem.Create;
ExitItem := TMenuItem.Create;
HelpItem := TMenuItem.Create;
AboutItem := TMenuItem.Create; MainMenu.MenuItems.Add(FileItem);
MainMenu.MenuItems.Add(HelpItem); FileItem.MenuItems.Add(ExitItem);
FileItem.Text := 'File'; ExitItem.Text := 'Exit';
ExitItem.add_Click(ExitItemClick); HelpItem.MenuItems.Add(AboutItem);
HelpItem.Text := 'Help'; AboutItem.Text := 'About...';
AboutItem.add_Click(AboutItemClick); DoitButton := TButton.Create;
with DoitButton do
begin
Left := 8;
Top := 8;
Width := 33;
Height := 25;
Text := 'Go';
add_Click(DoitButtonClick);
end; CelsiusEdit := TSpinEdit.Create;
with CelsiusEdit do
begin
Left := 48;
Top := 8;
Width := 177;
Value := FloatToDecimal(100);
Maximum := FloatToDecimal(10000);
Minimum := FloatToDecimal(-1000);
add_ValueChanged(DoitButtonClick);
end; ResultList := TListBox.Create;
with ResultList do
begin
Left := 8;
Top := 40;
Width := 217;
Height := 217;
end; ClientSize := System.Drawing.Size.Create(240, 270);
Menu := MainMenu;
Controls.Add(DoitButton);
Controls.Add(CelsiusEdit);
Controls.Add(ResultList);
Text := 'ConvertIt!';
ControlBox := True;
MinimizeBox := True; Convert;
end;begin
Form1 := TForm1.Create;
TApplication.Run(Form1);
end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货