EuroForm.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:2k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit EuroForm;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, StdCtrls;
  6. type
  7.   TForm1 = class(TForm)
  8.     Button1: TButton;
  9.     EditValue: TEdit;
  10.     EditResult: TEdit;
  11.     ListTypes: TListBox;
  12.     ListTypes2: TListBox;
  13.     Label1: TLabel;
  14.     Label2: TLabel;
  15.     procedure Button1Click(Sender: TObject);
  16.     procedure FormCreate(Sender: TObject);
  17.   private
  18.     { Private declarations }
  19.   public
  20.     { Public declarations }
  21.   end;
  22. var
  23.   Form1: TForm1;
  24. implementation
  25. {$R *.DFM}
  26. uses
  27.    EuroConvConst, ConvUtils, Math;
  28. procedure TForm1.Button1Click(Sender: TObject);
  29. var
  30.   nConverted: Double;
  31.   BaseType, DestType: TConvType;
  32. begin
  33.   // simple conversions (test)
  34.   {EditResult.Text := FloatToStrF (
  35.     Convert (StrToFloat (EditValue.Text),
  36.     cuDEM, cuITL), ffNumber, 15, 3)}
  37.   DescriptionToConvType(cbEuroCurrency,
  38.     ListTypes.Items [ListTypes.ItemIndex], BaseType);
  39.   DescriptionToConvType(cbEuroCurrency,
  40.     ListTypes2.Items [ListTypes2.ItemIndex], DestType);
  41.   // plain conversions
  42.   {nConverted := Convert (StrToFloat (EditValue.Text),
  43.     BaseType, DestType);
  44.   EditResult.Text := FloatToStrF (nConverted, ffNumber, 15, 4);}
  45.   // Euro "rounding" conversion
  46.   nConverted := EuroConvert (StrToFloat (EditValue.Text),
  47.     BaseType, DestType, 4);
  48.   EditResult.Text := FloatToStrF (nConverted, ffNumber, 15, 4);
  49. end;
  50. procedure TForm1.FormCreate(Sender: TObject);
  51. var
  52.   ATypes: TConvTypeArray;
  53.   i: Integer;
  54. begin
  55.   GetConvTypes(cbEuroCurrency, ATypes);
  56.   for i := Low(aTypes) to High(aTypes) do
  57.     ListTypes.Items.Add (
  58.       ConvTypeToDescription (aTypes[i]));
  59.   // copy items to the second list
  60.   ListTypes2.Items := ListTypes.Items;
  61.   // select first of each list
  62.   ListTypes.ItemIndex := 0;
  63.   ListTypes2.ItemIndex := 0;
  64. end;
  65. end.