Une classe avec une propriété variant

shloukmou Messages postés 22 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 24 mars 2003 - 13 févr. 2003 à 12:17
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 13 févr. 2003 à 22:00
salu
voila mon prob:

jai créé une classe et cette classe a une propriété publique de type Variant.
Et a chaque fois ke jaffecte une valeur a cette propriété dans une méthode publique de la classe, jai droit a une EVariantError...

aidez oim pliz.
a+

1 réponse

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
13 févr. 2003 à 22:00
Je ne vois pas où peut être le problème. Soit le code suivant (qui fonctionne) :

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);


Si celà peut te décoincer...
May Delphi be with you
0
Rejoignez-nous