Einzelnen Beitrag anzeigen

thomasch

Registriert seit: 7. Apr 2005
57 Beiträge
 
Delphi 2007 Architect
 
#1

variants in klasse zuweisen

  Alt 30. Mai 2005, 08:33
Hallo,
ich möchte verschiedene Werte als OLE Variants verwenden.
Momtentan funktioniert das in etwa so:
Delphi-Quellcode:

Procedure setz_wert_a;
var
myTyp: Variant;
myData:Variant;
begin

myTyp:=VarArrayCreate([0,3],varSmallint);
myData:=VarArrayCreate([0,3],varVariant);
myTyp[0]:=1
myData[0]:='ein_text';

[...]
wert_a:=meineolefunktion(myTyp,myData);
[...]

end;

Procedure setz_wert_b;
var
myTyp: Variant;
myData:Variant;
begin

myTyp:=VarArrayCreate([0,5],varSmallint);
myData:=VarArrayCreate([0,5],varVariant);
myTyp[0]:=1
myData[0]:='ein_anderer_text';
[...]
wert_b:=meineolefunktion(myTyp,myData);
[...]

end;
Jetzt wollte ich die Zuweisungen von myTyp/myData in eine eigene Klasse auslagern und versuchte folgendes:
Delphi-Quellcode:
unit uSetzTyp;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Comobj, AutoCAD_TLB, StdCtrls, oleCtnrs ;


Type
 cSetzTyp=class
 Public
 myTyp:variant;
 procedure setzTyp1;
 end;

implementation

procedure cSetzTyp.setzTyp1;
begin
myTyp:=VarArrayCreate([0,3],varSmallint);
[...]
end;
end.
und im Hauptprogramm:
cSetzTyp.setzTyp1; um dann später mit wert_b:=meineolefunktion(cSetzTyp.myTyp,cSetzData. myData); arbeiten zu können.

Leider bekomme ich in dem Moment, wo ich in cSetzTyp das Array zuweisen möchte eine Fehlermeldung "ungültiger Variant-typ";

Jetzt meine Fragen:
1. Was mach ich falsch?
2. Geht das ggf. eleganter?

Danke schonmal

Thomasch
  Mit Zitat antworten Zitat