type TVariantsClass = class private FAVariant: Variant; procedure SetAVariant(const Value: Variant); public property AVariant : Variant read FAVariant write SetAVariant; procedure ToString(const AString: string); procedure ToInteger(AInteger: integer); procedure ToFloat(AFloat: Double); end; TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; ListBox1: TListBox; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; VariantClass : TVariantsClass; implementation {$R *.dfm} { TVariantsClass } procedure TVariantsClass.ToString(const AString: string); begin FAVariant := AString; end; procedure TVariantsClass.SetAVariant(const Value: Variant); begin FAVariant := Value; end; procedure TForm1.Button1Click(Sender: TObject); begin VariantClass.AVariant := Edit1.Text; ListBox1.Items.Add(VariantClass.AVariant); VariantClass.ToString(Edit1.Text); ListBox1.Items.Add(VariantClass.AVariant); VariantClass.ToInteger(5); ListBox1.Items.Add(VariantClass.AVariant); VariantClass.ToFloat(100.20); ListBox1.Items.Add(VariantClass.AVariant); end; procedure TVariantsClass.ToFloat(AFloat: Double); begin AVariant := AFloat; end; procedure TVariantsClass.ToInteger(AInteger: integer); begin AVariant := AInteger; end; initialization VariantClass := TVariantsClass.Create; Finalization FreeAndNil(VariantClass);